我开始学习为微控制器编写一些低级软件,并且我已经开始研究链接器脚本。
在这种情况下,我并没有真正理解ENTRY命令的含义。由于大多数微控制器在预定地址开始执行,它在链接器脚本中选择哪个入口点有什么区别?
答案 0 :(得分:1)
入口点定义程序的起点。这当然是非常好的信息。通过这种方式,Flash工具可以知道 flash 代码的位置,还有调试工具知道符号所在的位置。
答案 1 :(得分:1)
C
是一个ELF功能,基本上只是在可执行文件的ELF头中设置程序入口地址。此地址可能与二进制文件的第一个可执行段的起始地址不同(如果未定义ENTRY()
,则该地址将是默认执行地址。)
是否使用此信息(即,是否在第一个代码段地址或ENTRY()
处发生执行)是链接器无法控制的,因为它完全取决于ELF加载程序的可用性和功能。
由于你通常在微控制器上没有这样的东西,ENTRY()
在那里几乎没用,你也可以省略这个陈述。