# zboot **Repository Path**: hmsfeng/zboot ## Basic Information - **Project Name**: zboot - **Description**: zboot (Zippy Bootloader) 开源 bootloader, 支持市面主流STM32/GD32/FM33/RL78/E804等 ARM/RISC-V 内核。 - **Primary Language**: C - **License**: CC-BY-SA-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2025-06-04 - **Last Updated**: 2026-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZBoot 通用 Bootloader ZBoot 是一款专为嵌入式系统设计的通用 bootloader,支持多种 MCU 平台和升级方式。 ## 项目简介 ZBoot 是一个功能完善的嵌入式 bootloader 解决方案,支持以下特性: - **多平台支持**:FM32、GD32、HPM32、RL78、S32K3、STM32 等主流 MCU - **串口升级**:通过 UART 实现固件升级 - **差分升级**:集成 bsdiff 算法,支持增量更新,节省传输带宽和存储空间 - **多种固件格式**:支持全固件和差分包升级 ## 目录结构 ``` zboot/ ├── cmake/ # CMake 构建配置 ├── components/ │ └── bootloader/ # Bootloader 核心组件 │ ├── adapter/ # 升级协议适配层 │ │ ├── FE_Protocol.c # 升级协议实现 │ │ ├── appUpgrade.c # 升级应用逻辑 │ │ └── datamgr/ # 数据管理与环形队列 │ ├── bsdiff/ # 差分升级算法 │ │ ├── diff/ # bspatch 实现 │ │ ├── lib/ # CRC 校验库 │ │ └── lzma/ # LZMA 压缩库 │ ├── include/ # 头文件 │ └── src/ # 平台相关源码 ├── platform/ # 平台驱动库 └── docs/ # 文档 ``` ## 支持的平台 | 平台系列 | 型号示例 | |---------|---------| | STM32 | STM32F0xx, STM32F4xx, STM32G4xx, STM32WLxx | | GD32 | GD32F1x0, GD32F20x, GD32F4xx | | FM32 | FM33G0XX, FM33LE0XX, FM15L0XX | | HPM32 | HPM5361x | | S32K3 | S32K344 | | RL78 | - | ## 功能特性 ### 1. 串口升级 - 支持多通道数据接收 - 环形缓冲区管理 - 数据预分析机制 ### 2. 差分升级 (bsdiff) - LZMA 压缩算法 - CRC 校验 - 增量更新,减少传输数据量 ### 3. 协议支持 - 握手/使能 - 数据读写 - 重启切换 ## 版本历史 - **V1.0.7**: 最新版本 - **V1.0.6**: 优化升级流程 - **V1.0.5**: 增加新平台支持 - **V1.0.4**: 差分升级优化 ## 构建说明 项目使用 CMake 进行构建配置,需要配置目标芯片平台和工具链。 ### 基本构建步骤 ```bash mkdir build cd build cmake .. -DPLATFORM=STM32F4xx -DTOOLCHAIN=GCC make ``` ## 使用说明 1. **配置 BOOT 区域**:根据目标芯片配置 BOOT 起始地址和大小 2. **配置 APP 区域**:设置应用程序起始地址 3. **串口连接**:通过 UART 连接主机进行升级 4. **升级流程**: - 握手连接 - 发送使能命令 - 传输固件数据 - 验证并重启 ## 许可证 本项目基于特定许可证开源,详情请查看 LICENSE 文件。 ## 联系方式 如有问题,请提交 Issue 或联系维护者。