[STM32F2] 关于IAP跳转失败

[复制链接]
1640|3
 楼主| jeckboy 发表于 2015-10-16 19:21 | 显示全部楼层 |阅读模式
香版主:我用的CPU为STM32F205VE,之前一直用的IAP功能,很正常。可是这次的工程编译出来以后,总是跳转失败,经过仿真发现是跳转函数里这句过不去:if((JumpAddress & 0x2FFF0000 ) == 0x20000000),查看了JumpAddress值是0x2001d003,也就是我的工程编译出来的bin文件开头4个字节就是这个值,而我之前用的正常的工程文件,都是0x2000xxxx的,但是不知道是什么导致的,之前没有仔细研究过。我把编译地址改成0,编译结果还是0x2001xxxx,把优化什么的都去掉,还是不变,烧写到CPU里是能够正常运行的,各项功能也正常,但就是这个地址不是0x2000,实在搞不懂跟什么有关,特来请教专家,盼尽快解决,折腾好几天了!
zchong 发表于 2015-10-17 17:46 | 显示全部楼层
1、首先你要搞明白你编译出来的bin文件最开始的4个直接的含义:你应用程序的栈指针
2、0x2FFF0000的意思应该是说你的处理器内存不大于64K,如果栈超过64K说明你程序必然有问题了

评论

完全正解!谢谢大侠!  发表于 2015-10-18 22:58

评分

参与人数 1威望 +4 收起 理由
jeckboy + 4 赞一个!

查看全部评分

mintspring 发表于 2015-10-18 11:15 | 显示全部楼层
跳转的地址不对,没有跟你的芯片型号对应上吧。还有你写入APP的地址要跟跳转目的地址一样才行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部