根据ISO14229-1 写的汽车行业 Bootloader流程

  • 1 编程前


→ 先读取软硬件版本号
22 F1 XX  软件信息
22 F1 XX  硬件信息
→ 进入扩展会话extend diagnostic sessions 功能寻址
10 03
→ 编程条件检测routine control :ECU升级条件的判断,如车速,检测车的型号
31 01 02 03
→ 关闭DTC检测,(由于很多节点收不到其它节点的报文后会记录DTC故障)功能寻址
85 02
→ 关闭诊断通讯(禁止各个节点的应用报文发送,网络管理报文发送)功能寻址
28 03 01

  • 2:编程中

→ 进入编程会话
10 02 单片机重启(进入Boot),重启后相应 50 20

→ 解锁 安全访问
27 11 等级11 (seed)
27 12 发送KEY

→ 写入指纹信息
2E F1 84 XX XX XX(写入的参数 年月日)

⇒ 下载内存驱动 Flashdrive
1,请求下载 34 大小 内存地址
2,发送数据 36
3,请求退出 37
4,CRC校验 31 01 CRC

→ 擦除单片机内存 31 01 FF 00
→ 请求下载 34  大小 内存地址
→ 发送数据 36
→ 请求退出 37
→ 一致性校验 31 01 FF 01

在“编程”阶段,首先进入编程会话模式,然后进行安全访问,下载应用程序对应的指令数据。
通过执行被复制到指定RAM空间中的Flash驱动程序,擦除并烧写应用程序Flash数据。
应用程序数据下载并烧写完成后,对数据进行校验,校验通过后,在数据Flash中存储“应用程
序有效标志”

  • 3 编程后

→11 01 硬件复位
→28 00 01 使能通讯   功能寻址
→85 01 使能DTC  功能寻址

在“编程后”阶段,首先进入扩展会话模式,然后通过功能寻址的UDS服务恢复各个节点的
应用报文发送、网络管理报文发送,然后恢复各个节点的DTC检测

  • Boot 前的准备  ----  MCU中具体的处理

接收到10 02 进入编程会话

MCU 关闭外狗(防止单片机重启),在RAM的固定地址写 bootflag=1;

MCU 关闭所有中断,

MCU 重启(可以门狗复位,但看门狗复位 RAM是没有擦除的)

-----------------------------------------------------------------------------------------

MCU 重启后 ----- main函数,3种情况

1> 进入Bootloader程序

if bootflag == 1 外部请求进入Boot段,响应 10 02 的报文

g_u8StayInBootFlag = (*(__far uint8_t*)(0xffe19)); // 读取RAM中的值
if(g_u8StayInBootFlag == PROGRAM_REQUESTED_FLAG)
{DiagnosticInit();Diagnostic_1002_Response();BootLoaderLoop();
}

Boot完成后, 在Flash中写 AA 55 AA 55 说明擦写成功 写bootflag =0;

2> Bootloader 擦写不成功

若 读取固定地址 ROM数据,若没有 AA 55 AA 55 ,证明APP段刷写不成功,需要重新刷写

EEProm_Read(APP_VALID_ADDRESS, FLAG_SIZE, AppValid);
if(AppValid != APP_VALID)
{DiagnosticInit();BootLoaderLoop();
}

3> Bootloader 成功

if bootflag == 0 ,直接跳到APP段,执行程序

JumpAppFunc = *((void(*)(void))(0X04000));//程序跳到4000的位置

汽车Bootloader流程相关推荐

  1. NGK与Captain technology合作 推出贷款体验用于简化汽车经销商流程

    据外媒报导,近日,NGK.IO正在与Captain technology恰谈合作事宜,以简化购车体验,包括简化购车流程.NGK的CTO Stephen Litan表示:"NGK宣布与Capt ...

  2. 关于ST公司的BootLoader流程的总结

    最近在公司处理关于BootLoader的一些升级细节,使用了一个星期左右,使用了官方的flash down load的软件. 当时看了A2602和AN3155有关于botlooder的描述,但是在编程 ...

  3. mfc上位机网络接收图片并显示_基于UDS on CAN的BootLoader上位机

    该上位机目前已经进行过单件.台架和实车的多轮测试验证,稳定运行,有需要的同仁可以加微信:ys15528121925. BootLoader简介 在汽车行业,bootloader用来给汽车ECU升级程序 ...

  4. 浅谈基于UDS的ECU刷写方案(Bootloader刷新)

    好长时间没有站在代码开发的第一线了,最近独立搞了一个工程,感觉技术工程师附体,恢复了往日对技术的热情. 在软件定义汽车的时代,ECU软件的更新非常重要.这样就要求ECU具备BootLoader功能. ...

  5. eplan如何导入access_EPLAN如何助力汽车行业的智能制造转型?

    本文从汽车行业智能制造建设需求出发,结合EPLAN服务全球汽车行业企业实现智能制造的最佳实践,介绍了EPLAN在汽车行业智能制造建设过程中所能提供的完整.成熟的电气设计解决方案. 作者:Eplan 王 ...

  6. android 恢复出厂设置代码流程(Good!)

    android的恢复出厂设置 文章问多一般都是从完整的recover mode讲起,恢复出厂设置只是 recovery mode下一个小部分. recovery mode流程分析的文章很多,比较完整的 ...

  7. STM32的BootLoader 从SD卡更新固件

    目  录 1. 前言 2. 初识BootLoader 2.1      百度百科的BootLoader 2.2      BootLoader的简单理解 2.3      BootLoader的作用 ...

  8. 共享汽车一种新型的交通方式

    随着社会经济的发展,我国人民的消费思想也在发生着改变,目前买车的人越来越多.但随着我国汽车销量的上涨,汽车保有量的不断上涨,特别是在一线城市,汽车使用成本越来越高,加上停车难.政府出台的限行政策.交通 ...

  9. Android factory reset 流程

    http://blog.csdn.net/yahoozhuo/article/details/6403140 ===== 应用流程 ===== ====>frameworks/base/serv ...

  10. Unity和Autodesk:通过更高效的工作流程提供沉浸式体验

    If you're creating real-time 3D experiences with Unity and Autodesk products, here's some great news ...

最新文章

  1. vuecli3的svgicon_vue-cli3引入svg图标全过程以及遇到的坑
  2. python——函数 11、命名空间
  3. LeetCode 2110. 股票平滑下跌阶段的数目(滑动窗口)
  4. Good Bye 2021: 2022 is NEAR A-Integer Diversity(水题)
  5. Suse11开启SSH密码登录
  6. 微信小程序添加icon图标教程
  7. 测试面试/笔试题 大集合
  8. regester正则用法_Regester(正则表达式测试器)
  9. mapper扫描问题(Invalid bound statement (not found))
  10. Excel VBA批注
  11. android客户端同php服务端进行XML/JSON通信
  12. null和undefined的区别
  13. 关于中小学编程教育的一些看法
  14. 软件智能:aaas系统 基于本体论的AI通用框架
  15. mybatis入门笔记(一)
  16. 区块链技术将引爆金融深层价值|筱静观察2019第7期
  17. oracle的固定值
  18. python--pyecharts地图、地图标记可视化实现《四》--地图可视化[视觉盛宴]
  19. c语言黑白棋程序设计报告,C语言游戏编程 黑白棋游戏
  20. 万向节死锁的简易理解

热门文章

  1. 检测周转时间 TAT :TURN-AROUND TIME
  2. 3DCAT云流送技术如何搅动各大行业
  3. 怎么找回服务器开机密码,如果忘了 开机密码该怎么办
  4. 2022年,渲染农场都怎么收费,比较便宜的渲染农场测评
  5. django获取cleaned_data属性失败
  6. ppt如何替换其他mo ban_有没有一个 PPT 技巧让自己觉得人生都亮了?
  7. 神经网络权重是什么意思,bp神经网络怎么看结果
  8. 盘点飞机上的各种警报
  9. 语音可懂度评估(一)——基于清晰度指数的方法
  10. 异军突起,私域流量才是真正的护城河(上)