
本文通过对比F1、F4、L4系列的手册数据,浅谈对Bank、Sector、Page相关概念的理解。/ `! B! ~$ ~* I, [. O+ i9 P' m5 l 以我们常用的STM32F103C8T6为例: 6 |- _! q- {, I% K5 A! d ![]() / K; S! [6 ]0 S* N0 c 它具有64K的闪存大小,属于中容量产品。 在STM32中文参考手册_V10中,是这样描述嵌入式闪存的:' ~* Q6 ^. ^( m# t 6 _, b! V& w5 k: l1 ] ![]() 中容量产品主存储块最大为16x64位,每个存储块划分为128个1K字节的页,对应的表3如下: ) J0 W! l8 R4 K3 |2 a+ P5 ^* I( K ![]() 1 D/ D4 N: W7 X8 j: y5 F! d 在手册随后的擦除和编程相关的描述中:" x8 W! \6 v# ?. p! i2 m+ r0 w 2 {$ g, t' n* b" J! R' E ![]() " [) `) h/ t; m5 g( m% q 我们就知道了,STM32F1系列最小擦除粒度为页面(1K),最小写入粒度为半字(2byte)。 再以STM32F4系列为例,这里就不看芯片手册,直接看中文参考手册了: 5 P; G. G' o7 W, {; G* l6 j ![]() : ~2 f2 H/ h/ ? 最小擦除粒度为扇区(最小的16K),最小写入粒度为字节(1byte)。4 ^9 n" F3 P. i$ @9 e( s; N 5 l- m. {& s% F W1 V 再看看STM32L4系列,这里只找到了英文的参考手册:2 S5 C) r& w* g } 4 v3 a0 X, t d7 U7 m) E ![]() 然后是它的分区结构:7 v1 p8 H8 B% g1 g ![]() E6 C& o$ M* |- U3 H% H: k 它把存储器分成了2份,所以有页擦除、bank擦除和整体擦除三种擦除方式。 最小擦除粒度为页(2Kbyte),因为具有ECC纠错,所以最小写入粒度为64bit。/ U6 b' |' ~# ^/ b! c 其实对于bank、sector和page的了解,我觉得需要知道针对我们所使用的MCU,最小写入粒度和最小擦除粒度是什么,具体大小是多少就行了。" s1 o/ c W6 W! f. n" m. } 5 V3 R3 D: t8 f* P& \9 Z( F ![]() ———————————————— 版权声明:小盼你最萌哒) S0 `. ?! o/ A8 w( V/ P/ B 如有侵权请联系删除6 R1 e9 i9 h- n( H |
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
适用于STM32微控制器的ΣΔ数字接口入门