试用NXP官方的UDS bootloader

news2024/11/18 9:22:06

文章目录

    • 1.前言
    • 2.资料获取
        • 2.1 MCU例程
      • 2.2 开发环境
      • 2.3 上位机
      • 2.4 硬件
    • 3.工程修改
      • 3.1 boot工程修改
    • 3.2 app工程修改
    • 4.测试情况
    • 5.例程分享

1.前言

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

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

  • Unified bootloader Demo - NXP Community

2.资料获取

2.1 MCU例程
  1. 打开NXP的S32K1 MCU的官网,如下链接:
  • S32K1 General-Purpose MCUs | NXP Semiconductors
  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,安装使用说明参考如下链接:

  • S32 Design Studio for ARM 2.2 快速入门 (qq.com)

2.3 上位机

  1. 上位机为github上面的ECUBUS,打包好的可执行文件地址如下:
  • Releases · frankie-zeng/ECUBus · GitHub
  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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1655781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Parallels Desktop 19 for Mac v19.3.0.54924中文破解版

Parallels Desktop 19 for Mac v19.3.0.54924中文破解版是一款强大的虚拟机软件,支持多操作系统,提供卓越的虚拟化技术,确保流畅稳定的运行。新增特色功能如共享打印、TouchID集成等,提供便捷高效的虚拟机体验。界面美观现代&…

window golang 升级版本

执行go tidy,发现执行不了,得升级一下版本了 进入官网,并选择合适的系统以及版本。https://go.dev/dl/ 这台电脑是windows,我本人比较喜欢下载zip自己解压。 解压,这里我选择直接覆盖原文件,需要保留原版…

即将开幕,邀您共赴创新之旅“2024上海国际消费者科技及创新展览会”

备受期待的2024上海国际消费者科技及创新展览会(以下简称“CTIS”)即将于6月13日至15日亮相上海新国际博览中心N1-N3馆。 2024上海国际消费者科技及创新展览会总面积达40,000平方米,涵盖600余家展商,预计吸引40,000多位观众莅临现…

autodl 上 使用 LLaMA-Factory 微调 中文版 llama3

autodl 上 使用 LLaMA-Factory 微调 中文版 llama3 环境准备创建虚拟环境下载微调工具 LLaMA-Factory下载 llama3-8B开始微调测试微调结果模型合并后导出vllm 加速推理 环境准备 autodl 服务器: https://www.autodl.com/console/homepage/personal 基本上充 5 块钱…

毕业论文应该怎么写?推荐几款ai写论文工具

时间过的好快,马上又到了一年一度的毕业季了,对于即将毕业的学生来说毕业论文是一道难过的坎,想到自己为了毕业论文熬的夜,掉的头发,真的深有感触。 不过虽然翟博士给大家的毕业论文设了高门槛,但是随着时…

springboot项目中引入Xxl-Job并部署和使用

目录 模块划分 配置调度中心 配置执行器 添加执行器 写一个简单的定时任务 XxlJobHelper xxl-job是分布式任务调度平台,部署为独立的调度服务平台 github地址:xuxueli/xxl-job: A distributed task scheduling framework.(分布式任务调度…

ctfshow之_萌新web9至web10

一、访问在线靶场ctfshow 1、web9 如下图所示,进入_萌新赛的web9问题,题目提醒flag在config.php中: 如上图所示,可以get传参,且传入的参数需要正则匹配system、exec、highlight,且不区分大小写&#xff0…

Flink checkpoint 源码分析- Checkpoint snapshot 处理流程

背景 在上一篇博客中我们分析了代码中barrier的是如何流动传递的。Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析-CSDN博客 最后跟踪到了代码org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate#handleEvent 现在我们接着跟踪相应…

element ui的确认提示框按钮样式修改

修改确认提示框的默认按钮样式,使用css强制修改 例: js代码: deleteUser(params){this.$confirm("您确定要删除吗?此操作无法撤销并且将永久删除所有数据。", "提示", { type: "warning", cancel…

西奥CHT-01软胶囊硬度计:开启硬度测试新纪元,引领制药行业品质升级

西奥CHT-01软胶囊硬度计:开启硬度测试新纪元,引领制药行业品质升级 在追求品质卓越的制药行业中,软胶囊硬度测试是确保药品质量与安全的关键环节。为了满足行业对高精度、高效率硬度测试的需求,西奥科技推出了CHT-01软胶囊硬度计…

【XR806开发板试用】使用FDCM操作Flash记录开机次数

一、寻找系统分配的自定义用户数据地址 (1)XR806的Flash布局 如图1所示,FLASH的布局有两种: 1、没有开启OTA模式;Image1PaddingSysinfo 2、开启OTA模式;Image1PaddingSysinfoOTA area Image2 Padding 如图…

一维数组 和 关键字 sizeof

数组的概念 “ 数组 ”我们可以理解成一组相同类型元素的集合 (1)其中可以是单个或是多个元素,可以是0,但元素个数不能为0 (2)一个数组中存放的元素必须是同类型的,比如一组整型,…

ruoyi-nbcio 基于flowable规则的多重并发网关的任意跳转

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

【密评】 | 商用密码应用安全性评估从业人员考核题库(6/58)

根据Kerckhoffs原则,密码系统的安全性主要依赖于()。 A. 密钥 B. 加密算法 C. 解密算法 D. 通信双方 2000年10月,美国NIST宣布()算法作为新的高级加密标准AES。 A. Rijndael B. RC6 C. SERPENT D. Twofish…

去除快捷方式的箭头图标

文章目录 取消箭头显示恢复箭头显示结果展示 添加快捷方式之后,会有箭头图标,部分场景下看着较为难受: 可以通过如下方式取消/显示箭头: 取消箭头显示 新建一个.bat文件,内部加入如下命令: reg add "…

Python-VBA函数之旅-reversed函数

目录 一、reversed函数的常见应用场景 二、reversed函数使用注意事项 三、如何用好reversed函数? 1、reversed函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://blog.csdn.net/ygb_10…

Day2 | Java基础 | 2 数据类型

Day1 | Java基础 | 2 数据类型 基础版staticstatic的用法static修饰内部类static修饰方法static修饰变量static修饰代码块 深入分析static小结 问题回答版参数传递形参和实参的区别是什么?Java是值传递还是引用传递?值传递和引用传递的区别是什么&#x…

计算机发展史故事【6】

电脑群英谱 本世纪三、四十年代,是计算机发展史里最重大的收获季节。群英荟萃,逐鹿中原,鹿究竟死于谁手,并不是没有争议的。除了马克1 号与埃历阿克,还有一大批科学家为计算机的诞生作出过巨大的贡献,他们…

怎么做知识付费课程呢_揭秘知识付费课程系统的搭建之路

在信息爆炸的时代,知识的价值日益凸显。而知识付费,作为一种新型的学习方式,正逐渐走进大众的生活。那么,你是否想过自己也能搭建一套知识付费课程系统,分享你的智慧,实现知识的价值最大化呢?接…

2024年学浪视频怎么录屏

由于学浪最新版PC学生版客户端已经有防止录屏,而且录屏效率太慢,本文将介绍你一种高效率的工具,小浪助手.exe,它可以很轻松的将你的学浪视频下载下来 学浪下载工具我已经打包好了,有需要的自己下载一下 注意&#xf…