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

为什么stm32f4xx_flash.h提供的库函数是Flash_EraseSector()而不像F1...

[复制链接]
冯兆亮 提问时间:2018-2-5 10:30 /
为什么stm32f4xx_flash.h提供的库函数是Flash_EraseSector()而不像stm32f10x_flash.h里面提供的是FLASH_ErasePage,因为一个扇区是好多个页,很大了可以说,不好细划分出来使用,尤其在做在线升级的时候,需要一个程序升级的标志位,或者需要程序使用一个重启不改变的标志位,这时候难道要用一个扇区嘛?觉得很不方便,不知道这样做出于什么考虑。
收藏 1 评论11 发布时间:2018-2-5 10:30

举报

11个回答
wudianjun2001 回答时间:2018-3-6 09:15:59
擦除都是整个扇区一起擦除的

评分

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

查看全部评分

琦子 回答时间:2018-3-6 09:18:38
楼主啊 我是这样理解的stm32f10x的flash从16kb到1M的都有,而且绝大部分都比较小,所以需要一页一页的擦除,而stm32f4xx的flash最小的只有一个410的是64的,其余的绝大部分都很大,根据实际需要所以升级到按照扇区进行擦写。

评分

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

查看全部评分

jundao721 回答时间:2018-3-6 09:32:50
flash比较大,占用或擦除一个扇区可能并不觉得浪费。以前是擦除字节,后来直接擦除页,现在擦除扇区,官方可能考虑更快更便捷。

评分

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

查看全部评分

springvirus 回答时间:2018-3-6 09:33:17
这就是F4xx和F10x的区别所在,系列不同,容量不同,适用的API也不同

评分

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

查看全部评分

无薪税绵 回答时间:2018-3-6 10:20:41
我觉得是,因为STM32的FLASH的擦写次数是有限的,尽量使用擦扇区,比擦页安全。
因为擦多了,出现坏块,那就影响使用了。

而且,估计官方的设想是把FLASH作为升级程序用的,并不是用来保存零碎数据的。
如果保存零碎数据,建议还是使用外部FLASH了。

评分

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

查看全部评分

feixiang20 回答时间:2018-3-6 10:34:33
你们都想多了,我认为主要是为了提高性能,减少多次擦拭的损伤

评分

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

查看全部评分

黑皮男 回答时间:2018-3-6 11:55:10
Flash比较大的STM32,前几个扇区都相对来说要小一些,bootloader和相关的一些参数可以放在小扇区中

评分

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

查看全部评分

Angel_YY_ST 回答时间:2018-3-6 17:41:16
提示: 作者被禁止或删除 内容自动屏蔽
XinLiYF 回答时间:2018-3-6 17:47:51
可以参考一下这个,STM32F4(Flash读保护)
队长shiwo 回答时间:2018-3-6 18:01:12
我一般是把要擦除的扇区先读出来,然后擦除,修改要写入的数据,,不过我的数据不大,不超过1KB的,大了我也不知道怎么搞了,RAM可能不够
wolfgang 回答时间:2018-3-6 23:03:51
Sector 是扇区, ErasePage 是页面,
扇区管理是在内存增加后的管理模式,这样能用最少的资源来管理更大的内存范围。

所属标签

相似问题

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