关于STM32中Bank、Sector、Page的理解

本文通过对比F1、F4、L4系列的手册数据,浅谈对Bank、Sector、Page相关概念的理解。
以我们常用的STM32F103C8T6为例:
在这里插入图片描述
它具有64K的闪存大小,属于中容量产品。
STM32中文参考手册_V10中,是这样描述嵌入式闪存的:
在这里插入图片描述
中容量产品主存储块最大为16x64位,每个存储块划分为128个1K字节的页,对应的表3如下:
在这里插入图片描述
在手册随后的擦除和编程相关的描述中:
在这里插入图片描述
我们就知道了,STM32F1系列最小擦除粒度为页面(1K),最小写入粒度为半字(2byte)。

再以STM32F4系列为例,这里就不看芯片手册,直接看中文参考手册了:
在这里插入图片描述
最小擦除粒度为扇区(最小的16K),最小写入粒度为字节(1byte)。

再看看STM32L4系列,这里只找到了英文的参考手册:
在这里插入图片描述
然后是它的分区结构:
在这里插入图片描述

它把存储器分成了2份,所以有页擦除、bank擦除和整体擦除三种擦除方式。
最小擦除粒度为页(2Kbyte),因为具有ECC纠错,所以最小写入粒度为64bit。

其实对于bank、sector和page的了解,我觉得需要知道针对我们所使用的MCU,最小写入粒度和最小擦除粒度是什么,具体大小是多少就行了。

系列 最小擦除粒度 最小写入粒度
STM32F0 FLASH_TYPEERASE_PAGES FLASH_TYPEPROGRAM_WORD
STM32F1 FLASH_TYPEERASE_PAGES FLASH_TYPEPROGRAM_WORD
STM32F2 FLASH_TYPEERASE_SECTORS FLASH_TYPEPROGRAM_BYTE
STM32F4 FLASH_TYPEERASE_SECTORS FLASH_TYPEPROGRAM_BYTE
STM32L4 FLASH_TYPEERASE_PAGES FLASH_TYPEPROGRAM_DOUBLEWORD
STM32F7 FLASH_TYPEERASE_SECTORS FLASH_TYPEPROGRAM_BYTE
发布了339 篇原创文章 · 获赞 78 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/qq_27508477/article/details/104970097