"ENTRY" 在链接描述文件中是什么意思?
What does "ENTRY" mean in a linker script?
我开始学习写一些微控制器的低级软件,我已经开始研究链接器脚本。
在这种情况下,我真的不明白 ENTRY 命令的含义。由于大多数微控制器在预定地址开始执行,我们在链接描述文件中选择哪个入口点有什么区别?
入口点定义了程序的起点。这当然是非常好的信息。这样 flash 工具就知道在哪里 flash 你的代码,debug 工具也知道你的符号在哪里。
ENTRY()
是一个 ELF 特性,基本上只是在可执行文件的 ELF header 中设置程序入口地址。该地址可能与二进制文件的第一个可执行段的起始地址不同(如果您没有定义 ENTRY()
,这将是默认的执行地址)。
是否使用此信息(即执行开始发生在第一个代码段地址还是 ENTRY()
)不受链接器的控制,因为它完全取决于您的 ELF 的可用性和功能装载机。
由于您通常在微控制器上没有这样的东西,ENTRY()
在那里几乎没有用,您最好忽略该语句。
我开始学习写一些微控制器的低级软件,我已经开始研究链接器脚本。
在这种情况下,我真的不明白 ENTRY 命令的含义。由于大多数微控制器在预定地址开始执行,我们在链接描述文件中选择哪个入口点有什么区别?
入口点定义了程序的起点。这当然是非常好的信息。这样 flash 工具就知道在哪里 flash 你的代码,debug 工具也知道你的符号在哪里。
ENTRY()
是一个 ELF 特性,基本上只是在可执行文件的 ELF header 中设置程序入口地址。该地址可能与二进制文件的第一个可执行段的起始地址不同(如果您没有定义 ENTRY()
,这将是默认的执行地址)。
是否使用此信息(即执行开始发生在第一个代码段地址还是 ENTRY()
)不受链接器的控制,因为它完全取决于您的 ELF 的可用性和功能装载机。
由于您通常在微控制器上没有这样的东西,ENTRY()
在那里几乎没有用,您最好忽略该语句。