用层还是表格做网站快,哪个网站可以做ppt,三个字公司名字,接私活做网站要不要签合同本篇不作太过的技术了解#xff0c;仅可作为初学者的参考。用嘴简单的语言讲清楚一件事。
项目中遇到Bootloader升级MCU#xff0c;我很好这是什么软件#xff0c;逻辑是什么#xff0c;怎么升级的。 术语及定义 指纹信息fingerprint诊断仪用于标识特定的下载尝试的信息 …本篇不作太过的技术了解仅可作为初学者的参考。用嘴简单的语言讲清楚一件事。
项目中遇到Bootloader升级MCU我很好这是什么软件逻辑是什么怎么升级的。 术语及定义 指纹信息fingerprint诊断仪用于标识特定的下载尝试的信息 逻辑块Logical Block目标内存的预留部分用于下载应用程序数据比如硬盘分区 逻辑块表 Logical Block Table 目标内存被分割为几个逻辑块。 逻辑块表的作用是类似于文件系统分区表。如果要下载应用程序数据引导加载程序将检查下载的逻辑块表中是否有有效的条目。 服务端server响应外部诊断设备发起的诊断请求的ECU睡眠模式sleep mode在ECU空闲阶段用以降低能耗的模式软件互锁Software Interlock软件联锁是一种保护性的锁定机制通过将关键代码段从其他代码中分离出来以防止意外的软件执行例如在发生错误之后 什么是BootLoader 在嵌入式操作系统中BootLoader是在操作系统内核运行之前运行用来初始化硬件设备建立内存空间映射图以便为操作系统的启动做准备。在嵌入式系统中通常没有想BIOS那样的的固定程序因此整个系统的加载启动任务就完全由BootLoader来完成。在嵌入式系统中系统在上电或复位时通常从地址0x0000出开始执行BootLoader即从该地址开始执行即上电或复位后执行的第一段代码。 通用需求
ECU应该确保重编程的执行是处于安全状态。如果编程预条件不满足那么重编程请求将被拒绝。通过一个“检查编程预条件” 例程控制来激活ECU编程预条件的检验。ECU需要检查下载到存储器中的数据的完整性。当一个逻辑块下载后将使用CRC32算法验证当前逻辑块的所有数据字节是否被正确传输和写入。通过一个“ 检查编程完整性” 例程控制来激活ECU完整性验证。当ECU接收到此服务请求时 引导程序软件将计算下载数据字节的CRC32值并将计算结果与诊断仪请求报文中发送的校验值进行比较
依赖性检查 不兼容的软件不能配合使用如果配合使用可能会使功能异常或产生致命性错误。因此 ECU应该通过验证软件兼容性来检查重编程依赖性包括应用软件与引导程序软件、应用数据与应用软件等。依赖性检查机制由ECU供应商制定
重编程计数 每个可重编程的ECU应将重编程计数存储于非易失性存储器。重编程计数描述了已执行重编程事件的次数。电控单元在生产时应置重编程计数为0。一旦执行存储器擦除操作重编程计数增ECU最大可刷新次数应获得诊断工程师的认可并在ECU诊断规范中注明
软件有效性验证 ECU内部定义一个标志位用于标识应用软件是否有效。如果重编程完整性检查和重编程依赖性检查都正确 ECU将设置应用软件的标志位为有效。只有标志位为有效时应用软件才可以运行
擦除擦除例程由 FBL 调用以擦除所请求的闪存区域。 写入所有下载数据是由 FBL 使用闪存驱动器的写例程进行编程。
容错处理 无论是由于电压异常通信异常 ECU异常复位内存设备故障等导致无法正常完成重编程时序硬复位或上电复位后 ECU必须始终可以从头开始整个重编程下载过程直到有效的目标软件已成功下载并成功刷新为止。 ECU在重编程失败重新进入FBL时必须保证看门狗工作正常。ECU应完善兼容性检查方法正确识别应用程序的有效性避免执行无效应用程序。应用程序应保证可以通过诊断请求将外部重编程标志位置为有效。 ECU必须先将应用程序有效标志位置为无效再执行flash擦除操作且在正确执行所有重编程流程前不能将应用程序有效标志位置为有效。
睡眠模式 ECU在重编程过程中不能休眠。当ECU处于空闲状态没有接收到任何诊断消息也没有有效的应用程序可以启动时应该进入FBL中的睡眠模式来降低功耗。在内部睡眠定时器超时后 FBL进入睡眠模式。定时器的初始值应该为300秒。内部睡眠定时器在FBL初始化过程中启动。 ECU接收到的每个诊断消息都将重置睡眠定时器。 当睡眠定时器超时 FBL必须进入睡眠模式。睡眠模式必须根据特定硬件的要求来实现以便在任何活动(如以太网通信或启动)中可以被正确唤醒。
源文件格式要求 源文件格式是Intel格式 *.hex或者Motorola格式 *.s19 。源文件中每个数据块的起始地址、长度以及类型例如应用软件或标定数据等应在描述文档中进行说明一份描述文档应和源文件一同释放。
网关 ECU 要求 依据网关支持的通信协议网关ECU的诊断需求参考[6] [8]和[11]中相关章节关于路由需求的定 义。 功能寻址的诊断请求网关需要处理也必须被路由即使是网关节点自身在被刷写。 如果对网关节点自身进行重编程 网关的Bootloader必须在其连接的各个网段上发出诊断在线报文 3Eh。 所有支持重编程的ECU应当包含Bootloader软件。 系统在正常操作模式下发起请求时必须能够执行bootloader。 系统在应用软件丢失 无效或损坏时 必须执行Bootloader软件。
应用软件和应用数据可以同时编程或者相互独立编程不允许重编程时更新Bootloader软件。 系统执行boot软件必须不能影响总线正常通信
ECU的APP必须支持部分UDS的服务和子功能。 指纹信息写入指纹数据