零死角玩转STM32—F429第 968页 共 996第 50章读写内部 FLASH本章参考资料:《STM32F4xx参考手册》、《STM32F4xx规格书》、库说明文档《stm32f4xx_dsp_stdperiph_lib_um
1STM32的内部 FLASH简介在 STM32芯片内部有一个 FLASH存储器,它主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部 FLASH中,由于 FLASH存储器的内容在掉电后不会丢失,芯片重新上电复位后,内核可从内部 FLASH中加载代码并运行,见图 50-1
图 50-1STM32的内部框架图除了使用外部的工具(如下载器)读写内部 FLASH外,STM32芯片在运行的时候,也能对自身的内部 FLASH进行读写,因此,若内部 FLASH存储了应用程序后还有剩余的空间,我们可以把它像外部 SPI-FLASH那样利用起来,存储一些程序运行时产生的需要掉电保存的数据
由于访问内部 FLASH的速度要比外部的 SPI-FLASH快得多,所以在紧急状态下常常会使用内部 FLASH存储关键记录;为了防止应用程序被抄袭,有的应用会禁止读写内部FLASH中的内容,或者在第一次运行时计算加密信息并记录到某些区域,然后删除自身的部分加密代码,这些应用都涉及到内部 FLASH的操作
内部 FLASH的构成STM32的内部 FLASH包含主存储器、系统存储器、OTP区域以及选项字节区域,它们的地址分布及大小见表 50-1
表 50-1STM32内部 FLASH的构成区域块名称块地址大小零死角玩转STM32—F429第 969页 共 996主存储器块 1扇区 00x08000000-0x08003FFF16Kbytes扇区 10x08004000-0x08007FFF16Kbytes扇区 20x080