请选择 进入手机版 | 继续访问电脑版

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

STM32F207擦除片内FLASH的问题

[复制链接]
billin-1042128 提问时间:2019-3-25 10:54 /
由于项目需求,需要擦除片内指定空间,然后从SPI_FLASH中加载程序运行

问题如下:: 在DEBUG模式下,执行擦除程序后,则退出DEBUG,无法执行下一步程序

擦除代码如下:

1、FLASH_Unlock();
2、FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);
3、FLASH_EraseSector(FLASH_Sector_4, VoltageRange_3);     //出错在这步
4、FLASH_ProgramByte() ;  //写入代码省略
5、FLASH_Lock();  

求教各位大侠,谢谢,急。
收藏 评论8 发布时间:2019-3-25 10:54

举报

8个回答
billin-1042128 回答时间:2019-3-25 10:55:47
虽然在第三步执行擦除时,跳出DEBUG,但是下次在进DEBUG,查看FLASH空间,确实已擦除,全为0xFF
wenyangzeng 回答时间:2019-3-25 11:56:10
应该是擦除了代码段了。

评分

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

查看全部评分

七哥 回答时间:2019-3-25 12:00:43
wenyangzeng 发表于 2019-3-25 11:56
应该是擦除了代码段了。

说的有道理

请楼主把.map文件打开对照一下,看看擦除的是否为代码段。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

billin-1042128 回答时间:2019-3-25 12:10:58
我程序最大空间已经限定范围了 ,,  0x08000000 - 0x0801 0000

我删除的是后面的空间,,不至于会擦除到代码段
微信图片_20190325120847.jpg
billin-1042128 回答时间:2019-3-25 12:13:20
擦除的扇区是  FLASH_Sector_4 ,0x0801 0000  -- 0x0801FFFF

就算我擦除别的扇区  比如FLASH_Sector_5 也是类似问题
billin-1042128 回答时间:2019-3-25 12:22:57
会不会是擦除时间太长 导致某些复位? 比如看门狗, 我工程里没有对看门狗进行操作,会默认打开吗?
billin-1042128 回答时间:2019-3-25 15:12:01
进一步测试发现,擦除16k FLASH时正常,擦除128k FLASH 扇区时  出现异常
五哥1 回答时间:2019-3-25 19:14:35
刚才是就想是不是硬件问题,看到16K正常,128K异常,FLASH的大小是否和程序匹配

评分

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

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版