# Bootloader **Repository Path**: yuwenhai/Bootloader ## Basic Information - **Project Name**: Bootloader - **Description**: stm32 Bootloader demo项目 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2019-10-28 - **Last Updated**: 2022-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bootloder ## 1.简介 ​ **本项目基于Stm32平台,意在通过该平台提供可移植的嵌入式Bootloder程序。对于嵌入式平台来说,通常做法都是使用Jlink等调试器进行固件的下载以及更新。但是对于很多商用项目,其实都可以看到其可以使用蓝牙、wifi、tfCard更新固件。虽然这些技术相当成熟,但是公开资料较少。为了提高大家日后工作的竞争力,以及某些项目需求,因此特意增开本项目供和大家一同学习** ## 2.需求 1. 硬件平台 - stm32f103c8t6 - jlink v9 / stmlink - ch340 - oled(可选) - 按键(可选) 2. 主机环境 + **win10** + Cubemx + mdk/vscode + devCpp(*用来做一些mdk的插件,比如自动给bin文件添加密钥*等) + aStyle(*mdk代码格式化插件,本工程统一使用Google编码风格*) ***计划后期会使用cpplint作为静态语法检查工具,为了减少返工,上传之前请务必使用Astyle格式化一遍*** + TBD ## 3.目标 1. 实现iap基本功能 2. 完成里程碑计划 ## 4.意义 1. 了解Cubemx使用方式 2. 了解项目开发流程 3. 规范编码习惯 4. 提高个人能力 ## 5.里程碑计划 1. 实现Iap基本功能 + 通过一定条件的触发,可以进入Bootloader + Bootloader可以正常引导程序启动 + Bootloader可以进行固件的升级 + Bootloader可以自升级(不必要) + Bootloader保存并读取必要数据 - 当前固件版本 - 总升级次数 - 启动失败次数(预留) - Crash堆栈(预留) 2. 加入补丁升级(参考动态加载库) + 可以加载并运行补丁程序 + 能够以补丁的形式升级功能 3. 加入加密算法 + 固件或补丁升级前校验 + Flash加密 4. AB Page(保留功能,对Flash过小的单片机没有必要) + 片内保存两套程序,Bt尝试3次拉起代码,均失败后,立即切换Page保证最小功能