CN110990041A - 一种bootloader升级方法及系统 - Google Patents

一种bootloader升级方法及系统 Download PDF

Info

Publication number
CN110990041A
CN110990041A CN201911295174.4A CN201911295174A CN110990041A CN 110990041 A CN110990041 A CN 110990041A CN 201911295174 A CN201911295174 A CN 201911295174A CN 110990041 A CN110990041 A CN 110990041A
Authority
CN
China
Prior art keywords
bootloader
code
upgraded
upgrading
computer program
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
Application number
CN201911295174.4A
Other languages
English (en)
Inventor
徐仁俊
程磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN201911295174.4A priority Critical patent/CN110990041A/zh
Publication of CN110990041A publication Critical patent/CN110990041A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

本申请公开了一种bootloader升级方法,包括:存储待升级功能所对应的代码在boot2中;执行并加载bootloader;升级所述待升级代码;继续执行所述bootloader;加载操作系统内核。与现有技术相比,本申请具有如下优点:实现二级bootloader可升级。二级bootloader属位置无关码。由一级bootloader启动Linux内核,节省资源,提高效率。

Description

一种bootloader升级方法及系统
技术领域
本申请涉及bootloader升级领域,具体而言,涉及一种bootloader升级方法。
背景技术
如图1所示,在带有bootloader引导加载的Linux系统中,由于内核启动有时候较晚,因此很多时候需要在bootloader早期阶段对系统某些外设或功能进行初始化,或者是早期实现某种业务逻辑的控制等等;但是一般的产品在发布以后bootloader就会固化到flash中,并且用户在任何时候都不会被升级bootloader,因为升级bootloader存在风险,容易造成机器变“砖头”;那么,很多早期的业务逻辑和控制一旦产品出厂就无法更改,这也就造成了一旦bootloader中的某些业务逻辑有问题,就只能返厂修补。只有一级bootloader,所有逻辑业务均在一级bootloader中实现。然而现有技术中只存在一级bootloader,所有的业务逻辑功能均在此内部完成,且此bootloader不可升级,在bootloader执行完毕以后加载执行Linux内核和文件系统等过程,此种方式灵活性不高,一旦业务逻辑有问题必须返厂维修。
发明内容
本申请的主要目的在于提供一种bootloader升级方法,包括:
存储待升级功能所对应的代码在boot2中;
执行并加载bootloader;
升级所述待升级代码;
继续执行所述bootloader;
加载操作系统内核。
可选地,升级所述待升级代码之后包括:
调用升级之后的代码所对应的所述bootloader中的硬件结构,用于实现业务逻辑功能。
可选地,所述boot2为闪存内的地址,所述待升级功能所对应的代码存储在所述地址中。
可选地,升级所述待升级代码为:
将新的功能编译成的代码存到所述地址中,以替换掉相应的旧的代码。
可选地,将boot2作为位置无关码存放到掉电不丢失数据的闪存中,用于OTA或者系统升级使用。
可选地,所述位置无关码为:可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。
根据本申请的另一个方面,还提供了一种bootloader升级系统,包括:
存储模块,用于存储待升级功能所对应的代码在boot2中;
执行模块,用于执行并加载bootloader;
升级模块,用于升级所述待升级代码;
加载模块,用于加载操作系统内核。
本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
与现有技术相比,本申请具有如下优点:
1.实现二级bootloader可升级
2.二级bootloader属位置无关码
3.由一级bootloader启动Linux内核,节省资源,提高效率。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是现有技术中的bootloader升级方法的流程示意图;
图2是根据本申请一个实施例的bootloader升级方法的流程示意图;
图3是根据本申请一个实施例的bootloader升级方法的流程示意图;
图4是根据本申请一个实施例的计算机设备的示意图;以及
图5是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参照图2-图3,本申请一实施例提供了一种bootloader升级方法,包括:
S2:存储待升级功能所对应的代码在boot2中;
S4:执行并加载bootloader;
S6:升级所述待升级代码;
S8:继续执行所述bootloader;
S10:加载操作系统内核。
在本申请一实施例中,升级所述待升级代码之后包括:调用升级之后的代码所对应的所述bootloader中的硬件结构,用于实现业务逻辑功能。
在本申请一实施例中,所述boot2为闪存内的地址,所述待升级功能所对应的代码存储在所述地址中。
在本申请一实施例中,升级所述待升级代码为:将新的功能编译成的代码存到所述地址中,以替换掉相应的旧的代码。
在本申请一实施例中,将boot2作为位置无关码存放到掉电不丢失数据的闪存中,用于OTA或者系统升级使用。
在本申请一实施例中,所述位置无关码为:可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。
本申请还提供了了一种bootloader升级系统,包括:
存储模块,用于存储待升级功能所对应的代码在boot2中;
执行模块,用于执行并加载bootloader;
升级模块,用于升级所述待升级代码;
加载模块,用于加载操作系统内核。
在bootloader中加入boot2,将有可能被修改或升级的功能编译成代码,存到flash的某一个地址中,当需要升级时把新的功能编译成的代码存到这个地址里替换掉相应的旧的代码,完成升级。此boot2部分实现了需要的业务逻辑,运行过程是,系统先加载执行bootloader,由bootloader加载并跳转到boot2去执行,在boot2中调用bootloader中的硬件相关的接口实现业务逻辑的功能,执行完boot2以后返回到bootloader去继续执行,最后由bootloader加载Linux内核最后运行操作系统等;运行顺序出厂就设定好:bootloader-boot2-bootloader-linux。
此部分将boot2作为位置无关码存放到掉电不丢失数据的flash中,用于OTA或者是系统升级使用;
位置无关码是指可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码,即编译器使用-Ttext指定的绝对代码地址。
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行
与现有技术相比,本申请具有如下优点:
1.实现二级bootloader可升级
2.二级bootloader属位置无关码
3.由一级bootloader启动Linux内核,节省资源,提高效率。
请参照图4,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
请参照图5,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种bootloader升级方法,其特征在于,包括:
存储待升级功能所对应的代码在boot2中;
执行并加载bootloader;
升级所述待升级代码;
继续执行所述bootloader;
加载操作系统内核。
2.根据权利要求1所述的bootloader升级方法,其特征在于,升级所述待升级代码之后包括:
调用升级之后的代码所对应的所述bootloader中的硬件结构,用于实现业务逻辑功能。
3.根据权利要求2所述的bootloader升级方法,其特征在于,所述boot2为闪存内的地址,所述待升级功能所对应的代码存储在所述地址中。
4.根据权利要求3所述的bootloader升级方法,其特征在于,升级所述待升级代码为:
将新的功能编译成的代码存到所述地址中,以替换掉相应的旧的代码。
5.根据权利要求4所述的bootloader升级方法,其特征在于,将boot2作为位置无关码存放到掉电不丢失数据的闪存中,用于OTA或者系统升级使用。
6.根据权利要求5所述的bootloader升级方法,其特征在于,所述位置无关码为:可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。
7.一种bootloader升级系统,其特征在于,包括:
存储模块,用于存储待升级功能所对应的代码在boot2中;
执行模块,用于执行并加载bootloader;
升级模块,用于升级所述待升级代码;
加载模块,用于加载操作系统内核。
8.一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行权利要求1-6中任一项所述的方法。
CN201911295174.4A 2019-12-16 2019-12-16 一种bootloader升级方法及系统 Pending CN110990041A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911295174.4A CN110990041A (zh) 2019-12-16 2019-12-16 一种bootloader升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911295174.4A CN110990041A (zh) 2019-12-16 2019-12-16 一种bootloader升级方法及系统

Publications (1)

Publication Number Publication Date
CN110990041A true CN110990041A (zh) 2020-04-10

Family

ID=70094253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911295174.4A Pending CN110990041A (zh) 2019-12-16 2019-12-16 一种bootloader升级方法及系统

Country Status (1)

Country Link
CN (1) CN110990041A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360877A (zh) * 2014-10-24 2015-02-18 同济大学 基于Bootloader自更新的ECU固件更新方法
CN105117255A (zh) * 2015-08-28 2015-12-02 青岛中星微电子有限公司 一种启动装载BootLoader程序的引导方法和装置
CN109634618A (zh) * 2018-11-12 2019-04-16 中国船舶重工集团公司第七0七研究所 基于TMS320C674X处理器二级BootLoader串行加载自启动方法
CN109710320A (zh) * 2018-12-11 2019-05-03 中国航空工业集团公司西安航空计算技术研究所 一种两级驱动的启动引导BootLoader方法
CN109933348A (zh) * 2019-01-21 2019-06-25 宁波普瑞均胜汽车电子有限公司 一种电子控制单元中Bootloader的更新方法和装置
CN110134415A (zh) * 2019-04-12 2019-08-16 深圳市致宸信息科技有限公司 一种控制器及其软件升级方法和装置
CN113741940A (zh) * 2021-09-14 2021-12-03 天津易鼎丰动力科技有限公司 在线升级电动汽车整车控制器bootloader的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360877A (zh) * 2014-10-24 2015-02-18 同济大学 基于Bootloader自更新的ECU固件更新方法
CN105117255A (zh) * 2015-08-28 2015-12-02 青岛中星微电子有限公司 一种启动装载BootLoader程序的引导方法和装置
CN109634618A (zh) * 2018-11-12 2019-04-16 中国船舶重工集团公司第七0七研究所 基于TMS320C674X处理器二级BootLoader串行加载自启动方法
CN109710320A (zh) * 2018-12-11 2019-05-03 中国航空工业集团公司西安航空计算技术研究所 一种两级驱动的启动引导BootLoader方法
CN109933348A (zh) * 2019-01-21 2019-06-25 宁波普瑞均胜汽车电子有限公司 一种电子控制单元中Bootloader的更新方法和装置
CN110134415A (zh) * 2019-04-12 2019-08-16 深圳市致宸信息科技有限公司 一种控制器及其软件升级方法和装置
CN113741940A (zh) * 2021-09-14 2021-12-03 天津易鼎丰动力科技有限公司 在线升级电动汽车整车控制器bootloader的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
朱志斌等: "基于LIN总线ECU远程升级系统的设计与实现", 《广东通信技术》 *
疯壳团队: "《物联网(IoT)网关开发实战》", 31 March 2019, 西安电子科技大学出版社 *
董维宁: "嵌入式系统自更新机制的设计与应用", 《单片机与嵌入式系统应用》 *

Similar Documents

Publication Publication Date Title
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
US20170010884A1 (en) Systems And Methods To Securely Inject Binary Images And Code Into Firmware
US9891939B2 (en) Application compatibility with library operating systems
CN109062617B (zh) 一种支持多类型设备的平台的应用方法、移动终端
KR101856284B1 (ko) 장치의 초기화 동안 펌웨어의 백업
US8914785B2 (en) Providing virtual appliance system firmware images
US9411601B2 (en) Flexible bootstrap code architecture
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US10810017B2 (en) Systems and methods for handling firmware driver dependencies in host operating systems while applying updates from bootable image file
CN108141378B (zh) Vnfd中的休眠vdu
CN103927187A (zh) 嵌入式系统程序执行方法
US8726258B2 (en) Supporting multiple hardware components in UEFI
CN111782335A (zh) 通过进程内操作系统的扩展应用机制
US11640290B2 (en) Pushing a firmware update patch to a computing device via an out-of-band path
US9495146B2 (en) Host and method of upgrading connection manager of dongles
CN102298531B (zh) 在嵌入式系统中对闪存文件系统进行升级的方法
US20090199216A1 (en) Multi-level driver configuration
CN110990041A (zh) 一种bootloader升级方法及系统
KR20070060448A (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
CN104281443B (zh) 利用tcm实现代码、数据替换的方法
US20220197673A1 (en) Binary Image Publication by Firmware
US11068276B2 (en) Controlled customization of silicon initialization
CN112463244B (zh) 一种cpu启动方法、装置、电子设备及计算机可读存储介质
JP2006012158A (ja) デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置
CN112114863A (zh) 微内核代支持的操作系统架构

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200410