你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103RE 只有挂调试器IAP程序才能正常跳转?

[复制链接]
TurbulanceFlow 提问时间:2017-3-25 00:22 /
题主最近在开发一款基于STM32F103RET6的产品,要求支持固件升级,目前是基于USART1的IAP,Toolchain是IAR。
IAP的程序是参考官方的例程做的,大体没变,只是BSP方面改了一下,Flash中前12KB作为IAP的程序。

目前的情况很诡异,就是把IAP程序和应用程序都按要求烧录进去后,第1次上电是可以正常运行的,IAP跳转很顺利,但断电后再重新上电就无法跳转了???

但是题主试了很多次,发现只要是挂上调试器,无论是在IAR的Debug环境下Run还是在JFlash中选择Start Application,IAP程序每次都能跳转得很顺利。
在IAR的Debug环境下题主详细地查看过Flash中的内容,发现程序设置无误,IAR的Linker设置,JFlash中的Start Address都无误。

初步怀疑是复位部分的问题(因为个人感觉IDE下的Run和真实环境下的上电差别就在于前者是软复位的,而后者是外部复位),但是若将应用程序直接烧录到0x08000000并且不设置中断向量表偏移,应用程序可以正常运行,掉电后再上电也可以,因此初步排除是硬件部分的复位问题。

这下就尴尬了,到底能是哪里没配置好呢,官方的文档例程,网上能收集到的资料题主都看过了,而且我的IAP还是可以运行一次的。。。?
还是硬件上某个地方有问题?

这让我百思不得其解,恳请高人指点,谢谢!
收藏 2 评论8 发布时间:2017-3-25 00:22

举报

8个回答
flu 回答时间:2017-10-18 15:21:07
请问下,楼主的问题有解决吗??
flu 回答时间:2017-10-18 22:46:21
flu 发表于 2017-10-18 15:21
请问下,楼主的问题有解决吗??

测出来了,原来IAP 没问题,出现这个现象的原因是进入iap的条件初始化未成功,导致正常运行的跳转不了
yu0405jie 回答时间:2018-8-7 09:21:54
堆栈和中断向量表部分有没有设置?另外就是跳转部分的代码看一下

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

x5y4z3 回答时间:2018-8-7 10:13:20
直觉这就是中断向量表配置上的问题。
在 IAP 每次转跳前都要配置好各向量表,不然转跳后会一直跑回 IAP 内的!

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

freeelectron 回答时间:2018-8-7 11:31:24
破总啊破总,人家都解决了,看板凳(3楼)

@zero99

点评

额。。  发表于 2018-8-10 15:42
x5y4z3 回答时间:2018-8-8 11:09:34
昨早 8/7 回覆时咋没看见 板凳 的那帖?这真是玩穿越了!呵呵~

fusunbing 回答时间:2018-9-28 10:53:29
我之前也碰到了类似的问题,IAP初始化我用的是开发板示例代码,这个也出问题了

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版