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

基于STM32的IAP问题

[复制链接]
带刺儿 提问时间:2013-10-29 09:33 /
最近在做基于STM32的IAP,我想把FALSH分为4个区,1个BOOT区(8002000H开始),2个应用程序区(1区:8002000H开始,2区:8008000开始),1个存储标志位的区(800F000H开始)。在BOOT里面通过读取FLASH里的标志位,来决定跳到应用程序区1还是跳转到应用程序区2。现在能够正常跳转到应用程序区1,不能跳转到应用程序区2,大致问题应该是中断向量表的问题。我应用程序里面的中断向量表设置也是通过读取FLASH标志位来设置,如果APP在1区,则设置为8002000H,在2区设置为8008000。keilc里面设置的编译段为8002000H。
 
请问哪里不对
收藏 评论11 发布时间:2013-10-29 09:33

举报

11个回答
废鱼 回答时间:2013-10-29 11:28:44

RE:基于STM32的IAP问题

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
记得设置向量列表
看起来很黑 回答时间:2013-10-29 21:53:36

RE:基于STM32的IAP问题

向量列表的地址也要写正确
tchxttt 回答时间:2013-10-30 20:53:22

回复:基于STM32的IAP问题

设置了NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);能够正常运行APPI,但是不能正常执行APP2啊,并且在Keilc里面也只能设置一个偏移地址啊
 
wenshijian 回答时间:2013-10-30 21:19:13

RE:基于STM32的IAP问题

我晕,你一个芯片里面一个IAP两个APP,这个复杂度挺高的阿,围观你什么时候放弃。
wenshijian 回答时间:2013-10-30 21:21:05

RE:基于STM32的IAP问题

劝你尽早放弃这种想法,否则光中断向量就够你受的
111-418106 回答时间:2013-10-30 22:04:52

RE:基于STM32的IAP问题

两个app还是建立两个工程文件,放在同一个workspace里就行,这样keil设置方便
闪电总部 回答时间:2013-10-30 23:34:13

RE:基于STM32的IAP问题

有几种做法:1种是生成一个BOOT工程,再做一个应用工程,通过FLASH-ARM把两个HEX文件合并一下。另一种方法,把BOOT工程生成BIN文件。再把这个BIN文件转换成表格文件。以.H的形式加载到应用工程。
Hiker天下 回答时间:2013-10-31 13:43:13

回复:基于STM32的IAP问题


你的两块应用程序,要按上图 进行设置。注意,有两处。
我爱下载 回答时间:2013-11-1 21:43:38

RE:基于STM32的IAP问题

围观一下,看解决方案
wkuang 回答时间:2013-11-3 00:55:48

RE:基于STM32的IAP问题

你的方法有点复杂,给你提个建议,希望能帮到你
 
1、2个APP分成两个工程,存储在Flash的不同位置,在Boot中运行APP,建议将APP拷贝到RAM中,然后让APP在RAM中运行,从而降低复杂度
2、如1所示,BOOT是、统一的,只是拷贝的源地址不一样,目标地址是相同的,向量表也是完全一样的,因为运行代码在同一个地址
3、APP只是代码的存储位置不一样,运行域是相同的,通过分散加载文件来控制。
不知能否帮到你
zsht 回答时间:2014-2-28 19:22:38

RE:基于STM32的IAP问题

想知道弄好了没啊

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版