6627x/6629x通过USB CDC 进行DFU例程

wen sir · 8次点击 · 23小时前

基于 USB CDC ACM 例程,实现一个通过USB升级固件的参考

1-上位机基于自定义串口通讯协议,以最大每包1024有效数据往USB 串口发送。 USB 底层 以64Byte包长依次接收,全部接收完后,重新组合,根据协议解包,执行预计的事项。


2-6627x/6629x MBR因为要添加有固件计算的哈希值,还有其它部分信息,此部分DFU代码并未实现。因此,MBR1 需要通过命令行工具生成。直接下载到Flash MBR1位置(即0x3000)。

image.png


附件解压到Projects路径下面编译运行

image.png

文档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

image.png

image.png


image.png


6627_USB_DFU_usbd_cdc_acm-202510027632.rar
被收藏 0  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站