CN116932018A - 一种Bootloader升级方法、装置、设备及介质 - Google Patents
一种Bootloader升级方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116932018A CN116932018A CN202310882673.3A CN202310882673A CN116932018A CN 116932018 A CN116932018 A CN 116932018A CN 202310882673 A CN202310882673 A CN 202310882673A CN 116932018 A CN116932018 A CN 116932018A
- Authority
- CN
- China
- Prior art keywords
- bootloader
- file
- upgrading
- upper computer
- new version
- 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 58
- 230000006870 function Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 17
- 230000001680 brushing effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 7
- 230000009191 jumping Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000008672 reprogramming Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013524 data verification Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种Bootloader升级方法、装置、设备及介质,涉及计算机技术领域,应用于微控制单元,包括:响应上位机的刷写请求,以将上位机发送的目标文件刷写至应用程序区域;目标文件由新版本Bootloader文件和Bootloader升级文件拼接,Bootloader升级文件为预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件;在获取到上位机发送的Bootloader升级请求后运行Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。本申请适用于小容量微控制单元对Bootloader的升级。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种Bootloader升级方法、装置、设备及介质。
背景技术
随着市场需求越来越高的同时,小容量MCU(Microcontroller Unit,即微控制单元)的RAM(Random Access Memory,即随机存取存储器)和FLASH(闪存)大小都有所限制。然而,这对于MCU的Bootloader(即引导加载程序)的升级是一个重要的问题,因为目前已知的Bootloader升级方案均需要较大的FLASH或者RAM容量,并不适用于小容量MCU的Bootloader升级需求。
另外,在系统设计时,从成本考虑,对Flash容量的选择往往都比较极端,这也容易出现Bootloader程序和应用程序占据了全部的Flash空间,无法实现传统的备份方案,即无法直接升级Bootloader。
综上,如何实现小容量MCU对BootLoader的升级是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种Bootloader升级方法、装置、设备及介质,能够实现小容量MCU对BootLoader的升级。其具体方案如下:
第一方面,本申请公开了一种Bootloader升级方法,应用于微控制单元,包括:
响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
可选的,所述对当前Bootloader进行升级之后,还包括:
擦除所述应用程序区域的所述目标文件,并将目标应用程序文件刷写至所述应用程序区域。
可选的,所述Bootloader升级方法,还包括:
确定预设配置规则中规定的配置项;
按照所述配置项对所述新版本Bootloader文件进行配置,以得到Bootloader升级文件;所述配置项包括删除上电校验功能、删除跳转至应用程序运行的功能、添加响应Bootloader升级请求的功能、添加升级Bootloader的功能、添加响应上位机查询升级状态的功能、将闪存区域允许的擦写区域由应用程序区域修改为Bootloader区域、将识别码修改为与目标文件对应的标志。
可选的,所述将所述上位机发送的目标文件刷写至应用程序区域,包括:
获取所述上位机发送的目标文件;所述目标文件为按照预设拼接规则对新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述预设拼接规则用于控制所述新版本Bootloader文件拼接在所述Bootloader升级文件后面的目标地址区域;
将所述目标文件刷写至应用程序区域。
可选的,所述将所述上位机发送的目标文件刷写至应用程序区域之后,还包括:
响应所述上位机发送的完整性校验请求,根据预设校验算法计算所述目标文件的第一校验值;
将所述第一校验值发送至所述上位机,以便通过所述上位机将所述第一校验值与本地的第二校验值进行比对,并在所述第一校验值和所述第二校验值一致时判定刷写成功,然后下发所述Bootloader升级请求。
可选的,所述Bootloader升级方法,还包括:
若所述第一校验值和所述第二校验值不一致,则通过所述上位机重新发送所述目标文件,然后重新跳转至所述将所述上位机发送的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件刷写至应用程序区域的步骤。
第二方面,本申请公开了一种Bootloader升级方法,应用于上位机,包括:
将刷写请求发送至微控制单元,并在所述微控制单元响应所述刷写请求后,将目标文件发送至所述微控制单元,以便所述微控制单元将所述目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
将Bootloader升级请求发送至所述微控制单元,以便所述微控制单元运行所述目标文件中的所述Bootloader升级文件,以将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
第三方面,本申请公开了一种Bootloader升级装置,应用于微控制单元,包括:
文件刷写模块,用于响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
Bootloader升级模块,用于在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
第四方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的Bootloader升级方法的步骤。
第五方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的Bootloader升级方法的步骤。
可见,本申请中通过微控制单元响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。由此可见,本申请中的Bootloader升级文件为预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件,微控制单元在响应上位机的刷写请求后,则接收上位机传输的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件,并将目标文件刷写至应用程序区域;进一步的,由上位机向微控制单元发送Bootloader升级请求,微控制单元响应该升级请求后,则运行目标文件中的Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。上述方案中,Bootloader升级文件是对新版本Bootloader文件进行配置得到的,然后将两者拼接得到的目标文件运行在应用程序区域,由于Bootloader文件自身占用空间较小,只需稍微对其进行修改配置,就可以运行在应用程序区域以实现对Bootloader的升级。也即,本申请使用目标文件作为桥梁,在不增加系统成本的前提下,实现了小容量微控制单元对BootLoader的升级,保证了升级的安全性和稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种Bootloader升级方法流程图;
图2为本申请公开的一种升级Bootloader的流程示意图;
图3为本申请公开的一种具体的Bootloader升级方法流程图;
图4为本申请公开的一种MCU中FLASH区域的划分示意图;
图5为本申请公开的一种文件刷写的具体流程示意图;
图6为本申请公开的另一种MCU中FLASH区域的划分示意图;
图7为本申请公开的另一种具体的Bootloader升级方法流程图;
图8为本申请公开的一种Bootloader升级装置结构示意图;
图9为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前已知的Bootloader升级方案均需要较大的FLASH或者RAM容量,并不适用于小容量MCU的Bootloader升级需求。另外,在系统设计时,从成本考虑,对Flash容量的选择往往都比较极端,这也容易出现Bootloader程序和应用程序占据了全部的Flash空间,无法实现传统的备份方案,即无法直接升级Bootloader。为此,本申请实施例公开了一种Bootloader升级方法、装置、设备及介质,能够实现小容量MCU对BootLoader的升级。
参见图1所示,本申请实施例公开了一种Bootloader升级方法,应用于微控制单元,该方法包括:
步骤S11:响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件。
本实施例中,在上位机和微控制单元建立连接后,由上位机请求刷写,微控制单元则响应上位机的刷写请求。上位机在收到微控制单元的响应后,则开始传输由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件,本实施例中将目标文件记为BPP文件,BPP即Bootloader APP,指的是具备升级Bootloader功能的运行在APP区域的程序。微控制单元在收到目标文件后,则将目标文件刷写至微控制单元的应用程序区域(即APP区域)。
可以理解的是,BPP文件由新版本Bootloader文件和Bootloader升级文件拼接而成,其中新版本Bootloader文件可理解为是当前最新版本的Bootloader文件,而Bootloader升级文件是在新版本Bootloader文件的基础上,按照预设配置规则对其进行配置得到的,由于Bootloader文件自身占用空间较小,只需稍微对其进行修改配置,就可以运行在应用程序区域以实现对Bootloader的升级。配置过程具体可以包括但不限于:确定预设配置规则中规定的配置项;按照所述配置项对所述新版本Bootloader文件进行配置,以得到Bootloader升级文件;所述配置项包括删除上电校验功能、删除跳转至应用程序运行的功能、添加响应Bootloader升级请求的功能、添加升级Bootloader的功能、添加响应上位机查询升级状态的功能、将闪存区域允许的擦写区域由应用程序区域修改为Bootloader区域、将识别码修改为与目标文件对应的标志。也即,由新版本Bootloader文件修改得到BootLoader升级程序,具体包括:删除上电时的校验功能,删除跳转到APP运行的功能,添加响应上位机Bootloader升级请求的功能,添加擦写升级BootLoader的功能,添加响应上位机查询升级状态的功能,修改Flash保护范围,允许擦写的Flash区域由APP区域修改为BootLoader区域,修改MagicData(即识别码)为“BPP”,以及修改LinkFile(即链接文件)中Flash分配并调整到APP区域等等。
其中,上位机通过MagicData识别码识别执行程序的类型,确保上位机能够正确地区分BPP文件和APP文件,用以响应不同的烧录流程。MagicData为“APP”,则只可执行升级APP流程不可执行升级BootLoader流程,而MagicData为“BPP”,则既可执行升级APP流程也可执行升级BootLoader流程。
步骤S12:在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
本实施例中,升级BootLoader的流程由上位机控制,在微控制单元与上位机建立连接后,由上位机请求升级BootLoader,微控制单元则响应上位机的Bootloader升级请求,开始执行升级操作。具体为运行目标文件中的Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。其中,需要指出的是,在BootLoader升级流程中还包括上位机请求识别码MagicData,并在MagicData为BPP的情况下才执行Bootloader升级操作,以及上位机查询升级状态以确定是否升级成功等操作。参见图2所示,升级BootLoader的具体步骤如下:
1、上位机请求握手以与MCU建立连接;
2、上位机请求MagicData,MCU回复MagicData;
3、MagicData为“BPP”,上位机发送请求升级BootLoader,MCU响应请求,开始执行升级操作;
4、上位机查询升级状态;
升级状态包括:Erase(擦)、Write(写)、Verify(校验)、Succeed(成功)、Failed(失败);
5、上位机查询到Succeed状态,升级BootLoader完成。
进一步的,在完成升级后,可以重启MCU以运行新版本Bootloader文件,并确保其能够正常工作。
可见,本申请中通过微控制单元响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。由此可见,本申请中的Bootloader升级文件为预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件,微控制单元在响应上位机的刷写请求后,则接收上位机传输的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件,并将目标文件刷写至应用程序区域;进一步的,由上位机向微控制单元发送Bootloader升级请求,微控制单元响应该升级请求后,则运行目标文件中的Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。上述方案中,Bootloader升级文件是对新版本Bootloader文件进行配置得到的,然后将两者拼接得到的目标文件运行在应用程序区域,由于Bootloader文件自身占用空间较小,只需稍微对其进行修改配置,就可以运行在应用程序区域以实现对Bootloader的升级。也即,本申请使用目标文件作为桥梁,在不增加系统成本的前提下,实现了小容量微控制单元对BootLoader的升级,保证了升级的安全性和稳定性。
参见图3所示,本申请实施例公开了一种具体的Bootloader升级方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
步骤S21:响应上位机的刷写请求,以获取所述上位机发送的目标文件;所述目标文件为按照预设拼接规则对新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述预设拼接规则用于控制所述新版本Bootloader文件拼接在所述Bootloader升级文件后面的目标地址区域,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件。
本实施例中,在对新版本Bootloader文件和Bootloader升级文件进行拼接得到BPP文件时,由专用工具进行程序文件的拼接,且预设拼接规则是需要将新版本Bootloader文件拼接在BootLoader升级文件后面的目标地址区域。
步骤S22:将所述目标文件刷写至应用程序区域,并响应所述上位机发送的完整性校验请求,根据预设校验算法计算所述目标文件的第一校验值。
本实施例中,将目标文件刷写至应用程序区域,此时MCU中FLASH区域的划分方式如图4所示。需要指出的是,图4中的应用程序区域原本存储的应当是APP文件,在完成刷写目标文件的步骤后,此时应用程序区域存储的即为目标文件,即BPP文件。BPP文件的结构从上至下分别是Bootloader升级文件、预留区域、新版本Bootloader文件和空白区域,通过前述内容可知,在拼接Bootloader升级文件和新版本Bootloader文件时,需要将新版本Bootloader文件拼接在BootLoader升级文件后面的目标地址区域,以便在运行应用程序区域的BPP文件时,能够首先运行其中的Bootloader升级文件。上位机在完成目标文件的传输后,需要进一步请求校验完整性,以确保文件的完整性和正确性。微控制单元响应完整性校验请求后,并根据预设校验算法计算目标文件的第一校验值,其中,预设校验算法可以为CRC(Cyclic Redundancy Check,即循环冗余校核)校验算法,得到的第一校验值为第一CRC校验值。
步骤S23:将所述第一校验值发送至所述上位机,以便通过所述上位机将所述第一校验值与本地的第二校验值进行比对,并在所述第一校验值和所述第二校验值一致时判定刷写成功,然后下发所述Bootloader升级请求。
本实施例中,微控制单元将第一校验值发送至上位机,上位机则将第一校验值和本地的第二校验值进行比对,第二校验值是上位机在传输目标文件之前,根据CRC校验算法对目标文件进行计算得到的。如果第一校验值和第二校验值一致,则说明目标文件在传输过程中没有发生错误,则可以判定刷写成功,便于上位机进一步下发Bootloader升级请求。
图5为本申请公开的一种文件刷写的具体流程,以刷写APP为例,步骤如下:
1、上位机与MCU建立连接;
2、上位机请求刷写APP,MCU置位重编程标志(即ReprogramFlag)后执行软件复位;
3、复位后进入BootLoader,BootLoader检测到重编程标志,回复重编程请求;
4、上位机收到响应后,开始传输升级文件;
5、传输结束后,上位机请求校验完整性,MCU发送程序CRC,上位机进行判断,如果接收到的CRC与上位机计算的CRC一致则升级成功。
6、上位机请求软件复位,MCU响应请求,并执行软件复位
7、复位后BootLoader没有检测到重编程标志,程序进入APP/BPP执行
8、上位机请求识别MagicData,MCU响应回复对应MagicData
9、上位机收到响应,判断刷写成功。
需要指出的是,若所述第一校验值和所述第二校验值不一致,则通过所述上位机重新发送所述目标文件,然后重新跳转至所述将所述上位机发送的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件刷写至应用程序区域的步骤。也即,若第一校验值和第二校验值不一致,则说明目标文件在传输过程中发生错误,则由上位机重新发送目标文件,微控制单元也重新执行将所述上位机发送的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件刷写至应用程序区域的步骤。
步骤S24:在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
步骤S25:擦除所述应用程序区域的所述目标文件,并将目标应用程序文件刷写至所述应用程序区域。
本实施例中,在完成Bootloader升级之后,由于当前应用程序区域运行的是目标文件(即BPP文件),不具备MCU正常功能,因此,需要擦除应用程序区域的BPP文件,并重新刷写目标应用程序文件,以恢复MCU正常功能,具体如图6所示。其中,目标应用程序文件指的是原始APP程序或者更新后的APP程序。
其中,关于上述步骤S21和S24更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请通过基本烧录流程,将拼接完成的BPP文件烧录到MCU的APP区域,并进行数据校验,以确保文件的完整性和正确性。在上位机请求升级BootLoader后,则运行Bootloader升级文件以将新版本Bootloader文件烧录到MCU的Bootloader区域中,从而实现Bootloader的升级。通过将BPP文件作为桥梁,解决了在Flash空间不足的情况下或小容量MCU升级Bootloader的需求。
参见图7所示,本申请实施例公开了一种Bootloader升级方法,应用于上位机,该方法包括:
步骤S31:将刷写请求发送至微控制单元,并在所述微控制单元响应所述刷写请求后,将目标文件发送至所述微控制单元,以便所述微控制单元将所述目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件。
本实施例中,在上位机和微控制单元建立连接后,由上位机请求刷写,并将刷写请求发送至微控制单元,在确定微控制单元响应该刷写请求后,再将目标文件发送至微控制单元,以便微控制单元将目标文件刷写至应用程序区域。目标文件具体是由新版本Bootloader文件和Bootloader升级文件拼接而成,Bootloader升级文件是预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件。
步骤S32:将Bootloader升级请求发送至所述微控制单元,以便所述微控制单元运行所述目标文件中的所述Bootloader升级文件,以将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
本实施例中,升级BootLoader的流程同样由上位机进行控制,在微控制单元与上位机建立连接后,由上位机请求升级BootLoader,并将相应的Bootloader升级请求发送至微控制单元。微控制单元响应上位机的Bootloader升级请求后,开始执行升级操作,具体为运行目标文件中的Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
可见,本申请通过上位机将刷写请求发送至微控制单元,并在微控制单元响应刷写请求后,将目标文件发送至微控制单元,以便微控制单元将目标文件刷写至应用程序区域;其中,目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,Bootloader升级文件为预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件;进一步的,再由上位机将Bootloader升级请求发送至微控制单元,以便微控制单元运行目标文件中的Bootloader升级文件,以将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。上述方案中,Bootloader升级文件是对新版本Bootloader文件进行配置得到的,然后将两者拼接得到的目标文件运行在应用程序区域,由于Bootloader文件自身占用空间较小,只需稍微对其进行修改配置,就可以运行在应用程序区域以实现对Bootloader的升级。也即,本申请使用目标文件作为桥梁,在不增加系统成本的前提下,实现了小容量微控制单元对BootLoader的升级,保证了升级的安全性和稳定性。
参见图8所示,本申请实施例公开了一种Bootloader升级装置,应用于微控制单元,该装置包括:
文件刷写模块11,用于响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
Bootloader升级模块12,用于在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
可见,本申请中通过微控制单元响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。由此可见,本申请中的Bootloader升级文件为预先按照预设配置规则对新版本Bootloader文件进行配置得到的文件,微控制单元在响应上位机的刷写请求后,则接收上位机传输的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件,并将目标文件刷写至应用程序区域;进一步的,由上位机向微控制单元发送Bootloader升级请求,微控制单元响应该升级请求后,则运行目标文件中的Bootloader升级文件,以便将新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。上述方案中,Bootloader升级文件是对新版本Bootloader文件进行配置得到的,然后将两者拼接得到的目标文件运行在应用程序区域,由于Bootloader文件自身占用空间较小,只需稍微对其进行修改配置,就可以运行在应用程序区域以实现对Bootloader的升级。也即,本申请使用目标文件作为桥梁,在不增加系统成本的前提下,实现了小容量微控制单元对BootLoader的升级,保证了升级的安全性和稳定性。
图9为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的Bootloader升级方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的Bootloader升级方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由Bootloader升级过程中执行的方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种Bootloader升级方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种Bootloader升级方法,其特征在于,应用于微控制单元,包括:
响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
2.根据权利要求1所述的Bootloader升级方法,其特征在于,所述对当前Bootloader进行升级之后,还包括:
擦除所述应用程序区域的所述目标文件,并将目标应用程序文件刷写至所述应用程序区域。
3.根据权利要求1所述的Bootloader升级方法,其特征在于,还包括:
确定预设配置规则中规定的配置项;
按照所述配置项对所述新版本Bootloader文件进行配置,以得到Bootloader升级文件;所述配置项包括删除上电校验功能、删除跳转至应用程序运行的功能、添加响应Bootloader升级请求的功能、添加升级Bootloader的功能、添加响应上位机查询升级状态的功能、将闪存区域允许的擦写区域由应用程序区域修改为Bootloader区域、将识别码修改为与目标文件对应的标志。
4.根据权利要求1所述的Bootloader升级方法,其特征在于,所述将所述上位机发送的目标文件刷写至应用程序区域,包括:
获取所述上位机发送的目标文件;所述目标文件为按照预设拼接规则对新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述预设拼接规则用于控制所述新版本Bootloader文件拼接在所述Bootloader升级文件后面的目标地址区域;
将所述目标文件刷写至应用程序区域。
5.根据权利要求1所述的Bootloader升级方法,其特征在于,所述将所述上位机发送的目标文件刷写至应用程序区域之后,还包括:
响应所述上位机发送的完整性校验请求,根据预设校验算法计算所述目标文件的第一校验值;
将所述第一校验值发送至所述上位机,以便通过所述上位机将所述第一校验值与本地的第二校验值进行比对,并在所述第一校验值和所述第二校验值一致时判定刷写成功,然后下发所述Bootloader升级请求。
6.根据权利要求5所述的Bootloader升级方法,其特征在于,还包括:
若所述第一校验值和所述第二校验值不一致,则通过所述上位机重新发送所述目标文件,然后重新跳转至所述将所述上位机发送的由新版本Bootloader文件和Bootloader升级文件进行拼接得到的目标文件刷写至应用程序区域的步骤。
7.一种Bootloader升级方法,其特征在于,应用于上位机,包括:
将刷写请求发送至微控制单元,并在所述微控制单元响应所述刷写请求后,将目标文件发送至所述微控制单元,以便所述微控制单元将所述目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
将Bootloader升级请求发送至所述微控制单元,以便所述微控制单元运行所述目标文件中的所述Bootloader升级文件,以将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
8.一种Bootloader升级装置,其特征在于,应用于微控制单元,包括:
文件刷写模块,用于响应上位机的刷写请求,以将所述上位机发送的目标文件刷写至应用程序区域;其中,所述目标文件为由新版本Bootloader文件和Bootloader升级文件进行拼接得到的文件,所述Bootloader升级文件为预先按照预设配置规则对所述新版本Bootloader文件进行配置得到的文件;
Bootloader升级模块,用于在获取到所述上位机发送的Bootloader升级请求后,运行所述目标文件中的所述Bootloader升级文件,以便将所述新版本Bootloader文件刷写至Bootloader区域,以对当前Bootloader进行升级。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的Bootloader升级方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的Bootloader升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310882673.3A CN116932018A (zh) | 2023-07-18 | 2023-07-18 | 一种Bootloader升级方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310882673.3A CN116932018A (zh) | 2023-07-18 | 2023-07-18 | 一种Bootloader升级方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932018A true CN116932018A (zh) | 2023-10-24 |
Family
ID=88383794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310882673.3A Pending CN116932018A (zh) | 2023-07-18 | 2023-07-18 | 一种Bootloader升级方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932018A (zh) |
-
2023
- 2023-07-18 CN CN202310882673.3A patent/CN116932018A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (zh) | 一种ecu程序备份及循环升级控制方法及装置 | |
CN109189445B (zh) | 一种物联网设备程序升级的方法 | |
CN107179909B (zh) | 软件升级方法、装置及计算机可读存储介质 | |
WO2021115477A1 (zh) | 程序升级方法、装置、电子设备及存储介质 | |
CN113377392B (zh) | 可后台升级固件的系统及后台升级固件方法 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
KR20170040734A (ko) | 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법 | |
CN103761112A (zh) | 一种车载多媒体装置及其控制方法 | |
CN112000358B (zh) | 充电桩的升级方法与智能充电桩 | |
CN110633091A (zh) | 一种电子模块及其软件无线升级方法 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN115993985A (zh) | Bootloader更新方法、装置、设备及介质 | |
CN112667265A (zh) | 一种引导程序更新方法及装置 | |
CN105677409A (zh) | 一种系统升级方法及装置 | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
CN113220319A (zh) | 一种数据更新方法、装置及车辆 | |
CN117215656A (zh) | 基于Linux系统自适配车机芯片方法、装置、电子设备及车辆 | |
CN116932018A (zh) | 一种Bootloader升级方法、装置、设备及介质 | |
CN111143181A (zh) | 一种服务器维护方法、系统、设备及计算机可读存储介质 | |
CN115033261A (zh) | 一种程序更新方法、装置、设备及存储介质 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN109901117B (zh) | 一种雷达重启方法及装置 | |
CN113467842B (zh) | 适用于工业级应用场景的嵌入式设备的启动方法、嵌入式设备和计算机可读存储介质 | |
JP2021503657A (ja) | 電子装置を介したオペレーティングシステムの修復 |
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 |