У меня есть встроенная аппаратная система, которая содержит загрузчик на основе ARMboot (что очень похоже на Uboot и PPCboot).
Этот загрузчик обычно служит для загрузки образа uClinux из флэш-памяти. Однако сейчас я пытаюсь использовать этот загрузчик для запуска автономного приложения helloworld, которое не требует какой-либо связанной библиотеки. На самом деле, он содержит только код while(1){}
в основной функции.
Моя проблема в том, что я не могу узнать, какие настройки GCC мне следует использовать для создания отдельного правильно отформатированного двоичного файла.
Я использую следующую команду сборки:
cr16-elf-gcc -o helloworld helloworld.c -nostdlib
, который выдает предупреждение:
предупреждение: не удается найти символ ввода _start; по умолчанию 00000004
После этого в загрузчике я загружаю произведенное приложение и запускаю его по некоторому адресу:
tftpboot 0xa00000 helloworld
go 0xa00004
Но это не работает :(
Система перезагружается.
Обычно он должен просто зависать (из-за while(1)
).