CN117971273A - Mcu软件更新方法、电池管理系统和计算机可读存储介质 - Google Patents
Mcu软件更新方法、电池管理系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117971273A CN117971273A CN202410208417.0A CN202410208417A CN117971273A CN 117971273 A CN117971273 A CN 117971273A CN 202410208417 A CN202410208417 A CN 202410208417A CN 117971273 A CN117971273 A CN 117971273A
- Authority
- CN
- China
- Prior art keywords
- jumping
- update
- software
- data
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000009191 jumping Effects 0.000 claims abstract description 140
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种MCU软件更新方法、电池管理系统和计算机可读存储介质。软件更新方法包括:步骤A1、获取云端发送的数据更新包,启动引导加载程序Bootloader,读取存储器内的软件更新标志;步骤A2、判断软件更新标志是否符合更新标志子集中的任意一个,更新标志子集包括第一更新标志、第二更新标志、第三更新标志和第四更新标志;若是,则跳转至步骤A3;若否,则跳转至步骤A8;步骤A3、判断软件更新标志是否和第一更新标志一致,若是,则跳转至步骤A4;若否,则跳转至步骤B1;本发明中,通过设置多重判断校验,解决了受各种不可控因素导致升级失败后产品失效或产品无法升级的问题。
Description
技术领域
本发明属于计算机领域,具体涉及一种MCU软件更新方法、电池管理系统和计算机可读存储介质。
背景技术
随着电子产品的普及,大量已经出售的产品需要进行功能的升级和优化,此时通过网络远程控制系统软件的升级就显得尤为重要。当前很多产品在软件升级过程中都会由于操作不当、环境干扰、产品质量等各种原因导致升级失败致使产品失效,需要人工现场维护,导致用户体验较差、维护成本高。
发明内容
针对上述技术问题,本发明的目的是提供一种改进的MCU软件更新方法、电池管理系统和计算机可读存储介质。
为达到上述目的,本发明的第一个方面提供了一种MCU软件更新方法,包括:
步骤A1、获取云端发送的数据更新包,启动引导加载程序Bootloader,读取存储器内的软件更新标志;
步骤A2、判断所述软件更新标志是否符合更新标志子集中的任意一个,所述更新标志子集包括第一更新标志、第二更新标志、第三更新标志和第四更新标志;若是,则跳转至步骤A3;若否,则跳转至步骤A8;所述第一更新标志用于指示执行软件更新指令;所述第二更新标志用于指示软件刷写失败执行备份区软件指令;所述第三更新标志用于指示备份区软件执行失败,请求云端重新发送数据更新包;所述第四更新标志用于指示升级失败;
步骤A3、判断所述软件更新标志是否和第一更新标志一致,若是,则跳转至步骤A4;若否,则跳转至步骤B1;
步骤A4、获取所述存储器内记录的软件更新故障次数,判断所述软件更新故障次数是否小于故障次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B3;
步骤A5、将所述数据更新包写入APP区,得到更新后的数据,并跳转至步骤A6;
步骤A6、判断所述更新后的数据和所述数据更新包内的数据是否一致,若是,则跳转至步骤A7;若否,则跳转至步骤B4;
步骤A7、读取所述存储器内的当前软件更新标志,并将所述当前软件更新标志改写为所述第二更新标志或第四更新标志,跳转至步骤A8;
步骤A8、执行APP区起始地址开始的软件内容;
步骤B1、判断所述软件更新标志是否和所述第二更新标志一致,若是,则跳转至步骤B2;若否,则跳转至步骤B5;
步骤B2、将备份区数据更新至APP区,将所述软件更新标志改写为所述第三更新标志并跳转至步骤A8;
步骤B3、执行MCU部分FLASH扇区损坏的调整策略;
步骤B4、判断所述更新后的数据和所述数据更新包内的数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B8;
步骤B5、判断所述软件更新标志是否和所述第三更新标志一致,若是,则跳转至步骤B6;若否,则跳转至步骤B7;
步骤B6、请求云端重新发送数据更新包并跳转至步骤A4;
步骤B7、记录升级数据失败,将数据升级失败标志上传回云端,所述软件更新标志为所述第四更新标志;
步骤B8、将数据不一致的次数记录至所述存储器,得到软件更新故障次数并跳转至步骤B9;
步骤B9、复位MCU并跳转至步骤A1。
优选地,步骤A7包括:
步骤A71、读取所述存储器内的当前软件更新标志,判断所述当前软件更新标志是否为所述第三更新标志,若是,则跳转至步骤A72;若否,则跳转至步骤A73;
步骤A72、将所述当前软件更新标志改写为所述第四更新标志并跳转至步骤A8;
步骤A73、将所述当前软件更新标志改写为所述第二更新标志并跳转至步骤A8。
优选地,步骤B3具体包括:
步骤B31、判断云端重新发送的数据更新包是否接收完成,若是,则跳转至步骤B32;若否,则跳转至步骤B33;
步骤B32、将所述软件更新标志改写为所述第一更新标志并跳转至步骤B9;
步骤B33、请求售后及时更换APP区起始地址的软件。
优选地,在步骤A8之后,所述MCU软件更新方法还包括:
步骤A81、获取软件更新标志,判断所述软件更新标志是否为所述第二更新标志、所述第三更新标志和所述第四更新标志中的任意一个,若是,则跳转至步骤A82;若否,则跳转至步骤A83;
步骤A82、将所述软件更新标志改写为第五更新标志并跳转至步骤A83,所述第五更新标志用于指示清除软件更新标志;
步骤A83、判断是否接收到云端发送的数据更新包,若是,则跳转至步骤A84;若否,则跳转至步骤A85;
步骤A84、判断所述数据更新包的大小是否小于当前软件允许升级包的最大值,若是,则跳转至步骤B9;若否,则跳转至步骤A85;
步骤A85、等待云端重新发送数据更新包并返回至步骤A81。
进一步地,在步骤A84和步骤B9之间,所述MCU软件更新方法还包括:
步骤A86、接收数据更新包并对所述数据更新包进行CRC校验,跳转至步骤A87;
步骤A87、判断CRC校验是否成功,若是,则跳转至步骤A88;若否,则跳转至步骤A85;
步骤A88、判断所述数据更新包是否接收完成,若是,则跳转至步骤B9;若否,则返回步骤A86。
更进一步地,在步骤A88和步骤B9之间,所述MCU软件更新方法还包括:
步骤A89、检验脚本数据是否正确,若是,则跳转至步骤A90;若否,则返回至步骤A85;
步骤A90、将所述软件更新标志改写为所述第一更新标志并跳转至步骤B9。
优选地,在步骤A3和步骤A4之间,所述MCU软件更新方法还包括:
步骤C1、判断备份失败次数是否小于备份失败次数上限值,若是,则跳转至步骤C2;若否,则记录备份失败;
步骤C2、将APP区的当前数据写入备份区,判断所述备份区内的数据和APP区的当前数据是否一致,若是,则跳转至步骤A4;若否,则跳转至步骤C3;
步骤C3、判断所述备份区内的数据和APP区的当前数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤C2;若否,则跳转至步骤B8;
所述步骤B6包括请求云端重新发送数据更新包并跳转至步骤C1。
优选地,所述MCU软件更新方法应用于电池管理系统。
本发明的第二个方面提供了一种电池管理系统,所述电池管理系统包括控制模块,所述控制模块用于执行如上所述的MCU软件更新方法。
本发明的第三个方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行如上所述的MCU软件更新方法。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:
本发明中,通过设置第一更新标志、第二更新标志、第三更新标志和第四更新标志四种不同的更新标志,能灵活应对更新过程中出现的不同问题。即使升级失败APP区部分数据被擦除,仍可以执行备份软件,将软件恢复至升级前的状态,产品不会因此而失效。
在进一步优选的方案中,即使FLASH部分扇区损坏,也可以通过远程更新软件升级解决问题,解决了产品长期失效等待上门维修导致客户体验差、维护成本高的问题。添加了多重数据校验,也有效确保了升级执行的软件没有数据错误。即使最终升级失败,也会将状态上传至云端,售后可以第一时间发现并及时处理,提升了用户体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中MCU软件更新方法的流程图;
图2为本发明实施例中MCU软件更新方法的另一种流程图;
图3为本发明实施例中MCU软件更新方法的又一种流程图;
图4为本发明实施例中MCU软件更新方法的再一种流程图;
图5为本发明实施例中MCU软件更新方法的另一种流程图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域的技术人员理解。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以互相结合。
如图1至图5所示,本实施例中MCU软件更新方法具体包括:
步骤A1、获取云端发送的数据更新包,启动引导加载程序Bootloader,读取存储器内的软件更新标志;
其中,Bootloader具体为嵌入式操作系统中MCU上电后运行的第一段程序,在这个程序中可以通过条件判断跳转进入不同的Flash地址的程序,类似PC系统中的引导程序。本实施例中存储器具体指带电可擦可编程读写存储器(electrically erasableprogrammable read only memory,EEPROM)。
步骤A2、判断软件更新标志是否符合更新标志子集中的任意一个,更新标志子集包括第一更新标志、第二更新标志、第三更新标志和第四更新标志;若是,则跳转至步骤A3;若否,则跳转至步骤A8;第一更新标志用于指示执行软件更新指令;第二更新标志用于指示软件刷写失败执行备份区软件指令;第三更新标志用于指示备份区软件执行失败,请求云端重新发送数据更新包;第四更新标志用于指示升级失败;
本实施例中,第一更新标志可以表示为0xaaaa,第二更新标志可以表示为0x3333,第三更新标志可以表示为0x6666,第四更新标志可以表示为0xcccc。
步骤A3、判断软件更新标志是否和第一更新标志一致,若是,则跳转至步骤A4;若否,则跳转至步骤B1;
在软件开始进入执行Bootloader时,读取EEPROM内的软件更新标志,为0xaaaa时,执行软件更新。
步骤A4、获取存储器内记录的软件更新故障次数,判断软件更新故障次数是否小于故障次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B3;
本实施例中,故障次数上限值设置为3次,若软件更新故障次数小于3次则跳转至步骤A5,若大于或等于3次则跳转至步骤B3。
步骤A5、将数据更新包写入APP区,得到更新后的数据,并跳转至步骤A6;
步骤A6、判断更新后的数据和数据更新包内的数据是否一致,若是,则跳转至步骤A7;若否,则跳转至步骤B4;
步骤A7、读取存储器内的当前软件更新标志,并将当前软件更新标志改写为第二更新标志或第四更新标志,跳转至步骤A8;
具体地,步骤A7包括:
步骤A71、读取存储器内的当前软件更新标志,判断当前软件更新标志是否为第三更新标志,若是,则跳转至步骤A72;若否,则跳转至步骤A73;
步骤A72、将当前软件更新标志改写为第四更新标志并跳转至步骤A8;
步骤A73、将当前软件更新标志改写为第二更新标志并跳转至步骤A8。
步骤A8、执行APP区起始地址开始的软件内容;
步骤B1、判断软件更新标志是否和第二更新标志一致,若是,则跳转至步骤B2;若否,则跳转至步骤B5;
步骤A3中,如果识别到软件更新标志不是0xaaaa(第一更新标志),则跳转到步骤B1,继续判断软件更新标志是否为0x3333(第二更新标志)。
步骤B2、将备份区数据更新至APP区,将软件更新标志改写为第三更新标志并跳转至步骤A8;
步骤B3、执行MCU部分FLASH扇区损坏的调整策略;
具体地,步骤B3包括:
步骤B31、判断云端重新发送的数据更新包是否接收完成,若是,则跳转至步骤B32;若否,则跳转至步骤B33;
步骤B32、将软件更新标志改写为第一更新标志并跳转至步骤B9;
步骤B33、请求售后及时更换APP区起始地址的软件。
步骤B33具体为MCU判定FLASH的APP所在部分扇区损坏后,会将此信息上传至云端,监控到此状态后工程师会将APP软件所在位置重新选择地址更改软件后,对此台产品重新发送升级数据包,同时协议通知MCU更新APP区的起始地址,将软件避开损坏的FLASH扇区。目前行业中出现这种错误只能是售后上门提供维修,这种维修周期长、成本高、用户体验效果差,使用该策略后,工程师仅需更改一个地址参数后,就可以远程将问题解决,解决了行业的痛点问题,时间短、效率高、用户基本是无差别体验。
步骤B4、判断更新后的数据和数据更新包内的数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B8;
本实施例中,比对异常次数上限值也设置为3次,数据不一致的次数小于3次则跳转至步骤A5,数据不一致的次数大于或等于3次则跳转至步骤B8。
步骤B5、判断软件更新标志是否和第三更新标志一致,若是,则跳转至步骤B6;若否,则跳转至步骤B7;
如果软件更新标志为0x6666(即第三更新标志),则表示调取备份数据也失败,需要执行Bootloader内的CAN通信部分软件,请求云端重新发送数据。
步骤B6、请求云端重新发送数据更新包并跳转至步骤A4;
步骤B7、记录升级数据失败,将数据升级失败标志上传回云端,软件更新标志为第四更新标志;
即使软件依旧升级失败,数据升级失败标志也能及时反馈至云端,能及时进行跟进和监控。
步骤B8、将数据不一致的次数记录至存储器,得到软件更新故障次数并跳转至步骤B9;
步骤B9、复位MCU并跳转至步骤A1。
进一步地,为了防止升级源文件有误,本实施例中还添加了三步校验,具体结合图4所示,在步骤A8之后,还包括:
步骤A81、获取软件更新标志,判断软件更新标志是否为所述第二更新标志、第三更新标志和第四更新标志中的任意一个,若是,则跳转至步骤A82;若否,则跳转至步骤A83;
步骤A82、将软件更新标志改写为第五更新标志并跳转至步骤A83,第五更新标志用于指示清除软件更新标志;
本实施例中,第五更新标志可以表示为0x5555。
步骤A83、判断是否接收到云端发送的数据更新包,若是,则跳转至步骤A84;若否,则跳转至步骤A85;
步骤A84、判断数据更新包的大小是否小于当前软件允许升级包的最大值,若是,则跳转至步骤B9;若否,则跳转至步骤A85;
通过添加文件大小校验,待升级数据大小超过当前MCU最大存储空间时就拒绝升级(数据溢出会导致产品软件失效)。
步骤A85、等待云端重新发送数据更新包并返回至步骤A81;
步骤A86、接收数据更新包并对所述数据更新包进行CRC校验,跳转至步骤A87;
步骤A87、判断CRC校验是否成功,若是,则跳转至步骤A88;若否,则跳转至步骤A85;
在通信过程中发送和接收的BIN文件通过添加CRC校验,可以确保软件数据传输正常。
步骤A88、判断数据更新包是否接收完成,若是,则跳转至步骤B9;若否,则返回步骤A86;
步骤A89、检验脚本数据是否正确,若是,则跳转至步骤A90;若否,则返回至步骤A85;
在待更新的BIN文件中添加特有的脚本,脚本数据不对,则待升级的软件内容错误,不是本系统的对应的软件数据,接收完后即舍弃数据,拒绝升级,并记录升级状态为源文件错误。
步骤A90、将软件更新标志改写为第一更新标志并跳转至步骤B9。
进一步地,在步骤A3和步骤A4之间还可以设置备份校验,具体包括:
步骤C1、判断备份失败次数是否小于备份失败次数上限值,若是,则跳转至步骤C2;若否,则记录备份失败;
步骤C2、将APP区的当前数据写入备份区,判断备份区内的数据和APP区的当前数据是否一致,若是,则跳转至步骤A4;若否,则跳转至步骤C3;
步骤C3、判断备份区内的数据和APP区的当前数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤C2;若否,则跳转至步骤B8;
步骤B6包括请求云端重新发送数据更新包并跳转至步骤C1。
结合图5所示,在升级失败执行备份区软件时,将备份区内软件拷贝至APP区,执行数据比对校验。如若多次备份数据比对失败则停止软件升级,并复位MCU后重新备份,多次复位后仍备份失败则停止升级,并记录升级状态为:备份失败。如果接收到强制升级命令,则忽略备份错误,直接升级APP区数据内容。
本实施例中的MCU软件更新方法主要应用于电池BMS,在其它一些应用场景也可以适用该软件更新方法,具体此处不做限定。
本实施例还包括一种电池管理系统,电池管理系统包括控制模块,控制模块用于执行上述的MCU软件更新方法。
本实施例还包括一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,当计算机程序在计算机上运行时,使得计算机执行上述的MCU软件更新方法。
综上所述,本实施例中的MCU软件更新方法和装置具有如下优点:
1、即使升级失败APP部分软件被擦除后,仍可以通过Bootloader内软件执行通信升级,产品不会因此而失效;
2、在软件被擦除后,发现数据有异常,此时仍可执行备份软件,将软件恢复至升级前的状态;
3、即使MCU的APP区的FLASH部分扇区损坏,也可以通过远程更新软件升级解决问题,解决了因此导致产品长期失效等待上门维修等客户体验差、维护成本高的问题;
4、添加多重数据校验,确保升级执行的软件没有数据错误;
5、即使最终升级失败,也会将状态上传至云端,售后可以第一时间发现并及时处理,提升了用户体验。
如本说明书和权利要求书中所示,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
上述实施例只为说明本发明的技术构思及特点,是一种优选的实施例,其目的在于熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限定本发明的保护范围。凡根据本发明的原理所作的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种MCU软件更新方法,其特征在于,包括:
步骤A1、获取云端发送的数据更新包,启动引导加载程序Bootloader,读取存储器内的软件更新标志;
步骤A2、判断所述软件更新标志是否符合更新标志子集中的任意一个,所述更新标志子集包括第一更新标志、第二更新标志、第三更新标志和第四更新标志;若是,则跳转至步骤A3;若否,则跳转至步骤A8;所述第一更新标志用于指示执行软件更新指令;所述第二更新标志用于指示软件刷写失败执行备份区软件指令;所述第三更新标志用于指示备份区软件执行失败,请求云端重新发送数据更新包;所述第四更新标志用于指示升级失败;
步骤A3、判断所述软件更新标志是否和第一更新标志一致,若是,则跳转至步骤A4;若否,则跳转至步骤B1;
步骤A4、获取所述存储器内记录的软件更新故障次数,判断所述软件更新故障次数是否小于故障次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B3;
步骤A5、将所述数据更新包写入APP区,得到更新后的数据,并跳转至步骤A6;
步骤A6、判断所述更新后的数据和所述数据更新包内的数据是否一致,若是,则跳转至步骤A7;若否,则跳转至步骤B4;
步骤A7、读取所述存储器内的当前软件更新标志,并将所述当前软件更新标志改写为所述第二更新标志或第四更新标志,跳转至步骤A8;
步骤A8、执行APP区起始地址开始的软件内容;
步骤B1、判断所述软件更新标志是否和所述第二更新标志一致,若是,则跳转至步骤B2;若否,则跳转至步骤B5;
步骤B2、将备份区数据更新至APP区,将所述软件更新标志改写为所述第三更新标志并跳转至步骤A8;
步骤B3、执行MCU部分FLASH扇区损坏的调整策略;
步骤B4、判断所述更新后的数据和所述数据更新包内的数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤A5;若否,则跳转至步骤B8;
步骤B5、判断所述软件更新标志是否和所述第三更新标志一致,若是,则跳转至步骤B6;若否,则跳转至步骤B7;
步骤B6、请求云端重新发送数据更新包并跳转至步骤A4;
步骤B7、记录升级数据失败,将数据升级失败标志上传回云端,所述软件更新标志为所述第四更新标志;
步骤B8、将数据不一致的次数记录至所述存储器,得到软件更新故障次数并跳转至步骤B9;
步骤B9、复位MCU并跳转至步骤A1。
2.根据权利要求1所述的MCU软件更新方法,其特征在于,步骤A7包括:
步骤A71、读取所述存储器内的当前软件更新标志,判断所述当前软件更新标志是否为所述第三更新标志,若是,则跳转至步骤A72;若否,则跳转至步骤A73;
步骤A72、将所述当前软件更新标志改写为所述第四更新标志并跳转至步骤A8;
步骤A73、将所述当前软件更新标志改写为所述第二更新标志并跳转至步骤A8。
3.根据权利要求1所述的MCU软件更新方法,其特征在于,步骤B3具体包括:
步骤B31、判断云端重新发送的数据更新包是否接收完成,若是,则跳转至步骤B32;若否,则跳转至步骤B33;
步骤B32、将所述软件更新标志改写为所述第一更新标志并跳转至步骤B9;
步骤B33、请求售后及时更换APP区起始地址的软件。
4.根据权利要求1所述的MCU软件更新方法,其特征在于,在步骤A8之后,所述MCU软件更新方法还包括:
步骤A81、获取软件更新标志,判断所述软件更新标志是否为所述第二更新标志、所述第三更新标志和所述第四更新标志中的任意一个,若是,则跳转至步骤A82;若否,则跳转至步骤A83;
步骤A82、将所述软件更新标志改写为第五更新标志并跳转至步骤A83,所述第五更新标志用于指示清除软件更新标志;
步骤A83、判断是否接收到云端发送的数据更新包,若是,则跳转至步骤A84;若否,则跳转至步骤A85;
步骤A84、判断所述数据更新包的大小是否小于当前软件允许升级包的最大值,若是,则跳转至步骤B9;若否,则跳转至步骤A85;
步骤A85、等待云端重新发送数据更新包并返回至步骤A81。
5.根据权利要求4所述的MCU软件更新方法,其特征在于,在步骤A84和步骤B9之间,所述MCU软件更新方法还包括:
步骤A86、接收数据更新包并对所述数据更新包进行CRC校验,跳转至步骤A87;
步骤A87、判断CRC校验是否成功,若是,则跳转至步骤A88;若否,则跳转至步骤A85;
步骤A88、判断所述数据更新包是否接收完成,若是,则跳转至步骤B9;若否,则返回步骤A86。
6.根据权利要求5所述的MCU软件更新方法,其特征在于,在步骤A88和步骤B9之间,所述MCU软件更新方法还包括:
步骤A89、检验脚本数据是否正确,若是,则跳转至步骤A90;若否,则返回至步骤A85;
步骤A90、将所述软件更新标志改写为所述第一更新标志并跳转至步骤B9。
7.根据权利要求1所述的MCU软件更新方法,其特征在于,在步骤A3和步骤A4之间,所述MCU软件更新方法还包括:
步骤C1、判断备份失败次数是否小于备份失败次数上限值,若是,则跳转至步骤C2;若否,则记录备份失败;
步骤C2、将APP区的当前数据写入备份区,判断所述备份区内的数据和APP区的当前数据是否一致,若是,则跳转至步骤A4;若否,则跳转至步骤C3;
步骤C3、判断所述备份区内的数据和APP区的当前数据不一致的次数是否小于比对异常次数上限值,若是,则跳转至步骤C2;若否,则跳转至步骤B8;
所述步骤B6包括请求云端重新发送数据更新包并跳转至步骤C1。
8.根据权利要求1-7中任一项所述的MCU软件更新方法,其特征在于,所述MCU软件更新方法应用于电池管理系统。
9.一种电池管理系统,其特征在于,所述电池管理系统包括控制模块,所述控制模块用于执行如权利要求1-8中任一项所述的MCU软件更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的MCU软件更新方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2024101012300 | 2024-01-24 | ||
CN202410101230 | 2024-01-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971273A true CN117971273A (zh) | 2024-05-03 |
Family
ID=90852985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410208417.0A Pending CN117971273A (zh) | 2024-01-24 | 2024-02-26 | Mcu软件更新方法、电池管理系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971273A (zh) |
-
2024
- 2024-02-26 CN CN202410208417.0A patent/CN117971273A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN107179909A (zh) | 软件升级方法、装置及计算机可读存储介质 | |
US20090222650A1 (en) | Communication device and firmware update method thereof | |
CN106610840A (zh) | 一种无线固件升级方法及系统 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
CN105677398A (zh) | 一种通用的嵌入式计算机软件在线升级方法 | |
CN111651174A (zh) | 一种mcu程序远程升级方法和系统 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN111737255B (zh) | 一种联锁监测数据的存储方法及系统 | |
CN110188004A (zh) | 一种终端设备的双备份软件系统管理方法及系统 | |
CN112650518A (zh) | Dsp程序在线升级方法 | |
JP7298427B2 (ja) | プログラム更新システムおよびプログラム更新方法 | |
CN109992280A (zh) | 一种嵌入式软件升级的方法、终端装置及存储装置 | |
CN114489732A (zh) | 一种更新设备的fpga固件的方法、装置及电子设备 | |
CN113114730B (zh) | 升级方法、装置、终端设备及存储介质 | |
CN117391099A (zh) | 智能卡的数据下载及校验方法及其系统、存储介质 | |
CN117971273A (zh) | Mcu软件更新方法、电池管理系统和计算机可读存储介质 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
CN116483409A (zh) | 一种远程固件更新的方法、系统、电子设备及存储介质 | |
CN116521201A (zh) | 电池包的软件升级方法和电池包 | |
CN116382753A (zh) | 一种基于网络的设备固件高可靠性远程升级方法 | |
CN114398087B (zh) | 一种提高单片机更新程序后运行稳定性的方法及单片机 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |