
本文通过对比F1、F4、L4系列的手册数据,浅谈对Bank、Sector、Page相关概念的理解。 以我们常用的STM32F103C8T6为例: ( h1 K4 y' k2 d8 E9 T7 B ![]() 它具有64K的闪存大小,属于中容量产品。 在STM32中文参考手册_V10中,是这样描述嵌入式闪存的:, e. y4 f+ }4 Z @ ![]() 0 u9 K( q9 Z8 s$ ~$ v 中容量产品主存储块最大为16x64位,每个存储块划分为128个1K字节的页,对应的表3如下:$ J. t6 X7 B! q8 `2 l# d. @ / R( s Q6 c, L6 F6 G$ M ![]() 在手册随后的擦除和编程相关的描述中:$ A: d) Q% B7 T Y+ q( _ 9 O/ \& q+ _* J; k5 g% f& l ![]() {. {# u7 \8 V2 c4 u# W3 Q 我们就知道了,STM32F1系列最小擦除粒度为页面(1K),最小写入粒度为半字(2byte)。0 {, u% ]' }7 x2 c 3 b) e5 H0 u8 a/ s9 S) f 再以STM32F4系列为例,这里就不看芯片手册,直接看中文参考手册了: + x; D8 j$ S2 c ![]() 最小擦除粒度为扇区(最小的16K),最小写入粒度为字节(1byte)。9 X1 N+ l/ \- P4 e7 y' l 再看看STM32L4系列,这里只找到了英文的参考手册:$ N0 r1 w- b) Y5 t/ Q* U ![]() 然后是它的分区结构:7 `0 _% \1 B2 O. O# E) g! S" [ ; T& X W3 z/ Q' S ![]() 4 `4 c, l# g) \9 R* s 它把存储器分成了2份,所以有页擦除、bank擦除和整体擦除三种擦除方式。 最小擦除粒度为页(2Kbyte),因为具有ECC纠错,所以最小写入粒度为64bit。/ \1 X: F% }; u) e7 X& [ , E7 J) G! r v2 N' q/ Z+ T& X 其实对于bank、sector和page的了解,我觉得需要知道针对我们所使用的MCU,最小写入粒度和最小擦除粒度是什么,具体大小是多少就行了。 ![]() ————————————————( e# E8 N6 s4 V$ \+ o 版权声明:小盼你最萌哒 如有侵权请联系删除 / c; k- ]0 _( z: K' y 7 }: K+ v9 r- p . T; y5 g0 G/ g |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南