1. STM32H743闪存操作概述
STM32H743作为STMicroelectronics推出的高性能Cortex-M7微控制器,其内置的Flash存储器在嵌入式开发中扮演着关键角色。不同于普通存储介质,嵌入式闪存需要特殊的操作流程和时序控制。我在工业控制项目中多次使用这款芯片,发现其双Bank架构和256位宽数据总线带来的性能提升非常显著,但同时也引入了新的操作复杂度。
这款芯片的Flash分为两个独立的Bank(Bank1和Bank2),每个Bank容量高达1MB,支持并行读写操作。实际开发中最常遇到的场景包括:固件程序存储、参数配置保存、数据日志记录等。值得注意的是,H743的Flash单元以扇区(Sector)为最小擦除单位,这与我们熟悉的页(Page)概念有所不同——最小的Sector 0只有16KB,而最大的Sector 7达到128KB,这种非对称设计需要特别注意。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件架构深度解析
2.1 存储分区与地址映射
H743的Flash物理地址从0x0800 0000开始,两个Bank的地址空间连续分布。Bank1占据0x0800 0000-0x080F FFFF,Bank2则是0x0810 0000-0x081F FFFF。每个Bank包含8个扇区,具体分布如下:
| 扇区编号 | 起始地址 | 大小 | 特性说明 |
|---|---|---|---|
| Sector 0 | 0x0800 0000 | 16KB | 常存放启动配置 |
| Sector 1 | 0x0800 4000 | 16KB | |
| ... | ... | ... | |
| Sector 7 | 0x080F 0000 | 128KB | 大容量数据存储首选 |
重要提示:擦除操作的最小单位是扇区,写入则必须以256位(32字节)为基本单元。这种设计源于Flash的物理结构特性。
2.2 关键寄存器剖析
Flash操作涉
