У меня есть встроенная аппаратная система, которая содержит загрузчик на основе 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)
).