前言
我们通过仿真器下到芯片的程序一般会保存到eflash里面,在我们的STM32F407里面这里的空间挺大的,我所使用的芯片型号是STM32F407ZGT6,FLASH 容量为 1024K 字节。不同的项目会选择不同的芯片进行开发。
一、FLASH 简介
FLASH 是 EEPROM 的一种,是带电可擦除可编程的只读存储器,本文特指 STM32 内部的 Flash,主要用于存储用户程序代码以及必要的配置信息。
特性:
非易失性:数据在断电后依旧存储在数据中,适合存储程序代码和关键配置信息。
快速访问:FLASH 具有较快的读取速度
较长寿命:一般的 FLASH 可擦除约十万次
先擦再写:FLASH 的写操作只能将数据位从 1 写成 0,而不能从 0 写成 1,如果一个数据位已经写成 0 了,那 FLASH 必须先将该位所处的扇区或区块先擦除,才能重新写入。
FLASH 的擦除操作其实就是将对应扇区、区块或者全部区块的数据位全擦除为 1,所以FLASH的默认值是0xFF.
STM32F4 的闪存模块由:主存储器、系统存储器、OPT 区域和选项字节等 4 部分组成。 主存储器,该部分用来存放代码和数据常数(如 const 类型的数据)。分为 12 个扇区,前 4个扇区为 16KB 大小,然后扇区 4是 64KB 大小,扇区5~1