# FT32F030简易bootloader-APP **Repository Path**: bg5esn/ft32f030-simple-bootloader-APP ## Basic Information - **Project Name**: FT32F030简易bootloader-APP - **Description**: FT32简易bootloader APP - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-24 - **Last Updated**: 2023-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 趁项目空闲期摸了一个bootloader和上位机 包含了3个玩意儿 1.基于.netframework 2.0 的上位机软件 用的vscode2019写的窗体应用程序。如果想直接试用,请直接运行release目录下的exe 2.Bootloader模板 包含完整源码,请使用mdk-arm打开,至于pack包,相信你都看到这里了,肯定有了。 3.App模板 一个简单的闪灯模板。在我的开源仓库。 项目简单说明 项目规划8K字节用于bootlaoder 剩余56k字节用于app,我没实现A\B app互为备份。 这玩意儿看你自己。我只是练练手,为后面更新到网络协议做准备。 *建议使用VSPD虚拟串口方便调试。 其他注意事项: 1. 本项目使用的不是标准的xmoden协议。 2. 本项目难度较简单,如果您要使用自行斟酌风险。 3. 本项目基于FT32系列的固件库设计,并仅在FT32F030R8AT7上测试通过。 使用本项目请遵守GPL3.0协议,更多信息请VX BG5ESN 本项目部分参考自github项目,协议部分有参考,但整体都进行了重构。并增加了上位机与操作指令。 https://github.com/dengbaoan/stm32-boot 协议说明 1.协议部分 主机命令格式: 0xFE 0xA5 [CMD] [DATA] 从机回复格式: 0xFE 0x5A [RET] [DATA] 命令字及回复信息 [CMD]&[DATA格式] 0x00: 查询设备信息 从机返回 0xFE 0x5A 0x00 [字符串信息] 0x01: 建立连接 从机返回 0xFE 0x5A 0x01:成功 0x02: 擦除flash 从机返回 0xFE 0x5A 0x02:成功 0x03: 开始写入flash 从机返回 0xFE 0x5A 0x03:成功,此时等待数据包发送 重置flash写入字节计数器,从APP START address开始写起 每发送一个包,都会收到从机一个ack包(0xFE 0x5A 0xAA) 收到ack包表明设备当前的包写到flash成功了。此时主机才可发送下一个包。 没有重试机制。 0x04: 结束写入 0x04 0xAA 0x58 0xAA 0x59 必须满足全部字串匹配后,设备才会退出写入 从机返回 0xFE 0x5A 0x04:成功 0x05:写入CRC [0x05] [CRC] 从机返回 0xFE 0x5A 0x05:成功写入,0x02:失败 0x06: 读取CRC成功与否 从机返回 0xFE 0x5A 0x06 [0:1]:内部固件CRC计算值 0失败,1成功。 0xF1:单片机重启 设备重启,从机无返回 从机返回 0xFE 0x5A 0xF1 设备进入重启。 0xF2:强制跳转APP。 从机返回 0xFE 0x5A 0xF2 成功。