Bootloader(二)

三、如何实现Bootloader

1.通信

        与上位机下载端建立可靠的总线通信以获取要更新应用程序:CAN驱动,CAN Driver 模块实现 CAN 报文的收发。

2.Flash Driver

        用于操作 Flash 的擦除、写入和读取功能。主要包括 Flash 硬件初始化,Flash block 块的读写操作及擦除功能。基于软件运行安全性考虑,Flashdiver 一般不会存在放在 fash中,避免正常程序在发生错误时可能的非法修改。在需要执行应用程序或应用数据需要时,首先将 Flash diver 下载至 ram中,然后执行相应的更新。

3.协议

①传输协议:ISO-15765-2,
传输层主要是提供数据的组包和拆包功能服务,能够实现报文的分段传输及数据传输过程中的错误检测和超时处理。

②UDS 协议:ISO-14229-1
协议中定义的 Bootloader 程序刷写流程,包括:诊断会话切换、安全状态切换、标识符读写、程序刷写和ECU复位等。

③Watch Dog 监控 Bootloader 超时或者死机,对 ECU 复位。

④NvM 驱动包括对 NvM 的读写操作支持。

四、Bootloader的功能

        BootLoader,顾名思义,就是驻留在 ECU 非易失性存储器中的一段程序加载代码,每次ECU 复位后,都会运行 bootloader。它会检查是否有来自通信总线的远程程序加载请求,如果有,则进入bootloader 模式,建立与程序下载端(通常为 PC 上位机)的总线通信并接收通信总线下载的应用程序、解析其地址和数据代码,运行NVM(NoneValitaleMomory--非易失性存储器)驱动程序,将其编程到NVM中,并校验其完整性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值