Команда `tftp` в U-Boot: двоичный образ или образ U-Boot?

При использовании команды tftp в U-Boot нужно ли указывать двоичный образ для загрузки или образ, созданный с помощью инструмента mkimage, поставляемого U-Boot?

Приложение: Образ, который я пытаюсь загрузить, представляет собой программу на чистом языке C. Я скомпилировал его с

arm-none-eabi-gcc (input files and flags) -o blinky.elf

и преобразовал его с помощью

arm-none-eabi-objcopy -O binary blinky.elf blinky.bin

.


person Multisync    schedule 04.02.2015    source источник


Ответы (1)


Команда tftp предназначена только для скачивания файла с хоста, ей все равно, что скачивать. Команда bootm - это то, что действительно важно. Последние версии u-boot могут напрямую загружать zImage (если настроено). Но наиболее распространенный способ — использовать устаревший uImage, созданный либо командой mkimage, либо командой make uImage, если она поддерживается.

Upd: Для bare-metal программ нужно использовать команду go в u-boot с адресом вашего bin файла:

tftp ${loadaddr} yourfile.bin
go  ${loadaddr}

Upd2: Кстати, можно собрать u-boot с помощью команды bootelf, которая позволит загружаться из вашего выходного файла elf, без необходимости использования objcopy.

person Eugene Sh.    schedule 04.02.2015
comment
Полагаю, мне следовало упомянуть, что файл, который я пытаюсь загрузить, не является образом Linux. (См. мою поправку в вопросе.) Это программа на чистом железе, которая работает нормально при прошивке непосредственно в SRAM через отладчик. - person Multisync; 04.02.2015