位置无/有关码,重定位。

为什么会出现链接地址跟运行地址不同的情况?

答:当一块芯片启动的时候,依靠内部的SRAM,可以运行一小段代码,而因为DDR还没初始化,注定了开始的运行地址是在内部SRAM中的。当我们需要运行一个操作系统,那么点的内存怎么够运行呢?所以这时候就需要初始化DDR才可,而因为我们知道这代码将来都是在DDR上面运行的,所以链接脚本指定的链接地址肯定是DDR上面的地址,所以这就出现了链接地址跟运行地址不同的情况了。
所以裸机编程时,一般不需要进行重定位,印为逻辑代码量小。 片上ram就已经可以运行。

https://blog.csdn.net/cherisegege/article/details/80708143

https://blog.csdn.net/longjingcha110/article/details/88676148

韦东山sdram例程解析
https://blog.csdn.net/qq_34888036/article/details/80880201
https://blog.csdn.net/laoniu_c/article/details/17228681

posted @ 2020-04-10 21:28  hostid  阅读(142)  评论(0编辑  收藏  举报