打印
[ZLG-ARM]

IAP跳转问题

[复制链接]
6369|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ybqchj|  楼主 | 2009-1-3 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2009-1-3 14:59 | 只看该作者

强制转换为函数调用,((void(*)(void))地址)();

使用特权

评论回复
板凳
ybqchj|  楼主 | 2009-1-3 16:51 | 只看该作者

打错了

地址是0x40000950 to 0x40000b50

就差最后一步了,好郁闷,也碰到这种问题的帮帮忙

使用特权

评论回复
地板
computer00| | 2009-1-3 17:34 | 只看该作者

不用管它,也许是你两个程序之间的堆栈地址不一样,系统

使用特权

评论回复
5
ybqchj|  楼主 | 2009-1-4 08:21 | 只看该作者

8扇区的程序跑不起来

我在0扇区的程序中只执行跳转指令

main(void)
{
  ((void(*)(void))0x00008000)();
}
8扇区中放着一个LED灯亮的小程序,上电后LED没亮,我要怎么跟踪指针有没有跳到8扇区中 

使用特权

评论回复
6
liwenz| | 2009-1-5 07:23 | 只看该作者

高手给段demo程序

我看了《深入浅出ARM7-213x 上》 P376 IAP演示实验
可我的是keil 版本,
不知道怎么修改

使用特权

评论回复
7
ybqchj|  楼主 | 2009-1-6 11:28 | 只看该作者

谢谢computer00

现在可以调通了,只是那个提示还存在,我是将Flash分成两个区,刚开始运行在第一区,当条件满足的时候跳到第二区,在第二区执行程序当条件再满足跳转条件的时候又跳到第一区,问题:现在如果第一区的条件再一次满足的话就跳不回第二区了

使用特权

评论回复
8
computer00| | 2009-1-6 12:15 | 只看该作者

晕...每见过这样跳来跳去的...跳回去需要重新初始化堆栈

也就是应该跳到启动的地址去。但是还可能存在着寄存器复位不完全导致程序运行出错的可能。
你还是先把运行环境、堆栈结构、各种寄存器搞清楚后再来研究这个问题吧...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

56

帖子

0

粉丝