在杜兄的学习报告1中提到:
在加载域状态,RO 地址是正确的,意味着指令可以正确执行;但RW 是不正确的(从图7
可知),但是暂时的错误不影响程序初始化,源程序的part1~part6 都暂时没有用到RW,
所以程序还是可以正确运行,即使RW section 在0x00000228 处。程序终究是要用到RW 的,
那么怎么办?其实只要来个“乾坤大挪移”就好了,在用到RW 之前将RW 移动到正确的位置
即可。Part7 完成了这个“挪移”过程。
照这样理解,那么part7肯定是根据rw_base的值,所以rw_base的值不通,编译出来的.bin文件肯定也不同,但事实上,我修改rw_base的值发现.bin文件没有任何差别.
于是我就这个问题请教了同事,同事说rw_base和ro_base只是ads或者sdt在在线调试时用的,.bin文件中没有它的任何信息.
于是我又试着将ro_base设了好几个值,不在bank6,而我的开发板中的sdram接在bank6,发现无论我设什么值,程序还是能正常跑起来.
我越来越糊涂了!
twentyong兄和杜兄来讨论一下吧!