我已尝试通过MacPorts安装“arm-none-eabi-gcc”和“arm-elf-gcc”,但每次编译时都会收到此警告。
ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000
我正在使用“-T”标志并指定我自己的链接器文件,如下所示。
SECTIONS {
. = 0x00000000;
.text : { * (vectors); * (.text); }
.rodata : { * (.rodata); }
text_end = .;
. = 0xA4000000;
.data : AT (text_end) { * (.data); }
.bss : { * (.bss); }
}
NM将此转储。
00000000 t reset
00000004 t undefined
00000008 t swi
0000000c t prefetch_abort
00000010 t data_abort
00000014 t reserved
00000018 t interrupt_request
0000001c t fiq
00000020 t irq
00000024 T init
00000038 T main
0000004c A text_end
00008024 t entry
0000804c T __data_start
00010028 A __bss_end__
00010028 A __bss_start
00010028 A __bss_start__
00010028 A __end__
00010028 A _bss_end__
00010028 A _edata
00010028 A _end
00080000 N _stack
答案 0 :(得分:2)
链接器正在向您发出警告,因为它无法在已编译的代码中找到_start
符号。并且您当前的链接器配置期望在代码中的某处定义此类符号。
因此,您可以通过查阅编译器/链接器用户手册并了解-e
链接器标志的用法或者真正定义名为_start
的符号来手动定义入口点(即重置)的解决方案。你的一些代码。