|
有没有人试过,我现在.SCT中修改链接地址
LR_IROM 0x60000000 0x00030000
{
;
; Specify the Execution Address of the code and the size.
;
ER_IROM 0x60000000 0x00030000
{
*.o (RESET, +First)
* (InRoot$$Sections, +RO)
}
;
; Specify the Execution Address of the data area.
;
RW_IRAM 0x20000000 0x00018000
{
;
; Uncomment the following line in order to use IntRegister().
;
;* (vtable, +First)
* (+RW, +ZI)
}
}
先将这个bin存在了SD卡中 然后由另外一个程序Load到了SDRAM里面 0x60000000是SDRAM基地址
然后从那个程序跳过来 我是使用LDR PC,=0x60000004 进行跳转的
跳到0x60000004后 执行该条指令 程序竟然跑 0x1E100去了 有时是其他地址
0x60000004处反汇编为
0x60000004 011D LSLS r5,r3,#4 ;
跳过来之前R5 R3 存有其他的值 导致程序乱跑
可能跟编译选项有关 暂时还不知道该咋改
我想在SDRAM中运行 中断向量表可能应该放置到SRAM中了 否则中断就会受影响这个倒可以容后考虑
目前在SDRAM中程序无法正确执行则是最大的问题
看来在SDRAM中直接执行是没戏了 我写了段汇编 开头都是NOP 连执行NOP指令都直接飞掉
我想可能通常的CPU都是把SDRAM中的内容Load到Cache中来运行的吧 直接运行是不行了 郁闷死了~~ |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|