基于 USB CDC ACM 例程,实现一个通过USB升级固件的参考 1-上位机基于自定义串口通讯协议,以最大每包1024有效数据往USB 串口发送。 USB 底层 以64Byte包长依次接收,全部接收完后,重新组合,根据协议解包,执行预计的事项。 2-6627x/6629x MBR因为要添加有固件计算的哈希值,还有其它部分信息,此部分DFU代码并未实现。因此,MBR1 需要通过命令行工具生成。直接下载到Flash MBR1位置(即0x3000)。 附件解压到Projects路径下面编译运行 文档DOC文件夹内容说明 doc ├─ 上位机参考代码 # 上位机参考代码 │ ├─ dfu_host.cpp │ ├─ dfu_user.hpp │ ├─ Unit2.cpp │ └─ Unit2.h ├─ 20251001_200407.mp4 # 测试视频 ├─ 6627_6629_DFU Tester_rev0.1.exe # 测试测试工具 ├─ app_log.txt # 上位机日志 ├─ fw_log.txt # 开发板日志 ├─ mbr0.bin # 待升级的MBR └─ usbd_cdc_acm.bin # 待升级的固件,也是开发板固件 范例代码 main ├─ app_cdc_acm.c # USB串口通信 ├─ dfu_profile_user.c # 自定义升级协议相关实现 ├─ dfu_profile_user.h # 自定义升级协议相关 ├─ dfu_task.c # 升级任务(未使用) ├─ evt_task.c # 主事件任务 ├─ main.c # 主函数 ├─ SConscript # 构建脚本 └─ system.c # 系统初始化 其它注意点 ,日志波特率修改为921600 #define CONFIG_OM_LOG_UART_BAUDRATE 921600 //115200 |
