代码重定位后内存中有两份代码,导致调用子函数程序跑飞

2019-03-26 12:23发布

做的是新版的uboot移植到s3c2440,首先上电的时候nandflash前4K的代码被自动搬运到内存,然后完成uboot的完整拷贝。现在拷贝成功,程序跳转到拷贝后的地址运行,也就是链接时的地址。现在问题是一旦调用链接地址位于前4K的函数,程序就会跑飞。
按理说跳转到拷贝后的地址运行后,调用函数是用的当前PC值偏移跳转,上电时被搬运的前4K不会对现在的代码区造成影响。并且拷贝的目标地址就是链接地址。
反汇编代码也检查过了,看不出问题所在,希望有大神能帮忙答疑解惑 此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
sunset2007
1楼-- · 2019-03-26 21:57
应该还是代码中的问题,调用函数中有些没有移植到,内容为空

一周热门 更多>