请问STM32F446RCT6超出flash范围擦除会有问题吗?

2019-07-18 17:20发布

如题,STM32F446RCT6芯片flash大小为256KB,一共有6个扇区:0~5;
STM32F446XX系列 flash最大为512KB,一共有8个扇区:0~7;
请问,在STM32F446RCT6芯片中,假如擦除flash的操作越过0~5扇区,擦除并不存在的6和7扇区,会不会导致错误呢?
调试过程中貌似没有出现异常。具体原因是什么呢?
本人猜测,STM32F446RCT6里面有6和7扇区的电路?只是没安装flash?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
bbslsk
1楼-- · 2019-07-18 18:54
好像以前听说,好多系列的MCU,比如说有16K,32K,64K的系列,其实里面都是64K的,只不过前面的是测试保证好的,后面没测试过的
lining870815844
2楼-- · 2019-07-18 23:38
bbslsk 发表于 2019-6-18 10:02
好像以前听说,好多系列的MCU,比如说有16K,32K,64K的系列,其实里面都是64K的,只不过前面的是测试保证好的,后面没测试过的

感谢回复, 所以一个系列的芯片,就会按照最大的Flash来预留设计么?所以对超出自身flash范围,但是没有超出该系列芯片最大flash范围的部分进行擦除就没问题?
60user36
3楼-- · 2019-07-19 00:55
 精彩回答 2  元偷偷看……
lining870815844
4楼-- · 2019-07-19 01:47
60user36 发表于 2019-6-18 10:21
本帖最后由 stm1024 于 2018-7-13 09:59 编辑

不会有问题,你看看arm的储存器布局:

感谢回复,由于不明白具体电路设计的原理,只能单纯的理解为预留出来,不了解对没有接flash的地方执行擦除操作会发生什么样的电气变化。
考虑到程序的稳定性,还是不敢轻易去擦除没有真实flash的地带。ST的例程貌似没有对256K和512K进行区分,统一成512K对待。
UserMen
5楼-- · 2019-07-19 03:49
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)这个函数是有返回值的,楼主可以自己DEBUG看一下 返回值(就是return status是多少)
HAL库绝大部分函数都有返回值,便于诊断错误
lining870815844
6楼-- · 2019-07-19 06:51
UserMen 发表于 2019-6-18 10:46
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)这个函数是有返回值的,楼主可以自己DEBUG看一下 返回值(就是return status是多少)
HAL库绝大部分函数都有返回值,便于诊断错误

感谢回复,我试一下看看

一周热门 更多>