# STM32F103 Bootloader **Repository Path**: pocean2019/stm32-f103-bootloader ## Basic Information - **Project Name**: STM32F103 Bootloader - **Description**: 针对stm32f103c8t6写的一个BootLoader,方便移植。 - **Primary Language**: C/C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-08-29 - **Last Updated**: 2024-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32F103 Bootloader 一、介绍 示例为stm32f103c8t6写的一个BootLoader,同样可以移植其它型号单片机。 二、软件架构 BootLoader启动后,先读取flash最后一页的保存数据,若为0xFF,则说明第一次烧录,则直接写入0x01,因为BootLoader调用的函数一直在main的while循环里执行,所以当为0x01后,则跳转为执行跳转app1地址,至此,跳转地址步骤完成,并成功进入app1区。后续进行乒乓升级时,若app2区升级内容完成并验证无误后,则在最后一页写入0x02,并进行重启操作,则进入BootLoader程序后,先判断最后一页的值,若为0x02,则执行跳转到app2区。 三、环境及硬件 MCU:STM32F103C8T6(其它型号可自行修改移植) IDE:Keil MDK 5.0以上,基于hal库 四、 使用说明 1. 拷贝update.c和update.h到工程; 2. 根据自己的app bin文件大小,自行划分boot和app分区大小; 3. 此boot程序bin文件大小为3.7K左右,所以预留给boot的分区为5K; 4. 例程分区见excel表; 5. boot例程为开机点亮一个led灯,app1程序为开机闪烁led,验证跳转正常; ![分区](https://images.gitee.com/uploads/images/2021/0921/193650_09864393_5234310.png "屏幕截图.png")