我有一个嵌入式硬件系统,其中包含基于ARMboot的引导加载程序(与 Uboot 和 PPCboot 非常相似)。
该引导加载程序通常用于从闪存加载 uClinux 映像。但是,现在我正在尝试使用这个引导加载程序来运行一个独立的 helloworld 应用程序,它不需要任何链接库。实际上,它只包含while(1){}
main 函数中的代码。
我的问题是我找不到应该使用哪些 GCC 设置来构建独立的格式正确的二进制文件。
我确实使用以下构建命令:
cr16-elf-gcc -o helloworld helloworld.c -nostdlib
这会产生警告消息:
警告:找不到条目符号_start;默认为 00000004
此后,在引导加载程序中,我上传了一个生成的应用程序并在某个地址启动它:
tftpboot 0xa00000 helloworld
go 0xa00004
但它不起作用:(系统重新启动。
通常它应该只是挂起(因为while(1)
)。