一步一步实现STM32-FOTA系列教程之STM32-FLASH分区说明
前言
如果想在 STM32 上面实现 FOTA功能,就需要对 STM32 的 FLASH 分区有一定的了解,要搞明白运行在 STM32 上的固件都是如何在 FLASH 上存储的,才能够非常灵活的实现 FOTA 。本教程是在 STM32F103RCT6 单片机上实现的 FOTA,因此会对这款单片机的片上FLAH分区进行说明。
转载请注明出处
STM32 FLASH 地址空间介绍
STM32 系列单片机型号众多,不同型号单片机的 FLASH 容量也有所不同。笔者所使用的 STM32F103RCT6 单片机的 FLASH 大小为 256KB,属于 STM32F103 系列单片机中大容量产品。这款单片机的 FLASH 分区结构如下图所示。
从图中可以看出,FLASH 主存储器的起始地址就是 0x0800 0000 主存储器地址空间被划分为了256夜,每页长度为2KB,在 BOOT0、BOOT1 启动方式选择引脚都接地的情况下,就是从该地址开始运行代码的。
由于这款单片机的 FLASH 大小为 256KB,FLASH 主存储器的空间大小为 0x4 0000 ,即从 0x0800 0000 开始,到 0x0803 FFFF 结束。
对于不需要实现 FOTA 功能的 单片机开发而言,可以不用过多的对 FLASH 地址空间进行详细的了解。直接将程序烧写到 FLASH 中运行即可。但是如果要