|
新手求助系统移植romInt.s最后的跳转问题
[复制链接]
开发环境:风河workbench3.2 vxworks6.8 ,目标板:飞思卡尔powerpc mpc8536
问题描述:函数最后是通过计算得出romstart()函数的地址,然后存到链接寄存器LR中,最后用指令blr跳转过去,代码如下
lis sp, HI(STACK_ADRS)
ori sp, sp, LO(STACK_ADRS)
addi sp, sp, -FRAMEBASESZ
lis r6, HI(romInit)
ori r6, r6, LO(romInit)
lis r7, HI(romStart)
ori r7, r7, LO(romStart)
lis r8, HI(ROM_TEXT_ADRS)
ori r8, r8, LO(ROM_TEXT_ADRS)
sub r6, r7, r6
add r6, r6, r8
mtspr LR, r6
mr r3, r2
blr
我现在的问题是程序不能正常跳转,通过打印基本确定是最后一条指令blr跳转时发生异常,引起机器不断重启,重启后运行到这再重启。。。
由于没有调试的仿真器,现在想问问各位高人能不能通过软件的方法查看LR里存的值是多少,有什么汇编指令么?
一个想法是通过往串口的寄存器UTHR写数,系统会打印相应的ASCII码对应的字符,但是这是一个8位的寄存器,而LR是一个32位的寄存器,现在的想法是分四次写进去然后打印,根据打印信息重组得到LR里存的地址,但是各位高手知不知道用什么指令或者怎么操作才能将LR里的内容分四次写进去呢?谢谢各位了,有点罗嗦。
|
|