【BootLoader刷写章节】

目录

一、BootLoader介绍:

1. 启动顺序:

2. 硬件初始化:

3. 系统选择:

4. 安全功能:

5. 更新和恢复:

6. 自定义和灵活性:

7. 嵌入式系统中的应用:

8. 手机和平板电脑:

9. 固件和硬件之间的桥梁:

10. 启动配置:

11. 多启动管理:

12. 故障恢复:

13. 配置和选项:

14. UEFI和BIOS:

15. 自定义BootLoader:

二、BootLoader刷写章节

①:预编程步骤流程+流程图

②:主编程步骤流程+流程图

③:主编程步骤流程+流程图

     三、BootLoader 刷写流程

四、预编程步骤流程+流程图

1)整车ECU进入扩展会话

2)刷写条件检测

3)禁止记录DTC

4)关闭通讯

5)读取数据信息

五、主编程步骤流程+流程图

1)目标ECU进入编程会话

2)解锁LEVEL_FBL安全等级

3)刷写Flashdriver

4)刷写应用程序

5)应用程序兼容性检测

六、后编程步骤流程+流程图

1)重启目标ECU

2)进入扩展会话

3)开启通讯

4)开启DTC记录

5)整车ECU进入默认会话 

6)清除目标ECU故障码

七、总结


一、BootLoader介绍:

        BootLoader是一个计算机术语,指的是一个特殊的软件程序,它作为计算机或其他设备启动过程中的第一个软件组件来运行。BootLoader 的主要功能是初始化硬件并加载操作系统或其他程序到内存中。以下是关于 BootLoader 的几个关键点:

1. 启动顺序:

        在设备启动时,BootLoader 通常在BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)之后运行。

2. 硬件初始化:

        BootLoader 负责执行必要的硬件初始化,为操作系统的加载做好准备。

3. 系统选择:

        在某些设备上,BootLoader 可能提供选择启动操作系统的选项,这在多系统安装的情况下非常有用。

4. 安全功能:

        一些BootLoader实现提供了安全启动(Secure Boot)功能,以防止未授权或损坏的软件在设备上运行。

5. 更新和恢复:

        BootLoader 还可以用于更新设备的固件或操作系统,以及在系统出现问题时进行恢复。

6. 自定义和灵活性:

         在某些设备上,用户可以替换或修改BootLoader以获得更高级的启动选项或定制功能。

7. 嵌入式系统中的应用:

        在嵌入式系统中,BootLoader 是启动过程不可或缺的一部分,它将控制权从固化(或闪存)存储转移到运行时存储中的操作系统。

8. 手机和平板电脑:

        在智能手机和平板电脑中,BootLoader 经常与操作系统紧密集成,并可能涉及到特定的启动模式,如恢复模式或下载模式。

9. 固件和硬件之间的桥梁:

        BootLoader 作为固件(硬件的低级软件)和高级软件(如操作系统)之间的桥梁。

10. 启动配置:

        在某些系统中,BootLoader 负责设置启动配置,例如内存映射、CPU模式等。

11. 多启动管理:

        在多操作系统环境中,BootLoader可以提供一个启动菜单,让用户选择要启动的操作系统。

12. 故障恢复:

        某些BootLoader包含故障恢复功能,如果主系统无法启动,它可以加载一个恢复环境。

13. 配置和选项:

        用户可以通过特定的按键或配置文件在启动时传递参数给BootLoader,以改变启动行为。

14. UEFI和BIOS:

        在PC系统中,BootLoader的概念与BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)紧密相关,这些都是启动过程中的关键组件。

15. 自定义BootLoader:

        开发者可以自定义BootLoader以适应特定的硬件平台或软件需求。

BootLoader是系统启动过程中不可或缺的组成部分,它的设计和实现对整个系统的稳定性和安全性至关重要。

二、BootLoader刷写章节

①:预编程步骤流程+流程图

②:主编程步骤流程+流程图

③:主编程步骤流程+流程图

     
三、BootLoader 刷写流程

        BootLoader刷写分为三个步骤:预编程步骤、主编程步骤和后编程步骤。在刷写流程开始后,诊断设备需以2秒的周期,功能寻址发送诊断在线服务($3E 80),以保持总线上其它ECU的诊断会话;诊断在线服务($3E)不能打断或影响ECU的任何其他服务

四、预编程步骤流程+流程图

        预编程步骤用来做刷写前的CAN网络准备。此步骤的请求报文采用的是物理寻址和功能寻址(P:物理寻址,F:功能寻址)。

流程步骤描述

1)整车ECU进入扩展会话

诊断设备通过功能寻址,发送扩展会话请求($10 03),使整车ECU进入扩展会话。报文发送完成后需延时1s再执行后续步骤。

2)刷写条件检测

a)诊断设备通过物理寻址,发送例程控制服务($31 01 F0 02),此例程控制不需要安全访问,检查目标ECU是否满足刷写条件。

b)在刷写条件检测通过后,目标ECU应立即置位一个标志位,并同时启动一个5秒定时器。当定时器计数超时,或者目标ECU接收到编程会话(10 02)的请求,或者任何原因导致目标ECU重启、复位,此标志位都将清零。

c)此标志位置位时,目标ECU应正确执行编程会话(10 02)的请求。当标志位清零时,目标ECU将不能肯定响应编程会话(10 02)的请求,应对诊断设备发出的切换编程会话(10 02)的请求否定响应NRC22。

3)禁止记录DTC

诊断设备通过功能寻址,使用DTC设置服务($85 02),禁止CAN网络中的ECU记录DTC功能。报文发送完成后需延时1s再执行后续步骤。

4)关闭通讯

诊断设备通过功能寻址,使用通信控制服务($28 03 01),禁止CAN网络中的ECU发送和接收非诊断报文。$28 83 01报文发送完成后需延时1s再执行后续步骤。

5)读取数据信息

a)诊断设备通过物理寻址,读取目标 ECU 数据信息($22),读取内容包括但不限于:ECU 产品信息(F193)、零件号(0xF18C)、供应商代码(0xF18A)、硬件版本号(0xF089)、软件版本号(0xF189)、FBL版本信息(0xF180)、备份区软件版本号(F101)。

b)此步骤是否执行,或者执行读取后,目标ECU的响应内容(肯定响应或者否定响应),都不影响流程的继续执行。


五、主编程步骤流程+流程图

        主编程步骤用来编程一个或多个逻辑块。此步骤的请求报文采用的是物理寻址(P:物理寻址)。

流程步骤描述

1)目标ECU进入编程会话

a)诊断设备通过物理寻址,发送编程会话请求($10 02),使目标ECU进入编程会话;

b)进入编程会话后,目标ECU应对刷写请求标志位清零。

2)解锁LEVEL_FBL安全等级

诊断设备通过物理寻址,对目标ECU进行安全访问($27 07/08)。在此安全等级未解锁之前,后续的步骤将不能执行。

3)刷写Flashdriver

a)Flashdriver刷写至目标ECU指定的RAM区域。刷写序列由请求下载($34)、数据传输($36)、请求传输退出($37)和检查编程完整性($31 01 F0 01)4个服务组成;

b) 诊断设备通过物理寻址,发送例程控制服务($31 01 F0 01),包含4个字节的CRC32校验值参数。CRC32校验值用于验证此次下载逻辑块数据的完整性,如果检测不通过或者跳过此步骤直接请求主编程步骤4,目标ECU须拒绝执行,并返回NRC22。

4)刷写应用程序

a)应用程序刷写至目标ECU指定的非易失性存储器区域。刷写序列由擦除FLASH($31 01 FF 00)、请求下载($34)、数据传输($36)、请求传输退出($37)和检查编程完整性($31 01 F0 01)5个服务组成;

b)目标ECU在接收到擦除FLASH指令时,应先对应用程序有效位清零,防止刷写过程没有成功结束而意外执行应用程序。当应用程序有效位清零后,目标ECU才能开始执行擦除FLASH的动作;

c)诊断设备通过物理寻址,发送例程控制服务($31 01 F0 021),包含4个字节的CRC32校验值参数。CRC32校验值用于验证此次下载逻辑块数据的完整性;

5)应用程序兼容性检测

a)应用程序刷写完成后,诊断设备通过物理寻址,发送例程控制服务($31 01 FF 01),检测应用程序的完整性和依赖性。完整性定义为所有的的逻辑块是否全部成功下载;

b)检测通过后,目标ECU应立即置位应用程序有效位。

六、后编程步骤流程+流程图

        后编程步骤主要用来恢复整车CAN网络及DTC记录功能。此步骤的请求报文采用的是物理寻址和功能寻址(P:物理寻址,F:功能寻址)。

流程步骤描述

1)重启目标ECU

诊断设备通过物理寻址,使用复位服务($11 01),使目标ECU重启并跳转到应用程序。

2)进入扩展会话

诊断设备通过物理寻址,发送扩展会话请求($10 03),使目标ECU进入扩展会话。

3)开启通讯

诊断设备通过功能寻址,使用通信控制服务($28 00 03),开启CAN网络中的ECU发送和接收非诊断报文。

4)开启DTC记录

诊断设备通过功能寻址,使用DTC设置服务($85 01),开启CAN网络中的ECU记录DTC功能。

5)整车ECU进入默认会话 

诊断设备通过功能寻址,发送扩展会话请求($10 01),使整车ECU进入默认会话。

6)清除目标ECU故障码

诊断设备通过物理寻址,使用清除故障码服务($14),清除目标ECU的故障码。

七、总结

        BootLoader是系统启动过程中不可或缺的组成部分,它的设计和实现对整个系统的稳定性和安全性至关重要。后续会讲到诊断刷写的过程和OTA升级的刷写过程,希望对大家有所帮助

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
刷写PX4固件的过程包括刷写bootloader刷写PX4固件本身。刷写bootloader是为了将设备进入fastboot模式,然后再切换到Android镜像目录,通过命令将镜像刷写到设备中。具体操作如下: 1. 使用命令行工具(如cmd)输入"adb reboot bootloader",使设备进入fastboot模式。 2. 切换到Android镜像目录,执行"fastboot flashall -w"命令,将镜像刷写到设备中。刷写完成后等待设备重启,即可运行原生Android系统。 关于刷写PX4固件部分,可以按照以下步骤进行操作: 1. 按照指导设置好刷写环境,点击右下角加载固件。 2. 在加载固件时选择最新的f4bl固件,并点击下载。下载完成后拔掉USB连接线。 总结起来,刷写PX4固件包括刷写bootloader刷写PX4固件本身。刷写bootloader的过程是通过命令将设备进入fastboot模式,并将镜像刷写到设备中。刷写PX4固件的过程是根据指导设置好环境,选择最新的固件并下载,然后拔掉USB连接线。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android12 源码编译及刷写Piexl6设备](https://blog.csdn.net/Jian_0216/article/details/126020486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [PX4装机教程(四)F4飞控刷写PX4](https://blog.csdn.net/qq_38768959/article/details/106988811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值