从0开始学习CANoe使用
从0开始学习车载车身
相信时间的力量
星光不负赶路者,时光不负有心人。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/85d551e6ab894de1814103e2c7ef1baf.gif)
1.概述
应用软件和应用数据可以同时编程或者相互独立编程,不允许Boot Loader在软件运行时被非法修改。因此,Bootloader软件存储于被保护的存储器区域,即使发生潜在错误时,控制器始终保证可重新编程。
基于软件运行安全性考虑,flash diver不会存在放在flash中,避免正常程序在发生错误时可能的非法修改。在需要执行应用程序或应用数据需要时,首先将flash diver下载至RAM中,然后执行相应的更新。
基于以上考虑,将Boot Loader划分为:
PBL(Primary Boot Loader):第一级引导程序,用于启动过程中的状态管理及下载软件等,下载 SBL、更新应用软件及应用数据
SBL(Secondary Boot Loader):第二级引导程序,本质为Flash Diver(可被用来修改写在flash中生产信息校验信息等),下载完成后重新启动将会被清除
SBL也可是运行在RAM中的另一个完整Boot Loader,以上将其认为flash driver
2.Bootloader=PBL+SBL
程序运行到PBL以后,通过一些条件判断,决定是否进入APP还是SBL,若进入APP,则功能正常运行;若进入SBL,则需要更新App;所以程序先进入的是PBL然后根据标志位是否进入SBL;
3.SBL存在意义
SBL存在的意义就是更新APP程序。SBL更新APP程序的步骤:首先1002会话激活保证处于PBL模式下----->其次下载SBL------>接着激活SBL-------->下载APP;
4.PBL存在意义
3.BOOT刷新所用到的两个文件是FlashDriver驱动程序和boot软件,在这里我们可以将SBL理解为FlashDriver驱动程序,PBL理解为Boot软件。
SBL只能借助工具刷进去,当没有reset复位或者掉电,程序就会停留在SBL模式中;PBL是我们通常请求的1002会话模式下的程序,当MCU收到1002请求并且响应之后,程序会进入PBL模式中;