# OkBoot **Repository Path**: liuyanhb/ok-boot ## Basic Information - **Project Name**: OkBoot - **Description**: 适用于低端MCU的通用Bootloader,代码占用可以低至1KB。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 3 - **Created**: 2021-01-28 - **Last Updated**: 2026-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OkBoot #### 介绍 一个代码量小于1KB(典型配置)、拥有IAP升级、升级包校验、升级包解密、适用于Cortex-M的BootLoader。 -------------------------------------------------------------------- #### 软件架构 ![架构图](https://gitee.com/liuyanhb/ok-boot/raw/master/doc/软件架构.PNG) * **source** : OkBoot的逻辑实现、通用组件代码,在不同的板子(包括MCU)上通用。 * **bsp** : 板级支持包。为 source 实现与板子相关的API。注意不同的板子(多个bsp)必须提供相同的API,这些API可以是板子上外围电路与MCU的连接关系的宏定义、GPIO初始化或者其他函数。因为板子型号一般决定了MCU型号,所以可以包含具体MCU型号的专用代码,比如中断入口、mcu driver的配置文件等(不建议在这里编写MCU外设驱动,尽量把它们放在 mcu driver 中)。还包含了 source 在不同板子或者项目上的配置文件。 * **mcu** *driver* : MCU及其外设驱动包,不同型号的MCU都提供统一的API,支持多种型号的MCU。注意这里不要写与具体引脚绑定的代码,比如UART端口初始化,这样会让代码无法通用(除非你的MCU不支持UART端口切换)。欢迎你为其它型号的MCU添加新的MCU驱动包。 --------------------------------------------------------------------- #### 安装教程 bsp 文件夹中有一些示例工程及其相关代码。在bsp文件夹内一般可以找到对应开发环境的工程文件,可以直接打开编译。 新建自己的项目工程:在 bsp 文件夹下新建一个你自己的文件夹,参考其它示例项目新建自己的项目。当然你可以直接复制后重命名 bsp 内已经存在的项目文件夹,然后修改内容, --------------------------------------------------------------------- #### 使用说明 1. 依据实际需求修改 config.h 中的配置项,文件中有详细说明。 2. 你可以在bsp中添加自己的硬件专属代码。 3. 不同的mcu driver可能需要在bsp中添加不同的配置文件,比如针对HC32系列的 HC32_LyLibConfig.h,依据实际情况配置好MCU驱动。 4. 可以在 bsp 中或者 mcu 文件夹中寻找各个MCU驱动包的使用示例和相关说明。 5. 如果只是移植使用OkBoot,一般不需要修改 mcu 和 source 文件夹内的代码。如果你想改进OkBoot,欢迎你修改后提交。 更多说明请见《OkBoot 使用说明》。 --------------------------------------------------------------------- #### 参与贡献 希望你能加入我们,提交自己的bsp,或者其他任何对OkBoot的改进。 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request * MCU驱动包与PolSys项目是通用的,新增MCU驱动包请看教程:《如何给PolSys添加MCU驱动包》。 * 请严格按照《PolSys代码编写规范》和相关教程的引导编写与提交代码。 #### 关联项目 1. Windows端升级控制上位机软件 OkUpdate,用于连接OkBoot进行固件更新。 2. 固件打包软件 OkFwPkger,用于生成 OkUpdate 可以识别的固件升级文件。