本发明涉及软件刷新领域,尤其涉及基于can诊断的mcu软件刷新及加载备份的方法。
背景技术:
1、avm为360度全景影像系统,在汽车上起到监测环境路况的作用。为了各个组件之间传输信息,需要通过can(控制器局域网)诊断进行数据交互。can诊断是一种世界标准的串行通讯协议,为数据高速公路确定统一的“交通”规则,常常用于汽车电子中的数据通讯。
2、当avm售后出现问题,需要刷新mcu软件来解决问题。但在刷新过程中有可能会遇到各种问题,比如电压异常、线束断开、can负载率大等,从而导致刷新失败。如果软件中不做备份刷新,刷新失败后avm功能就会失效,导致工时增加,严重的话会导致客户抱怨,车辆质量投诉增加。因此需要软件进行备份从而保证刷新失败后程序能够正常运行。现有技术中提供了用软件进行备份的解决方案,然而由于软件备份是在boot(启动)区域操作完成的,而boot区域在更新写入备份软件时,外部来的数据如果中断,那么备份的软件是不完整的。因此可能出现数据备份不准确的情况。
技术实现思路
1、为了克服上述技术缺陷,本发明的提供一种基于can诊断的mcu软件刷新及加载备份的方法,将mcu的flash(闪存)分为boot区域,app(应用)区域,软件备份区域,其中:
2、所述boot区域为mcu程序加载的入口,每次mcu上电都检查是否有刷新请求,如果有刷新请求,则擦除所述app区域的数据,将接收到的新数据存放于app区域,所有数据接收完毕后将软件备份flag(标志旗)置0,并跳转到app区域执行;
3、所述app区域用于存放并执行应用软件,执行应用软件之前若发现所述软件备份flag为0,将app区域数据拷贝到软件备份区域,并将所述软件备份flag置1;
4、所述软件备份区域用于存放应用软件的备份。
5、进一步的,所述boot区域在接收刷新数据之前,需要密钥信息核对,核对正确后才允许接收外来数据。
6、进一步的,所述boot区域对收到的新的数据进行校验,校验成功后将其存放于app区域。
7、进一步的,所述boot区域检查app区域数据是否完整,如果完整跳到app区域执行,否则将备份区域数据拷贝到app区域执行。
8、进一步的,can刷新流程遵循iso 11898-1,iso 14229-1,iso 15765-2,iso15765-3标准。
9、采用了上述技术方案后,与现有技术相比,具有以下有益效果:
10、1.本发明执行软件备份的动作在app区域完成,相当于软件自我备份,这样可以保证数据的正确和可执行性,从而避免boot区域中软件备份的不完整性。
11、2.本发明在软件刷新失败后能立刻调取备份软件到app区域运行,不会导致产品功能丧失。
12、3.本发明的备份数据是能运行的app程序,从而保证程序的运行和产品功能。
1.基于can诊断的mcu软件刷新及加载备份的方法,其特征在于,将mcu的flash分为boot区域,app区域,软件备份区域,其中:
2.根据权利要求1所述的基于can诊断的mcu软件刷新及加载备份的方法,其特征在于,所述boot区域在接收刷新数据之前,需要密钥信息核对,核对正确后才允许接收外来数据。
3.根据权利要求1所述的基于can诊断的mcu软件刷新及加载备份的方法,其特征在于,所述boot区域对收到的新的数据进行校验,校验成功后将其存放于所述app区域。
4.根据权利要求1所述的基于can诊断的mcu软件刷新及加载备份的方法,其特征在于,所述boot区域检查所述app区域数据是否完整,如果完整跳到app区域执行,否则将软件备份区域数据拷贝到app区域执行。
5.根据权利要求1所述的基于can诊断的mcu软件刷新及加载备份的方法,其特征在于,can刷新流程遵循iso 11898-1,iso 14229-1,iso 15765-2,iso 15765-3标准。