打印

stm32 iap疑问

[复制链接]
1648|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Miltonliu2010|  楼主 | 2013-1-23 19:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前做STM32 IAP的时候没发现什么问题,可是今天新的时候发现一个奇怪的问题。当我把APP地址设为0x8003000的时候,代码可以下载后正常运行。可是将APP地址设为0x8004000或者更大的时候程序能下载,可是不能运行。请问这是为什么?急死我了。
沙发
uet_cache| | 2013-1-23 21:54 | 只看该作者
应用程序中的地址也要相应的改变。。。

使用特权

评论回复
板凳
JasonWangFAE| | 2013-1-24 08:23 | 只看该作者
Please check your NVIC offset address setting

使用特权

评论回复
地板
jlass| | 2013-1-24 09:22 | 只看该作者
先确定是不是楼上所说的问题,剩下的就是内存坏块。可以更换芯片来验证。

使用特权

评论回复
5
Miltonliu2010|  楼主 | 2013-1-24 12:44 | 只看该作者
jlass 发表于 2013-1-24 09:22
先确定是不是楼上所说的问题,剩下的就是内存坏块。可以更换芯片来验证。 ...

不是一楼二楼的问题。0x8003000已经能跑了,我肯定设置了起始地址和NVIC偏移的。内存坏块?

使用特权

评论回复
6
Miltonliu2010|  楼主 | 2013-1-24 14:09 | 只看该作者
追加一个新的发现:
我之前的APP代码中使用了FREERTOS.但是当我用不含FREERTOS的代码实验时在起始地址大于0x8003000时就可以正常运行了。

使用特权

评论回复
7
jlass| | 2013-1-24 15:16 | 只看该作者
Miltonliu2010 发表于 2013-1-24 12:44
不是一楼二楼的问题。0x8003000已经能跑了,我肯定设置了起始地址和NVIC偏移的。内存坏块? ...

简单的说就是芯片个体差异:)
不过你好像已经快找到问题了:)

使用特权

评论回复
8
Miltonliu2010|  楼主 | 2013-1-28 13:33 | 只看该作者
再跟踪调试记录:同一个工程,以0x8003000为起始地址时,跳转后代码正常运行;以0x8006000为起始地址时,跳转后代码可以运行,但是速度变慢;以0x8008000wei 起始地址时,跳转后代码不运行。太TM纠结了。

使用特权

评论回复
9
Miltonliu2010|  楼主 | 2013-1-31 12:52 | 只看该作者
和硬件初始化顺序有关。

使用特权

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

本版积分规则

20

主题

87

帖子

3

粉丝