引用: 引用 7 楼 yzpyzp 的回复:
我觉得应该是可以的只要把地址处理好就可行。所以现在正在修改Boot。现在我在调试,碰到了以下的问题:
romstart.s文件的最后几条语句如下:
。。。。
sub r6, r6, r7 /* routine - entry point */
add r6, r6, r8 /* + ROM base */
mtlr r6 /* move C entry point to LR */
b……
看起来Load之后又打算执行一次Romstart.s里的内容
不知道LZ编译出来的bin文件开头的地方放了什么东西?
有很多硬件连接方式下为了让CPU上电得到上电复位字信息,文件开头的地方是放上电复位字的,CPU根据上电复位字再跳转到第一条指令的地址运行,这是一个硬件自动执行的过程。
而LZ这种加载方式显然CPU不会再有这样一个过程了,所以它starting之后跳转到的地址处有可能并不是你想让它执行的指令,而是没有语句意义的上电复位字。
乱分析,LZ参考着看。