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

STM32F103的Flash擦除问题

[复制链接]
aude5420 提问时间:2016-8-30 18:26 /
阅读主题, 点击返回1楼
收藏 1 评论17 发布时间:2016-8-30 18:26
17个回答
无薪税绵 回答时间:2016-9-1 13:22:56
建议楼主更改一下删除地址。
例如:由0x08000000改为0x08010000。
qunda 回答时间:2016-9-1 16:23:59
FLASH_ErasePage((uint32_t)0x08000000)感觉地址不对劲。
huaiqiao 回答时间:2016-9-1 21:45:14
这个有个st的官方的flash编程手册,下载下来好好看看恩。没搞过这个。。。
feixiang20 回答时间:2016-9-1 22:13:16
确认循环对嘛
ppaaddss 回答时间:2016-9-2 08:22:22
本帖最后由 ppaaddss 于 2016-9-2 09:31 编辑

你这么做,应带都不是停在FLASHStatus = FLASH_ErasePage((uint32_t)0x08000000);这个函数了
而是直接进入了硬件错误中断中了。
因为编译器编译程序源码后的区域应该都是不可写入的。
具体程序是存储在什么地方,存储了多大的空间。。。这个需要根据编译器配置和程序的大小。。。余下的空间只要不超过片内FLASH的最大存储量应该都是可以擦除的。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

moyanming2013 回答时间:2016-9-2 10:59:42
1.不可能实现存放代码的flash扇区被自己擦除!擦除时的代码还要运行,擦除了运行哪里呢?!
2.你大概是要IAP吧。就是程序既可以运行也可以烧录新固件,那么此时需要参考如下官方的推荐方式:
分配一个IAP代码区和一个用户代码区,每个区都有向量表和代码。其实,每个区都是一个独立的MCU程序,只是功能不一样。
IAP代码区执行的是截获用户的一些特殊操作,然后烧录用户代码;否则执行用户代码。这里面的关键是使用了向量表的重定位功能。
你参考下图吧(参考AN4657):
QQ截图20160902105356.jpg

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

湉湉 回答时间:2016-9-4 00:05:00
0x0800 0000 中断向量表的位置,你删除了,程序的一些中断找不到中断服务程序了,导致异常了吧
蝶舞娇阳 回答时间:2016-9-5 09:14:48
回复的很明白了
12

所属标签

相似问题

官网相关资源

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