请教IAR430向量 跳转问题,自升级时候无法实现跳转
目前小弟正在做MSP430F2132的自升级程序,后半段放置升级程序,通过升级程序更新前半段的应用程序,但是在程序升级完毕后遇到一个问题,升级程序无法跳转到指定的入口,测...
目前小弟正在做MSP430F2132的自升级程序,后半段放置升级程序,通过升级程序更新前半段的应用程序,但是在程序升级完毕后遇到一个问题,升级程序无法跳转到指定的入口,测试过三条指令:
asm(" MOV &0xF5FE, PC;");
asm(" br &0xF5FE;");
void (*ResetProgram)(void)=(void(*)())0xF5FE;
(*ResetProgram)();
这三条指令都无法跳转到指定地址,0xF5FE为应用程序的复位向量地址,
每次执行后都跳到未知地带,希望哪位高手能及时指点。
0xF5FE-0xF5FF为应用程序复位向量地址,这个地址存放的应该是主函数的入口地址,经常性跳转后就回到了0xFFFF处,使用(*ResetProgram)();单步执行后可以看到确实到了0xF5FE处,但是我声明的是指向函数的指针,他应该再跳到0xF5FE处存放的地址的指向位置才对,但是他没有跳转,而是直接执行到了0xF600,而用汇编指令无法跟踪到跳转,至看到是回到了0xFFFF
谢谢了,问题已经解决,原因为Bootloader里把中断给关掉了,而应用程序的中断开启的位置是不一样的。 展开
asm(" MOV &0xF5FE, PC;");
asm(" br &0xF5FE;");
void (*ResetProgram)(void)=(void(*)())0xF5FE;
(*ResetProgram)();
这三条指令都无法跳转到指定地址,0xF5FE为应用程序的复位向量地址,
每次执行后都跳到未知地带,希望哪位高手能及时指点。
0xF5FE-0xF5FF为应用程序复位向量地址,这个地址存放的应该是主函数的入口地址,经常性跳转后就回到了0xFFFF处,使用(*ResetProgram)();单步执行后可以看到确实到了0xF5FE处,但是我声明的是指向函数的指针,他应该再跳到0xF5FE处存放的地址的指向位置才对,但是他没有跳转,而是直接执行到了0xF600,而用汇编指令无法跟踪到跳转,至看到是回到了0xFFFF
谢谢了,问题已经解决,原因为Bootloader里把中断给关掉了,而应用程序的中断开启的位置是不一样的。 展开
1个回答
2009-11-19
展开全部
跳法没问题呀?每次都是跳到同一个错误地址还是随机地址。斗缓0xF5FE-0xF5FF里的向量值有没空灶模有高低辩亏位写反
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询