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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版