试用NXP官方的UDS bootloader

1.前言

最近很多客户在开发S32K系列MCU时咨询是否可以提供基于UDS协议的bootloader。本文以S32K144为例,介绍如何使用NXP官方提供的UDS bootloader例程。

如果客户有S32K3的uds bootloader需求,可以查看NXP社区提供的资料,链接如下:

2.资料获取

2.1 MCU例程
  1. 打开NXP的S32K1 MCU的官网,如下链接:
  1. 按下图方式找到unified Bootloader Framework.zip并下载,然后执行压缩包里的S32K1xx_unified_bootloader_demo_V1.0.exe,将例程安装到客户常用的文件夹。

也可以复制下面的链接到浏览器直接下载:

  • https://www.nxp.com/downloads/en/snippets-boot-code-headers-monitors/unified_bootloader_framework.zip

unified Bootloader Framework

3.最终安装好的文件夹内容如下:

S32K1xx_unified_bootloader_demo_V1.0

2.2 开发环境

开发环境使用的是S32DS2.2,安装使用说明参考如下链接:

2.3 上位机

  1. 上位机为github上面的ECUBUS,打包好的可执行文件地址如下:
  1. 选择最新的0.2.24版本进行下载。

ECUBUS v0.2.24

也可以复制下面的链接到浏览器直接下载:

  • https://github.com/frankie-zeng/ECUBus/releases/download/v0.2.24/ECUBus.exe

2.4 硬件

硬件需要准备如下这些:

  • PEAK厂家的CAN卡
  • S32K144EVB-Q100
  • 12V电源以及若干杜邦线

笔者这次测试使用的是PEAK厂家的PCAN-USB(IPEH-002021),推荐下载对应的CAN卡软件PCAN-View,用于测试MCU升级时,跟踪总线上面的数据,可以复制下面的链接到浏览器直接下载:

  • https://peak-system.com.cn/wp-content/uploads/2022/06/pcanview.zip

3.工程修改

本次使用的是S32K144的CAN UDS bootloader工程,按如下路径找到相关的bootloader工程和app工程

S32K144工程

3.1 boot工程修改

  1. 首先打开S32K144_CAN_bootloader工程,先将原先的备份文件删除,防止和后面切换SDK保留的备份文件混合。

  2. 然后打开Sources文件夹,将S32K144_CANunified_stack两个文件删除。

  3. 以管理员身份运行脚本build_test.bat,会发现Sources文件夹内新增了两个文件夹,

  4. 打开S32DS 2.2 ,导入boot工程,步骤如下图。

  5. 随后会弹出警告,版本SDK不对,点击Skip loading。因为原始工程使用的是SDK2.0,而S32DS 2.2默认安装的是SDK3.0,所以需要进行SDK的更换。

  6. 将原本工程的pe组件全部删除。

  7. 右击工程名字,点击属性,然后在弹出的界面选择SDK选项。

  8. 在弹出detach SDK V2.0.0的时候,选择Yes,然后将SDK3.0.0 Attach。

  9. 点击SDK选项界面的OK,会弹出一个对话框,main.c选择不要替换,点击OK。

  10. 然后删除SDK替换之后,工程出现的PE组件。

  11. 然后导入原始工程的pe配置,步骤如下图。

  12. 删除boot工程原本的SDK代码。

  13. 接下来需要将老的linker file的一些配置移到新版的linker file,可以先按下图方式,了、将两个文件进行对比。

  14. 总的来说,下图这些地方需要修改。

  1. 点击pe界面的生成代码按钮,SDKGenerated Code文件夹内的文件都重新生成了。

  2. 因为SDK是灰色的,代表不会参与工程编译,需要添加到工程编译目录中,操作如下图。

  3. 因为这个工程用到了EWC库,所以还需要打开工程属性界面,增加这个库,操作如下图。

  4. 最后点击Debug按钮进行编译,无报错。

3.2 app工程修改

app工程的修改和boot方式差不多,但是有两个注意点。

  1. 需要修改下driver/clock里面的clock.hclock.c文件名称,因为SDK文件夹里也有一个clock.h

  2. 第二个最终升级需要使用app工程生成的bin文件,所以需要在工程属性里面设置一下,如下图:

4.测试情况

最后进行升级测试,详细步骤如下:

  1. 给S32K144EVB-Q100开发板供电12V,将boot工程下载到开发板中,会看到开发板RGB灯闪烁蓝色。

  2. 在桌面新建一个文件夹,将第三节开始介绍的S32K144_CAN_user_config文件中的flash_api.bin复制过去,里面的json文件因为是旧版本的,所以本次用不上。

  3. 将app工程生成的bin文件也复制到桌面新建的文件夹内。

  4. 打开ECUBUS软件,点击Powerful UDS Tester框内的go按钮。

  5. 点击Open UDS Project,选择之前准备的好的ECUBUS工程(文末会分享出来)。

  6. 点击 DoCAN框内的go按钮。

  7. 点击第一个Group:DownloadFile1的编辑按钮。

  8. 在弹出的界面点击Choose File按钮,选择之前放到桌面的flash_api.bin文件,然后点击Change Group按钮完成更改。

  9. 同样的方法修改第二个Group:DownloadFile1,选择的文件是app工程的bin文件。

  10. 连接上PCAN-USB,点击设置按钮,然后点击Connect按钮。如果提示没有识别到硬件,需要去peak官网下载驱动安装一下。

  11. 其它配置如下图,点击ADD按钮添加即可。

  12. 接着打开PCAN-View,配置好波特率。

  13. 跳转到Trace窗口,并点击开始录制的按钮。

  14. 最后点击ECUBUS的start按钮。

  15. 当下载成功后,会有提示成功的logo出来,并且在PCAN-View的Trace窗口也能看到交互的报文信息。此时,开发板的RGB灯也变成闪烁红色。

  16. 如果客户想要做压力测试,可以将Cycle的参数设置到需要测试升级的次数,进行自动测试。

5.例程分享

关于本文提到的ECUBUS软件、ECUBUS工程、修改后的boot和app工程,笔者整理之后放在gitee上面了,链接如下。

  • https://gitee.com/Yingming_Cai/S32K144EVB_UDS_Bootloader_Example.git

如果觉得本文有用,不妨给个一键三连!!!

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Auto FAE进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值