From Zero To Hero | 片内FLASH读写失败问题分析
💡
原文中文,约3500字,阅读约需9分钟。
📝
内容提要
FLASH是一种非易失性存储器,用于STM32微控制器中的代码和数据存储。不同系列的STM32在FLASH组织结构上可能有所不同。常规操作包括读、写、擦除和读写保护。FLASH容量由型号决定,配置选项字节可通过软件编码或编程工具实现。操作FLASH时需注意地址对齐、数据擦除和电压稳定等问题。
🎯
关键要点
- FLASH是一种非易失性存储器,能够在掉电情况下保存数据。
- STM32微控制器中FLASH用于存储代码和数据,支持读、写、擦除等操作。
- 不同系列的STM32在FLASH的组织结构上有所不同,容量和最小存储单元也不同。
- FLASH结构包括主存储器、系统存储器、OTP区域和选项字节。
- FLASH的常规操作包括128位宽数据读取、字节、半字、字和双字数据写入,以及扇区擦除与全部擦除。
- STM32的FLASH容量由型号决定,出厂时已确定。
- STM32存储器组织结构默认为小端格式,低字节保存在低地址。
- FLASH的读写保护通过配置选项字节实现,配置方式包括软件编码和编程工具。
- 读数据可以通过程序或外部编程工具进行,写数据前需先擦除。
- 擦除数据分为页、扇区和整块,擦除时间因型号和速度不同而异。
- 常见问题包括编程地址非对齐、编程地址数据未擦除、擦除时读取数据失败和电压不稳定导致写入失败。
➡️