ECU自刷新(Bootloader)学习笔记

ECU自刷新(Bootloader)学习笔记

Bootloader程序自更新的几种方案,待补充

1 、ECU中已存在现成Bootloader1(boot1)时,可以采用更新带有Bootloader2(boo2)的程序的方案更新原有boot1。但是存在以下问题,更新的boot2需要更新在更新程序后的启动位置,也就是更新程序后,可以跳转进入boot2。然后发送相关指令,或者上位机,完成对boot1的更新。为此,除了boot2的更新地址和跳转要成功之外,还需要制作相关的刷写上位机,利用原boot1的刷新机制刷写入boot2.。而且boot1没有保护。实践过程中,Boot2的lcf文件需要更新,而在制备完成,并且刷写完成后,跳转进入Boot2,Boot2的正常运行更改较为麻烦。
2、Boot无保护时,在正常刷新的App程序中加入Boot2的矩阵,然后加入相关flash擦写驱动。然后加入相关指令,可以调取相关flash驱动在指定位置擦写Boot1为boot2。对于符合需求的程序来说,这是最便捷的方案。但是每次需要更新对应的APP源程序。
3、如果在开发期,希望开发带有自刷新功能的Boot,可以开发PBL和SBL类型的Boot,既基础boot(SBL)功能为非易失存储器,PBL为易失性存储器(RAM)。在后期更新时,先载入PBL,使用PBL更新APP程序,之后PBL会被擦除。在开发期就注意memory分配,需要软硬件支持。
4、地址的前面分为两块,Boot1刷写入Boot2和App,然后将BOOT1擦除,下次如有需求,更新BOOT1和App,擦除boot2。相当于flash每次都全部刷写。较为麻烦,并且reprog时间增加。

你可能感兴趣的:(Bootloader)