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

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

[复制链接]
miraclexue 提问时间:2018-7-12 23:37 /
如题,STM32F446RCT6芯片flash大小为256KB,一共有6个扇区:0~5;
STM32F446XX系列 flash最大为512KB,一共有8个扇区:0~7;
请问,在STM32F446RCT6芯片中,假如擦除flash的操作越过0~5扇区,擦除并不存在的6和7扇区,会不会导致错误呢?
调试过程中貌似没有出现异常。具体原因是什么呢?
本人猜测,STM32F446RCT6里面有6和7扇区的电路?只是没安装flash?
收藏 评论6 发布时间:2018-7-12 23:37

举报

6个回答
wudianjun2001 回答时间:2018-7-13 08:34:08
好像以前听说,好多系列的MCU,比如说有16K,32K,64K的系列,其实里面都是64K的,只不过前面的是测试保证好的,后面没测试过的

评分

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

查看全部评分

miraclexue 回答时间:2018-7-13 09:32:14
wudianjun2001 发表于 2018-7-13 08:34
好像以前听说,好多系列的MCU,比如说有16K,32K,64K的系列,其实里面都是64K的,只不过前面的是测试保证好 ...

感谢回复, 所以一个系列的芯片,就会按照最大的Flash来预留设计么?所以对超出自身flash范围,但是没有超出该系列芯片最大flash范围的部分进行擦除就没问题?
STM1024 回答时间:2018-7-13 09:54:50
本帖最后由 stm1024 于 2018-7-13 09:59 编辑

不会有问题,你看看arm的储存器布局:
70064724_2.jpg
你看储存器从数学上是连续的,一个区域挨着一个区域,但是实际上,ARM公司在设计的时候考虑到不同厂家的存储空间和外设数量,一般会留有余地。因此,会存在一些真空地带。flash一般会有一个片内储存器保留区间,所以别说什么16k,64k,512k的,就是1GB都是可能的,所以你擦除扇区的时候落在这个区域,是不会起作用的。
如果一个耿直的厂商做了一个1gb的flash……


评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

miraclexue 回答时间:2018-7-13 10:07:56
stm1024 发表于 2018-7-13 09:54
不会有问题,你看看arm的储存器布局:

你看储存器从数学上是连续的,一个区域挨着一个区域,但是实际上,A ...

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

评分

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

查看全部评分

miraclexue 回答时间:2018-7-16 10:00:45
奏奏奏 发表于 2018-7-13 11:51
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)这个函数是有返回值的,楼主可 ...

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