资讯动态

芯旺微 KungFu系列之KF32A156的boot loader的CAN协议UDS升级应用说明

发布时间:2026/8/20 15:26:02 来源:尧图企业网站定制
请尊重原创转载本文需注明源出处hello大家好bootloader升级在MCU的程序设计中常常用到。那本篇主要根据官方例程 来说说 can通讯 UDS协议进行APP升级。一、首先不管什么通讯进行升级都要说明一下bootloader升级需要先了解的一些知识点1、向量表重映射boot和APP各自有各自的中断向量表而当 app启动后需要将 boot 程序的向量表切换为 app 程序自己的向量表。这里就涉及到如何去将向量表的初始值进行修改那这里就是通过向 SYS_VECTOFF 赋值 app 程序偏移地址的方式实现重映射过程。2、APP程序地址偏移因为IDE的编译默认是从0x00000000地址开始放置指令的但是前面的地址已经被放置boot程序故这里需要进行将APP程序初始地址进行偏移。具体设置方法如下1、ChipON IDE\KungFu32\ChiponCC32\scripting\ccr1_issue 找到对应芯片型号的 xxx.ld链接文件将其复制到工程目录下。2、打开 ld 文件后可以看到对应记录的 flash 起始地址和大小。本此示例中将 boot 程序大小限制在 0x8000所以将 app 的起始地址修改为 0x0000 8000。3、最后将修改好的 ld 文件在 IDE 中生效 选中项目-右键-属性-C/C构建-设置-通用设定-芯片脚本文件写入 -T…/KF32F156MQV.ld -应用-确定。**注意事项**为了避免 boot 区程序超过界限应当在 boot 程序中配置程序大小为 0x8000。app的 ld 文件配置图示如下app的 工程属性 配置配置图示如下**这里有一个提醒**就是从BOOT跳转到APP的时候在 startup() 函数没有调整过的前提下在app跑起来的时候会对ram进行初始化但是对于boot程序配置的寄存器来说是依然保留的。如果需要则可以进行保留不需要挥着需要更改则可以进行该外设的重新初始化。二、当我们把官方例程的BOOT和APP 程序编译完成后即可进行升级流程的操作。这里篇幅问题就不说具体UDS流程部分的程序感兴趣的可以自行研究。实验所需156demo板或者自己的板子均可官方提供的boot和app程序KF32烧录器can卡官网使用的是图莫斯我这里使用的是周立功的can卡上位机是ZCANPRO连接线若干。1、boot程序下载将官方提供的boot程序编译完成后将程序下载至demo板上官方使用的使用的CANFD6进行升级的。USB端口可以打印串口数据至电脑端查看。当我们下载完成后串口数据打印出来如下图2、先将APP程序进行编译。can卡和板子连接完好。然后对ZCANPRO进行配置步骤打开CANPRO软件打开设备设置成500k其他不在赘述。连接完成后我们选择 高级功能 — ECU刷新 其他配置可以参考下图可以自行对照此流程在左边的方框内进行添加流程配置文件下载时加载HEX时按照图示配置即可。配置完成后点击 应用到执行器 弹出如下弹框后 点击 开始刷写 即可开始刷写。刷写过程如下图示直到刷写完成后 弹出如下框由于刷写完成后有复位的指令此时可以在串口打印工具中看到此时程序已经运行到APP如图以上操作即可实现整个过程。具体的UDS协议客户可根据自身要求进行修改。本次演示就结束啦。例程可以去芯旺微的GITEE上下载都是免费提供给大家学习的也可以找对应的FAE进行获取。本文第一次编写时间2023 10 30

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价