# serialUpgrade **Repository Path**: jeadyx/serial-upgrade ## Basic Information - **Project Name**: serialUpgrade - **Description**: 使用串口升级程序,下位机 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-31 - **Last Updated**: 2025-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32 Bootloader Project ## 项目概述 这是一个基于STM32F103的Bootloader项目,实现了通过串口更新固件的功能。项目包含bootloader和应用程序两个部分,支持在线固件更新和应用程序管理。 ## 目录结构 ``` project/ ├── bootloader/ # Bootloader程序 │ ├── Inc/ # 头文件 │ ├── Src/ # 源文件 │ ├── startup/ # 启动文件 │ └── system/ # 系统配置 ├── app/ # 应用程序 │ ├── Inc/ # 头文件 │ ├── Src/ # 源文件 │ ├── startup/ # 启动文件 │ └── system/ # 系统配置 └── docs/ # 项目文档 └── bootloader_protocol.md # 通信协议文档 ``` ## 功能特点 - 多种进入方式 * 串口命令触发 * GPIO按键触发 * 软件标志触发 - 串口固件更新 * 支持固件擦除、写入、校验 * CRC数据校验 * 超时保护机制 - LED状态指示 * 启动状态显示 * 工作模式指示 * 错误状态提示 - 应用程序管理 * 应用程序有效性检查 * 安全跳转机制 * 地址保护 ## 硬件要求 - MCU: STM32F103C8T6 - 时钟: 72MHz - 串口: USART1 (PA9/PA10) - LED指示灯: PC13 - Boot按键: PA0 ## 内存分配 - Bootloader区域: 0x08000000 - 0x08003FFF (16KB) - 应用程序区域: 0x08004000 - 0x0801FFFF (112KB) ## 开发环境 - 编译器: ARM GCC (arm-none-eabi-gcc) - 编译工具: Make - 调试器: ST-LINK V2 ## 编译说明 1. 安装依赖 ```bash # Ubuntu/Debian sudo apt-get install gcc-arm-none-eabi # Windows # 下载并安装 GNU Arm Embedded Toolchain ``` 2. 编译Bootloader ```bash cd bootloader make clean make ``` 3. 编译应用程序 ```bash cd app make clean make ``` ## 烧录说明 1. 首次烧录 - 使用ST-LINK烧录bootloader.hex到0x08000000 - 使用ST-LINK烧录app.hex到0x08004000 2. 在线更新 - 通过串口使用bootloader更新应用程序 - 参考docs/bootloader_protocol.md中的通信协议 ## 通信协议 - 波特率: 115200 - 数据位: 8 - 停止位: 1 - 校验位: 无 - 流控制: 无 详细的通信协议请参考`docs/bootloader_protocol.md`。 ## 注意事项 1. 确保工具链版本兼容 2. 注意内存分配边界 3. 遵循通信协议规范 4. 保护好Bootloader区域 5. 注意串口波特率设置 ## 贡献指南 欢迎提交Issue和Pull Request来改进项目。 ## 许可证 MIT License ## 作者 [Your Name]