YTM32的Flash控制器EFM模块详解
文章目录
Flash存储器控制器EFM模块概述
Flash(闪存)是一种可擦除的只读存储器,按照实现方式和运行特性Flash一般还会分为NOR和NAND两种。其中NOR Flash支持随机地址的读取方式,在读取操作上类似于RAM,比较适合程序的直接读取运行,而NAND Flash读取是基于页的方式,一般无法随机读取。在微控制器中,Flash需要存储程序和数据,所以大多使用NOR Flash。
YTM32的Flash存储器特性
YTM32系列MCU中通过Flash控制器EFM(Embedded Flash Module)控制管理Flash存储器,这里以ME0x系列MCU为例,EFM模块支持如下的一些功能:
- 512KB x 2 的程序存储区域PFlash,带有ECC功能,Sector大小为2K
- 256KB 单独的数据存储块DFlash,带有ECC功能,Sector大小为1K
- 4KB的NVR区域,带有ECC功能,Sector大小为1K
- 支持Flash按区域(16KB单位)的写保护功能。YTM32的M系列设计写保护固定为32x2个区域,总Flash
- 支持配置禁用调试器
- 支持产生Flash命令执行结束和异常中断
- 支持Block Swap的OTA升级功能
- 支持ECC错误地址记录和单比特、多比特中断
- 支持OTP(One Time Program,一次可编程)区域
- 支持HCU 密钥存储(可擦写,不可读取)
- 支持块擦除、扇区(Sector)擦除和整个Chip的擦除操作
- 最小写入页大小为 8 Bytes
Flash的约定术语
这里梳理使用Flash过程中常用的一些约定术语:
- PFlash,程序Flash,实际也可以保存数据,属于基于应用场景的一种约定名称。
- DFlash,数据Flash,实际也可以运行程序,属于基于应用场景的一种约定名称。
- Block,Flash块的存储映射空间,表示物理上的一个Flash块(PFlash0、PFlash1、DFlash等),不同物理块的Flash相互之间可以支持Read While Write(RWW)特性。
- Sector,扇区,是Flash擦除的最小单位,属于Flash的物理特性,软件无法修改。
- Page,Flash 编程的最小单位,同样属于Flash物理特性,软件无法修改。
- RWW,Read While Write,在运行擦除或者编程Flash的操作时,同时支持读Flash的操作。
- ECC校验,纠错算法的一种,可以纠正单比特错误,检测多比特错误。
存储器的地址空间及定义
以ME0x微控制器为例,芯片系统存储的映射地址空间,如表x所示。
| Flash Device Name | Address Space | Size(KB) | Block | Protect |
|---|---|---|---|---|
| PFlash0 | 0x0000_0000 - 0x0007_FFFF | 512 KB | 0 | ADDR_PROT0 |
| PFlash1 | 0x0008_0000 - 0x000F_FFFF | 512 KB | 1 | ADDR_PROT1 |
| DFlash | 0x0010_0000 - 0x0013_FFFF | 256 KB | 2 | ADDR_PROT2 |
| AES_NVR / HCU_NVR | 0x1000_0000 - 0x1000_03FF | 1 KB | 0 | No Read + Customer Key |
| OTP_NVR | 0x1001_0000 - 0x1001_03FF | 1 KB | 0 | No Erase |
| BOOT_NVR | 0x1002_0000 - 0x1002_03FF | 1 KB | 1 | SWAP CMD only |

本文详细介绍了YTM32系列MCU的嵌入式Flash模块EFM,涵盖了Flash存储器特性、操作流程、约定术语、地址空间以及高级功能如BootSwap操作、调试端口和地址保护。
最低0.47元/天 解锁文章
1360

被折叠的 条评论
为什么被折叠?



