S32Kxxx bootloader之UDS bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序)。
两周前完成了基于UDS on CAN 的bootloader, 这两周一直在测试,已经通过了功能测试和压力测试,接下来还要做鲁棒性测试,感觉实在是太累了。最近两个多月的空闲时间都花在这个UDS bootloader 上面了。我其实一直不想接UDS bootloader的活,UDS bootloader 都是使用在汽车ECU上面,需求复杂,稳定性可靠性要求高,测试也要求多。诊断规格书,应用程序升级规格书,测试规格书,光这些需求文档就一大堆。所以我一直不原意接UDS bootloader的活。但是这次由于客户的项目交期比较紧,客户的软件工程师都在忙着开发应用程序,没有人来做bootloader。 客户找了我几次,并且承诺给我的开发费用也涨了好几次,最后我才答应了。好在没有辜负客户的信任,在交付时间节点前完成了开发,平且通过了最难的压力测试。
此UDS bootloader 是基于NXP S32K116的CAN 总线接口bootloader. 软件架构如下图:

UDS bootloader 是放置在S32K116 pflash 的顶端,memory map 如图:

ECU 上电后运行进入bootloader程序,判断是否有更新请求,没有更新请求且应用程序有效则跳转到应用程序,有更新请求或应用程序无效则停留在bootloader, 上电流程如下图:

UDS Bootloader 升级应用程序的整个流程主要使用了ISO 14229-1 标准中定义的以下UDS Services:

上位机是我用C#,VS2013开发的zFlash,UI如下图:

CAN 工具是使用我自己开发的Z-Box CAN, 我修改了博世的开源软件Busmaster的最新版本,让其可以识别我的Z-Box CAN并能够和Z-Box CAN建立连接,这样我的Z-Box CAN 能够使用Busmaster 所有的功能。解决了国内CAN 工具没有强大的电脑端软件的这个痛点。Z-Box CAN是一个非常漂亮CAN 盒子,见图:

Z-Flash 和 UDS bootloader 是用Z-Box CAN 升级应用程序的视频见链接:
S32Kxxx bootloader之UDS bootloader的更多相关文章
- PIC18 bootloader之UART bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 应客户要求, 将PIC ...
- S32Kxxx bootloader之CAN bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 最近完成了S32Kxx ...
- 【Bootloader】探究bootloader,分析u-boot源码
Preface 之前也发表过关于<Bootloader启动过程分析>的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程. 工 ...
- BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集
1.[CC254X_Bootloader]SBL(串口Bootloader)使用说明 2.CC2540协议栈高速串口通信解决(UART的DMA方式) 3.[BLE]CC2541之SBL 4.[BLE] ...
- 了解BootLoader——基于MPC5744P Bootloader例程
一.BootLoader的作用:BootLoader是固化在PFlash中的一个程序,其作用可以分为两部分:boot和load. (1)boot:MCU上电时首先会运行BootLoader程序(因为它 ...
- PIC16 bootloader之UART bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC16 bootl ...
- PIC18 bootloader之CAN bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC18 ...
- 斐讯k1路由器刷Breed BootLoader(不死UBoot)教程
刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有 ...
- 使用uboot的tftp下载bootloader、内核、文件系统
开发板 jz2440 下载uboot.bin tftp 0x30000000 u-boot.bin nand erase bootloader nand write bootloader 下载内核 t ...
随机推荐
- Java语言学习day30--8月5日
###10String类的其他方法 * A:String类的其他方法 * a: 方法介绍 * int length(): 返回字符串的长度 * String substring(int beginIn ...
- Java语言学习day22--7月28日
###12多态概述 * A: 多态概述 多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Ja ...
- Linux下快速拷贝单个大文件的秘诀
#include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> ...
- 阿里云服务器的购买、基本配置、(xshell)远程连接、搭建环境
一.服务器的购买 1.购买时间点:搞活动的时候.利用学生身份购买 (1)活动:想白嫖一台服务器 双十一,可以在双十一左右,时间提前一点,百度或B站,搜阿里云服务器.腾讯服务器(618可能也有) 一般, ...
- Unity—TextMeshPro
矢量文字,不会因为放大缩小而变的不清晰: 1.TextAsset Window/TextMeshPro/Font Assets Creator 创建TextAsset字体: SourceFont是.t ...
- XCTF练习题---MISC---Excaliflag
XCTF练习题---MISC---Excaliflag flag:3DS{Gr4b_Only_th1s_B1ts} 解题步骤: 1.观察题目,下载附件 2.拿到手以后是一张图片,话不多说,直接上Ste ...
- InnoDB数据存储结构
MySQL服务器上 存储引擎 负责对表中数据的读取和写入工作,不同存储引擎中 存放的格式 一般是不同的,甚至有的存储引擎(Memory)不用磁盘来存储数据. 页 (Page) 是磁盘和内存之间交互的基 ...
- Ping原理详解
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 Ping是排除设备访问故障的常见方法.它使用Internet控制消息协议ICMP(Int ...
- iptables系列教程(二)| iptables语法规则
一个执着于技术的公众号 iptables 命令基本语法 " iptables [-t table] command [链名] [条件匹配] [-j 目标动作] 以下是对 iptables 命 ...
- CI/CD介绍以及jenkins安装 1.1
一 .CI/CD介绍 互联网软件开发和发布,形成了一套流程标准,分为几个阶段:编码,构建,集成,测试,交付,部署 持续集成(continuous integration).持续交付(conti ...