了解更多关于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的更多相关文章

  1. PIC18 bootloader之UART bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 应客户要求, 将PIC ...

  2. S32Kxxx bootloader之CAN bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 最近完成了S32Kxx ...

  3. 【Bootloader】探究bootloader,分析u-boot源码

    Preface 之前也发表过关于<Bootloader启动过程分析>的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程. 工 ...

  4. BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集

    1.[CC254X_Bootloader]SBL(串口Bootloader)使用说明 2.CC2540协议栈高速串口通信解决(UART的DMA方式) 3.[BLE]CC2541之SBL 4.[BLE] ...

  5. 了解BootLoader——基于MPC5744P Bootloader例程

    一.BootLoader的作用:BootLoader是固化在PFlash中的一个程序,其作用可以分为两部分:boot和load. (1)boot:MCU上电时首先会运行BootLoader程序(因为它 ...

  6. PIC16 bootloader之UART bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC16 bootl ...

  7. PIC18 bootloader之CAN bootloader

          了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC18 ...

  8. 斐讯k1路由器刷Breed BootLoader(不死UBoot)教程

    刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有 ...

  9. 使用uboot的tftp下载bootloader、内核、文件系统

    开发板 jz2440 下载uboot.bin tftp 0x30000000 u-boot.bin nand erase bootloader nand write bootloader 下载内核 t ...

随机推荐

  1. docker基础_Dockerfile

    Dockerfile []: https://docs.docker.com/language/python/build-images/ "docker官方文档" 以python为 ...

  2. Unity减小安装包的体积(210MB减小到7MB)

    概述 项目简介 由于是公司内做的项目,不方便开源,就只分享优化过程吧. 项目信息 逐日是一个移动端单机小游戏,使用Unity开发,目前已将项目使用的Unity升级到2019.4.14f1c1 (3e5 ...

  3. .NET宝藏API之:IHostedService,后台任务执行

    我们在项目开发的过程中可能会遇到类似后台定时任务的需求,比如消息队列的消费者. 按照.NetF时的开发习惯首先想到的肯定是Windows Service,拜托,都什么年代了还用Windows服务(小声 ...

  4. IOC容器--1.12. 基于 Java 的容器配置

    用Java的方式配置Spring ,不使用Spring的XML配置,全权交给Java来做 JavaConfig是Spring的一个子项目,在Sring 4  之后成为核心功能 这种纯Java的配置方式 ...

  5. FreeRTOS --(14)队列管理之概述

    转载自 https://blog.csdn.net/zhoutaopower/article/details/107221175 在任何的 OS 中,都需要支持任务与任务,中断与任务之间的数据传输机制 ...

  6. TS 自学笔记(一)

    TS 自学笔记(一) 本文写于 2020 年 5 月 6 日 日常废话两句 有几天没有更新了,最近学的比较乱,休息了两天感觉好一些了.这两天玩了几个设计软件,过几天也写篇文章分享分享. 为啥要学 TS ...

  7. FinClip 前端之 VUE 核心原理总结

    小程序框架有很多,都是支持前端JavaScript语言的,也是支持 vue.js 框架的.FinClip 小程序是兼容各家平台的.所以在学习了框架使用之后的进阶就要熟悉框架的底层原理. 1.数据响应式 ...

  8. Spring 源码(14)Spring Bean 的创建过程(6)对象的提前暴露

    知识回顾 解析完Bean信息的合并,可以知道Spring在实例化Bean之后,属性填充前,对Bean进行了Bean的合并操作,这里的操作主要做了对Bean对象标记了@Autowired.@Value. ...

  9. Nginx禁止使用IP访问

    在nginx的访问日志中,会出现只显示IP,而不出现域名的情况,在经过尝试之后,是因为没有设置禁止IP访问导致的. 下面就是在配置文件中设置禁止IP访问,来实现日志文件中$host显示域名. vim ...

  10. 以人类 Person 为基类设计学生类 Student 和教师类 Teacher

    学习内容:实验二以人类 Person 为基类设计学生类 Student 和教师类 Teacher 示例代码: package 实验二; import java.util.Scanner; class ...