Я пытаюсь получить автономное приложение для запуска U-Boot.U-Boot: сбои приложений - но почему
Цель - кирпич LEGO EV3 - он имеет процессор TI OMAP (ARM9).
Выход U-Boot, прежде чем висит это:
U-Boot > fatload mmc 0:1 c0007FC0 uimage
reading uimage
384 bytes read
U-Boot > bootm
## Booting kernel from Legacy Image at c0007fc0 ...
Image Name: ITK EV3 sample OS
Image Type: ARM Linux Standalone Program (uncompressed)
Data Size: 320 Bytes = 0.3 kB
Load Address: c0008000
Entry Point: c0008000
Loading Standalone Program ... OK
OK
Я попытался следующие команды, которые будут расположены по адресу 0xC0008000 в "uimage":
mov pc, lr (ARM code)
bx lr (ARM code)
bx lr (Thumb code)
Эти команды должны просто вернуться (в зависимости от режима ARM или Thumb). Однако все три команды приводят к тому, что U-Boot висит, поэтому после последнего «ОК» больше не выводится.
Почему U-Boot висит?
В U-Boot «автономный» означает двоичное изображение, например пример «hello_world.bin». Такие загруженные двоичные файлы выполняются командой 'go'. Загруженные изображения/файлы, выполненные с использованием команды 'bootm', должны иметь установленную U-Boot-оболочку, обычно это ядра ОС и могут иметь специальную обработку, выполняемую до выполнения. См. [This] (http://stackoverflow.com/questions/15340089/how-to-run-custom-kernel-on-beaglebone/15375308#15375308). ** Вместо указания 'linux' в качестве типа ОС в команде mkimage попробуйте указать' u-boot' или просто опустить спецификацию ОС. ** – sawdust