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

关于app擦除非自己flash空间地址死机问题

[复制链接]
yklkadlfk7898 提问时间:2021-10-26 17:59 / 未解决

我的app1程序运行在0x8000000开始地址,size为0x3FFFF的空间.
我的app2程序运行在0x8040000开始地址,size为0x3FFFF的空间.
app1接收命令跳转到app2空间执行(从日志看是成功了的),然后在app2程序里接收一个命令时,开始用Flash_EraseSector(FLASH_Sector_0);
Flash_EraseSector(FLASH_Sector_1);
Flash_EraseSector(FLASH_Sector_2);
Flash_EraseSector(FLASH_Sector_3);
Flash_EraseSector(FLASH_Sector_4);
Flash_EraseSector(FLASH_Sector_5);

函数擦除app1空间flash,结果调用到Flash_EraseSector(FLASH_Sector_0);app2就死了。

扇区 0 0x0800 0000 - 0x0800 3FFF 16 KB
扇区 1 0x0800 4000 - 0x0800 7FFF 16 KB
扇区 2 0x0800 8000 - 0x0800 BFFF 16 KB
扇区 3 0x0800 C000 - 0x0800 FFFF 16 KB
扇区 4 0x0801 0000 - 0x0801 FFFF 64 KB
扇区 5 0x0802 0000 - 0x0803 FFFF 128 KB
扇区 6 0x0804 0000 - 0x0805 FFFF 128 KB
... ... ...
扇区 11 0x080E 0000 - 0x080F FFFF 128 KB


为啥app2擦除非自己flash空间也会死?这是为啥?
收藏 评论7 发布时间:2021-10-26 17:59

举报

7个回答
yklkadlfk7898 回答时间:2021-10-27 11:15:34
此问题找到方法已解,谢谢大家
xmshao 回答时间:2021-10-26 21:47:59
这类问题一定要先说出芯片型号。
废鱼 回答时间:2021-10-27 08:56:04
app2的中断向量表是否有重新配置?如果没有,默认还是app1的,这样擦除后,中断产生会导致该问题。
yklkadlfk7898 回答时间:2021-10-27 09:53:42
xmshao 发表于 2021-10-26 21:47
这类问题一定要先说出芯片型号。

芯片型号是stm32f405系列
yklkadlfk7898 回答时间:2021-10-27 10:03:49
废鱼 发表于 2021-10-27 08:56
app2的中断向量表是否有重新配置?如果没有,默认还是app1的,这样擦除后,中断产生会导致该问题。
...

我用的是stm32f405系列,中断向量表如何重新配置呢?SCB->VTOR=FLASH_BASE|0x40000;是这样吗?
butterflyspring 回答时间:2021-10-27 10:50:50
yklkadlfk7898 发表于 2021-10-27 10:03
我用的是stm32f405系列,中断向量表如何重新配置呢?SCB->VTOR=FLASH_BASE|0x40000;是这样吗?
...

楼主在建立APP2的时候,记得要在工程设置里面将内存分配开始地址要对应修改过来,这样对应的代码才会在相应的地址。
yark 回答时间:2021-10-27 16:46:10
yklkadlfk7898 发表于 2021-10-27 11:15
此问题找到方法已解,谢谢大家

请问是如何解决的呢?可否分享一下?

所属标签

相似问题

官网相关资源

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