System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于单片机,尤其涉及一种mcu的程序升级方法、装置、电子设备和存储介质。
技术介绍
1、微控制单元(microcontroller unit,mcu),又称单片微型计算机或者单片机,具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点被各个领域广泛应用。在使用过程中,为方便后续的产品升级以及修复潜在bug,大多都会具备在线升级功能,需要产品在出厂前有搭载启动加载程序,一般称为boot程序。该boot程序其主要功能是对mcu的应用程序进行在线升级。
2、随着单片机的广泛应用,升级boot程序的需求越来越大,对mcu进行升级后,会存在一定几率出现不可修复的bug,并且有些bug一旦出现该问题,mcu将无法运行升级后程序。
3、因此,如何可靠的将mcu成功升级,成为了亟需要解决的问题。
技术实现思路
1、本专利技术提供一种mcu的程序升级方法、装置、电子设备和存储介质,有效地提高了mcu的程序升级的成功率。
2、第一方面,本专利技术实施例提供了一种mcu的程序升级方法,所述方法包括:获取待升级文件;基于存储于所述mcu的boot区中的引导程序,确定所述待升级文件是否有效;当确定所述待升级文件有效时,基于所述待升级文件对所述mcu的程序进行升级;当升级成功时,将所述待升级文件存储至历史程序保存区;当升级不成功时,调用所述历史程序保存区中的升级文件,并基于所述历史程序保存区中的升级文件对所述mcu的程序进行升级,所述历史程序保
3、在一种可能的实现方式中,所述待升级文件包括升级程序文件头和升级程序信息,所述基于存储于所述mcu的boot区中的引导程序,确定所述待升级文件是否有效,包括:基于所述升级程序文件头、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效。
4、在一种可能的实现方式中,所述升级程序文件头包括历史程序保存区使能位、第一校验值及第二校验值,所述基于所述升级程序文件头、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效,包括:基于所述历史程序保存区使能位和所述引导程序,确定所述待升级文件是否为历史升级文件;若确定所述待升级文件为历史升级文件,则所述待升级文件有效;若确定所述待升级文件不是历史升级文件,基于所述第一校验值、所述第二校验值、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效。
5、在一种可能的实现方式中,所述基于所述历史程序保存区使能位和所述引导程序,确定所述待升级文件是否为历史升级文件,包括:基于所述引导程序,判断所述历史程序保存区使能位的数值是否与预设值相同;若所述历史程序保存区使能位的数值与所述预设值相同,则确定所述待升级文件为历史升级文件。
6、在一种可能的实现方式中,基于所述第一校验值、所述第二校验值、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效,包括:基于所述引导程序,确定所述第一校验值是否正确;当所述第一校验值正确时,基于所述引导程序,计算所述升级程序信息的第三校验值;基于所述引导程序,比较所述第二校验值和第三校验值;当所述第二校验值与所述第三校验值相同时,确定所述待升级文件有效。
7、在一种可能的实现方式中,所述mcu包括程序区,所述基于所述待升级文件对所述mcu的程序进行升级,包括:当确定所述待升级文件有效时,擦除所述程序区中的程序;在所述程序区中写入所述待升级文件;基于所述引导程序,确定所述待升级文件是否成功写入所述程序区;当确定所述待升级文件成功写入所述程序区后,基于所述待升级文件对所述mcu的程序进行升级。
8、在一种可能的实现方式中,所述待升级文件存储于app暂存区,所述app暂存区位于外部flash中,当确定所述待升级文件成功写入所述程序区后,所述方法还包括:清除所述app暂存区中的所述待升级文件。
9、第二方面,本专利技术实施例提供了一种mcu的程序升级装置,所述装置包括:获取模块,用于获取待升级文件;确定模块,用于基于存储于所述mcu的boot区中的引导程序,确定所述待升级文件是否有效;升级模块,用于当确定所述待升级文件有效时,基于所述待升级文件对所述mcu的程序进行升级;所述升级模块,还用于当升级成功时,将所述待升级文件存储至历史程序保存区;当升级不成功时,调用所述历史程序保存区中的升级文件,并基于所述历史程序保存区中的升级文件对所述mcu的程序进行升级,所述历史程序保存区位于外部flash中。
10、第三方面,本专利技术实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或其中任意一种实现方式所述的方法。
11、第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或其中任意一种实现方式所述的方法。
12、第五方面,本专利技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面或其中任意一种实现方式所述的方法。
13、本专利技术提供一种mcu的程序升级方法,其主要方法包括:获取待升级文件;基于存储于mcu的boot区中的引导程序,确定待升级文件是否有效;当确定待升级文件有效时,基于待升级文件对mcu的程序进行升级;当升级成功时,将待升级文件存储至历史程序保存区;当升级不成功时,调用历史程序保存区中的升级文件,并基于历史程序保存区中的升级文件对mcu的程序进行升级。针对与现有技术中,mcu的程序升级完成后可能会出现的不可修复的bug,并且一旦出错,mcu将无法运行的问题。本专利技术提出了历史程序保存区,当mcu的程序升级完成,出现了不可修复的bug后,mcu会复位,按照升级流程将外部flash中的历史程序保存区的程序搬运进mcu的程序区运行,并基于历史程序保存区中的升级文件和待升级文件对mcu的程序进行升级,提高了mcu的程序升级的成功率,解决了mcu的程序升级完成后由于出现bug导致无法运行的问题。
本文档来自技高网...【技术保护点】
1.一种MCU的程序升级方法,其特征在于,所述方法包括:
2.根据权利要求1所述的程序升级方法,其特征在于,所述待升级文件包括升级程序文件头和升级程序信息,所述基于存储于所述MCU的Boot区中的引导程序,确定所述待升级文件是否有效,包括:
3.根据权利要求2所述的程序升级方法,其特征在于,所述升级程序文件头包括历史程序保存区使能位、第一校验值及第二校验值,所述基于所述升级程序文件头、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效,包括:
4.根据权利要求3所述的程序升级方法,其特征在于,所述基于所述历史程序保存区使能位和所述引导程序,确定所述待升级文件是否为历史升级文件,包括:
5.根据权利要求3所述的程序升级方法,其特征在于,所述基于所述第一校验值、所述第二校验值、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效,包括:
6.根据权利要求1所述的程序升级方法,其特征在于,所述MCU包括程序区,所述基于所述待升级文件对所述MCU的程序进行升级,包括:
7.根据权利要求6所述的程序升
8.一种MCU的程序升级装置,其特征在于,所述装置包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
...【技术特征摘要】
1.一种mcu的程序升级方法,其特征在于,所述方法包括:
2.根据权利要求1所述的程序升级方法,其特征在于,所述待升级文件包括升级程序文件头和升级程序信息,所述基于存储于所述mcu的boot区中的引导程序,确定所述待升级文件是否有效,包括:
3.根据权利要求2所述的程序升级方法,其特征在于,所述升级程序文件头包括历史程序保存区使能位、第一校验值及第二校验值,所述基于所述升级程序文件头、所述升级程序信息以及所述引导程序,确定所述待升级文件是否有效,包括:
4.根据权利要求3所述的程序升级方法,其特征在于,所述基于所述历史程序保存区使能位和所述引导程序,确定所述待升级文件是否为历史升级文件,包括:
5.根据权利要求3所述的程序升级方法,其特征在于,所述基于所述第一校验值、所述第二校验值、所述升级程序信息以及所述引导程序,确定所述...
【专利技术属性】
技术研发人员:吴齐,刁心炫,沈纪涛,张宁,陈嘉欣,
申请(专利权)人:阿理新能源科技昆山有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。