当前位置:新励学网 > 秒知问答 > uboot进行重定位是为什么

uboot进行重定位是为什么

发表时间:2024-07-28 14:10:08 来源:网友投稿

首先你要明白代码要执行必须先放到内存中,而bin文件中的各个函数和变量的存放位置关系是与链接脚本文件和编译器决定的,程序运行时必须位于它的链接地址处,汇编文件中的各个标号或者c文件中的各个函数名(函数的入口地址)对应的链接地址就是由链接脚本中的起始链接地址和各个目标文件(.s或.c文件编译但还为链接的文件)的排放顺序有关。这些链接地址可以通过查看可执行文件的反汇编文件即xxx.dis文件来获得.

重地位就是将uboot的bin文件复制到内存中它对应的链接地址处,而这个链接地址就是链接脚本xx.lds中的起始链接地址,这样在使用全局跳转指令(ARM中的ldr xxx指令)或中C语言中的函数调用时,pc寄存器才能被赋予正确的值,即才能到内存中正确的位置处取出代码并执行。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!