CN112612528B - 一种基于Bootloader的系统软件选择性启动和远程更新方法 - Google Patents

一种基于Bootloader的系统软件选择性启动和远程更新方法 Download PDF

Info

Publication number
CN112612528B
CN112612528B CN202011606584.9A CN202011606584A CN112612528B CN 112612528 B CN112612528 B CN 112612528B CN 202011606584 A CN202011606584 A CN 202011606584A CN 112612528 B CN112612528 B CN 112612528B
Authority
CN
China
Prior art keywords
file
operating system
image file
system image
command
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.)
Active
Application number
CN202011606584.9A
Other languages
English (en)
Other versions
CN112612528A (zh
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.)
Casco Signal Ltd
Original Assignee
Casco Signal 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 Casco Signal Ltd filed Critical Casco Signal Ltd
Priority to CN202011606584.9A priority Critical patent/CN112612528B/zh
Publication of CN112612528A publication Critical patent/CN112612528A/zh
Application granted granted Critical
Publication of CN112612528B publication Critical patent/CN112612528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于Bootloader的系统软件选择性启动和远程更新方法,在通用的Bootloader的基础上增加选择性启动模块以及远程更新模块,并在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放操作系统镜像、数据文件、配置文件;目标硬件板卡上通电后启动Bootloader,可选择性的进入远程更新模块或者选择性启动模块。本发明提高硬件板卡的可用性、减少硬件板卡对于ROM存储空间的依赖、提升了信息安全性、通信过程全程可控,并能在通信过程中及时报告可能出现的各类错误,帮助用户快速识别和诊断错误。

Description

一种基于Bootloader的系统软件选择性启动和远程更新方法
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种基于Bootloader的系统软件选择性启动和远程更新方法。
背景技术
Bootloader(引导加载程序)是嵌入式系统在加电后执行的第一段代码,它负责完成CPU和相关硬件的初始化、将操作系统镜像加载到内存中,并跳转到操作系统所在的空间,引导启动操作系统运行的工作。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。Bootloader有很多种类型,如开源项目的RedBoot、U-Boot、ARMBoot等。这些Bootloader,一般是只提供较为通用和常用的功能,如使用TFTP客户端加载镜像、使用TSFS加载镜像,引导指定地址或文件系统中操作系统镜像或应用镜像。
通用的Bootloader在使用时,经过较少的修改,就能适配到不同类型的硬件板卡上,使用方便,能有效提升开发效率,但通用的Bootloader在提供便利性的同时,也有一些比较明显的缺点:
1.使用通用通信协议,有信息安全风险。在Bootloader阶段更新待加载的操作系统镜像时,使用TFTP、TSFS等通用通信协议,通信安全性不容易保证;
2.更新镜像,无法进行可视化交互。在Bootloader阶段更新待加载的操作系统镜像时,在一侧,使用通用的TFTP服务器、TSFS服务器软件,无法实现更多的上下位机交互,一旦通信错误,无法了解具体的错误信息;
3.启动逻辑简单,无法选择版本。Bootloader加载操作系统时逻辑比较简单,无法自动选择待加载的操作系统软件版本和配套配置文件等;
4.不支持引导压缩镜像启动。Bootloader加载操作系统时,如果操作系统镜像较大,需要压缩,通用的Bootloader将无法正常引导压缩镜像启动。
发明内容
为了解决上述问题,本发明提供了一种基于Bootloader的系统软件选择性启动和远程更新方法,在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放多个文件,该些文件包括:操作系统镜像文件、数据文件、配置文件;
当目标硬件板卡上通电后启动Bootloader,Bootloader选择运行远程更新模块或选择运行选择性启动模块,若Bootloader启动一段时间内收到远程更新上位机发起的通信信号,则目标硬件板卡运行远程更新模块;若Bootloader启动一段时间内未收到远程更新上位机发起的通信信号则目标硬件板卡运行选择性启动模块。
其中,Bootloader启动后包括以下步骤:
S1:Bootloader执行完成必要的CPU初始化和硬件初始化;
S2:若目标硬件板卡在5秒时间内接收到来自远程更新上位机的通信信号,则运行远程更新模块;否则运行选择性启动模块;
S3:判断目标硬件板卡上是否存在两个所述文件系统,若两个文件系统都存在;则进入S4步骤;否则停止;
S4:若目标硬件板卡运行了远程更新模块,通过选择对其中一个文件系统上的相应的文件进行操作;该文件包括操作系统镜像文件、数据文件、配置文件;
若目标硬件板卡运行了选择性启动模块,通过选择对其中一个文件系统上的相应的操作系统镜像文件进行启动;
S5:对S4步骤相应的文件系统上的操作系统镜像文件进行MD5校验,若校验成功,则进入S6步骤;若校验失败,则校验另一个文件系统上的操作系统镜像文件;若另一个操作系统镜像文件校验成功则进入S6步骤,否则Bootloader启动过程终止,并报错;
S6:将S5步骤校验成功的操作系统镜像文件先在内存中解压缩,然后CPU将跳转到操作系统镜像入口处,运行操作系统镜像文件。
其中,所述S4步骤包含以下两个步骤:
S41:若目标硬件板卡收到远程更新上位机发送的命令,则按照命令执行;若未收到命令则目标硬件板卡自动更新旧版本操作系统镜像文件;
S42:若运行选择性启动模块,选择相应的文件系统上的新版本操作系统镜像文件进行启动。
优选地,所述S41步骤的命令包含以下命令;
文件更新命令:根据该命令更新指定文件系统上的指定文件;
查询命令:查询目标硬件板卡上指定文件的保存位置和版本号;
删除命令:删除指定文件系统上的文件;
重启命令:重启目标硬件板卡;
所述文件包括操作系统镜像文件、数据文件、配置文件,目标硬件板卡根据远程更新上位机的命令做出相应的反馈操作。
优选地,所述S41步骤的命令发出后,首先对该命令的命令帧进行校验,如果校验通过,则命令有效,目标硬件板卡将针对不同的命令,回复对应的响应命令;如果校验不通过,目标硬件板卡继续等待新的命令,并将错误码发送远程更新上位机。
进一步地,所述目标硬件板卡继续等待新的命令的时间界限为5秒,若等待时间超过5秒,则远程更新上位机不再主动发起任何命令,Bootloader将退出远程更新模块;若等待时间不超过5秒,则目标硬件板卡继续执行远程更新上位机发出的命令。
具体地,所述S41步骤中目标硬件板卡自动更新旧版本操作系统镜像文件包含以下步骤:
S411:检验目标硬件板卡上的两个文件系统内的操作系统镜像文件,若两个文件系统上都没有操作系统镜像文件,则将新版本的操作系统镜像文件写入其中任意一个文件系统中;若只有一个文件系统上有操作系统镜像文件,则将新版本操作系统镜像文件写入该操作系统镜像文件所在的文件系统中;若两个文件系统上都有操作系统镜像文件且版本不同,则选择较旧版本的操作系统镜像文件进行更新;若两个操作系统镜像文件版本相同,则进入S412步骤;
S412:开始对数据文件进行版本比较;若两个数据文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个数据文件,则将新版本操作系统镜像文件写入该数据文件所在的文件系统中;若两个数据文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的数据文件所在的文件系统中;若两个数据文件版本相同,则进入S413步骤;
S413:开始比较配置文件的版本;若两个配置文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个配置文件,则将新版本操作系统镜像文件写入该配置文件所在的文件系统中;若两个配置文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的配置文件所在的文件系统中;若两个配置文件版本相同,则将新版本操作系统镜像文件写入其中任意一个文件系统中;
所述的新版本的操作系统镜像文件写入文件系统中后,若文件系统中存在原操作系统镜像文件,则将原操作系统镜像文件删除。
进一步地,所述S411-S413的任一步骤中将新版本操作系统镜像文件写入文件系统中之前先将操作系统镜像文件存入目标硬件板卡的静态存储器中,并对存入的操作系统镜像文件都进行MD5算法校验,若校验正确则写入文件系统中,否则删除存入的操作系统镜像文件并向远程更新上位机报错。
优选地,所述S42步骤包含以下步骤:
S421:若两个文件系统上都没有操作系统镜像文件,则停止引导操作系统镜像文件启动;若只有一个文件系统上有操作系统镜像文件,则引导该操作系统镜像文件启动;若两个文件系统上都有操作系统镜像文件且版本不同,则引导版本较新的操作系统镜像文件启动;若两个操作系统镜像文件版本相同则进入S422步骤;
S422:开始对数据文件进行版本比较;若两个数据文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个数据文件,则引导该数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件都存在且版本不同,则引导较新版本的数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件版本相同则进入S423步骤;
S423:开始对配置文件进行版本比较;若两个配置文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个配置文件,则引导该配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件都存在且版本不同,则引导较新版本的配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件版本相同则引导其中任意一个文件系统上的操作系统镜像文件启动。
优选地,所述操作系统镜像文件、数据文件、配置文件的结尾均添加有48字节的版本控制信息,这48字节的第1-16字节为版本号信息,用户自定义字段,用于表示不同的版本号;第17-24字节为TAG1,占8字节,为固定字段,用于标记版本控制信息字段;第25-40字节为MD5校验码,占16字节,用于存放MD5校验码;第41-48字节为TAG2,占8字节,为固定字段,用于标记MD5校验码。
与现有技术相比,上述本发明具有以下有益效果:
1.选择性启动模块,采用分级分区的镜像选择性启动策略,能够一定程度上避免和纠正用户使用时的错误配置,提高板卡的可用性;
2.选择性启动模块,支持引导压缩的镜像启动,减少板卡对于ROM存储空间的依赖;
3.远程更新模块,使用了基于UDP的自定义专用网络通信协议,上位机密码加密,数据帧MD5校验,网络通信的信息安全性得到有效提升;
4.远程更新模块,在更新镜像、数据、配置文件时,通信过程全程可控,并能在通信过程中及时报告可能出现的各类错误,帮助用户快速识别和诊断错误。
附图说明
图1为本发明Bootloader中选择性启动模块执行过程;
图2为本发明Bootloader中远程自动更新模块流程图。
具体实施方式
以下结合附图和具体实施方式对本发明提出的一种基于Bootloader的系统软件选择性启动和远程更新方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。
本发明提供的一种基于Bootloader的系统软件选择性启动和远程更新方法,在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放多个文件,该些文件包括:操作系统镜像文件、数据文件、配置文件;
当目标硬件板卡上通电后启动Bootloader,Bootloader选择运行远程更新模块或选择运行选择性启动模块;具体的,若Bootloader启动后在设定的一段时间内收到远程更新上位机发起的通信信号,则目标硬件板卡运行远程更新模块;若Bootloader启动后在设定的一段时间内未收到远程更新上位机发起的通信信号,则目标硬件板卡运行选择性启动模块。
其中,Bootloader启动后,包括以下步骤:
S1:Bootloader执行完成必要的CPU初始化和硬件初始化;
S2:若目标硬件板卡在5秒时间内接收到来自远程更新上位机的通信信号,则运行远程更新模块;否则运行选择性启动模块;
S3:判断目标硬件板卡上是否存在两个所述文件系统,若两个文件系统都存在;则进入S4步骤;否则停止;本实施例中用文件系统FS1和文件系统FS2来说明目标硬件板卡上存在两个文件系统,两个文件系统完全一样,只是编号存在差别。本实施例中,在选择任意一个文件系统时,默认的文件系统是FS1。
S4:若目标硬件板卡运行了远程更新模块,通过选择对其中一个文件系统上的相应的文件进行操作;该文件包括操作系统镜像文件、数据文件、配置文件;
若目标硬件板卡运行了选择性启动模块,通过选择对其中一个文件系统上的操作系统镜像文件进行启动;
S5:对S4步骤中进行操作的文件系统上的操作系统镜像文件进行MD5校验,若校验成功,则进入S6步骤;若校验失败,则校验另一个文件系统上的操作系统镜像文件;若另一个文件系统上的操作系统镜像文件校验成功则进入S6步骤,否则Bootloader启动过程终止,并报错;
S6:将S5步骤中校验成功的操作系统镜像文件先在内存中解压缩,然后CPU将跳转到操作系统镜像入口处,运行操作系统镜像文件。
其中,所述S4步骤包含以下两个步骤:
S41:当运行远程更新模块时,若目标硬件板卡收到远程更新上位机发送的命令,则按照命令执行相应操作,该命令包括文件文件更新、查询、删除等;若未收到命令,则目标硬件板卡自动选择其中一个文件系统中的旧版本操作系统镜像文件进行更新;
S42:当运行选择性启动模块,则目标硬件板卡自动选择其中一个文件系统中的新版本操作系统镜像文件进行启动。
优选地,所述S41步骤的命令包含以下命令;
文件更新命令:根据该命令更新指定文件系统上的指定文件,该文件更新命令可以更新指定的任一文件系统中的操作系统镜像文件、数据文件、配置文件;
查询命令:查询目标硬件板卡上指定文件的保存位置和版本号,该查询命令可以查询指定的任一文件系统中的操作系统镜像文件、数据文件、配置文件;
删除命令:删除指定文件系统上的文件,该删除命令可以删除指定的任一文件系统中的操作系统镜像文件、数据文件、配置文件;
重启命令:重启目标硬件板卡。
优选地,如图2所示,所述S41步骤的命令发出后,首先对该命令的命令帧进行校验,如果校验通过,则命令有效,目标硬件板卡将针对不同的命令,回复对应的响应命令;如果校验不通过,目标硬件板卡继续等待新的命令,并将错误码发送远程更新上位机。
具体地,在远程更新模块下,上下位机通信时,采用的通信协议格式如下表1和表2所示(本文所述的上位机和下位机分别指的是远程更新上位机和目标硬件板卡):
帧头 长度 命令/数据帧内容 校验和 帧尾
(2字节) (2字节) (5…N字节) (1字节) (2字节)
表1、上下位机通信协议格式表
命令序列号 实际命令 命令内容长度 命令内容
(1字节) (2字节) (2字节) (0…N字节)
表2、上下位机命令/数据帧内容格式表
其中,帧头:0x5555,2字节;
长度:2字节,表示命令/数据帧内容的长度(不含帧头、长度、校验和、帧尾);
数据帧总长度=长度+7字节
校验和:长度+帧内容,所有数据相加;
帧尾:0xAAAA,2字节;
命令/数据帧内容:可变部分,根据通信数据的方向,分为上位机向下位机发送的命令/数据帧和下位机向上位机发送的命令/数据帧两种。两种类型的命令/数据帧,都包括命令序列号、实际命令、命令内容长度、命令内容4个部分组成,总的长度不少于5字节,其中N为大于5的正整数。
命令序号:1字节,0到127,循环递增;
实际命令:2字节,其中Byte0表示方向,Byte1表示命令编号,两个通信方向各有一套命令;
命令内容长度:2字节,命令内容的实际长度,可以为0;
命令内容:根据实际命令来定义。
进一步地,所述目标硬件板卡继续等待新的命令的时间界限为5秒,若等待时间超过5秒,则远程更新上位机不再主动发起任何命令,Bootloader将退出远程更新模块;若等待时间不超过5秒,则目标硬件板卡继续执行远程更新上位机发出的命令。
具体地,上位机向下位机发送的命令/数据帧格式如下表3所示:
Figure BDA0002873777960000081
表3、上位机向下位机发送的命令/数据帧格式表
Figure BDA0002873777960000091
表4、开始传输“S”表
Figure BDA0002873777960000092
Figure BDA0002873777960000101
表5、控制命令“C”表
Figure BDA0002873777960000102
表6、数据传输命令“D”表
Figure BDA0002873777960000103
Figure BDA0002873777960000111
表7、查询命令“?”表
进入等待命令模式“H”:
下位机接收到这个命令后将在一段比较长的时间(5分钟)内一直等待新的命令而不认为上位机无响应超时。
数据传输完成“W”:将传输数据更新至文件系统中。
其中,下位机向上位机发送的命令/数据帧格式如下表8所示:
Figure BDA0002873777960000112
表8、下位机向上位机发送的命令/数据帧格式表
Figure BDA0002873777960000113
Figure BDA0002873777960000121
表9、命令请求成功“A”表
Figure BDA0002873777960000122
Figure BDA0002873777960000131
表10、命令请求失败“N”表
具体地,所述S41步骤中目标硬件板卡自动更新旧版本操作系统镜像文件包含以下步骤:
S411:检验目标硬件板卡上的两个文件系统内的操作系统镜像文件,若两个文件系统上都没有操作系统镜像文件,则将新版本的操作系统镜像文件写入其中任意一个文件系统中;若只有一个文件系统上有操作系统镜像文件,则将新版本操作系统镜像文件写入该操作系统镜像文件所在的文件系统中;若两个文件系统上都有操作系统镜像文件且版本不同,则选择较旧版本的操作系统镜像文件进行更新;若两个操作系统镜像文件版本相同,则进入S412步骤;
S412:开始对数据文件进行版本比较;若两个数据文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个数据文件,则将新版本操作系统镜像文件写入该数据文件所在的文件系统中;若两个数据文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的数据文件所在的文件系统中;若两个数据文件版本相同,则进入S413步骤;
S413:开始比较配置文件的版本;若两个配置文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个配置文件,则将新版本操作系统镜像文件写入该配置文件所在的文件系统中;若两个配置文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的配置文件所在的文件系统中;若两个配置文件版本相同,则将新版本操作系统镜像文件写入其中任意一个文件系统中;
所述的新版本的操作系统镜像文件写入文件系统中后,若文件系统中存在原操作系统镜像文件,则将原操作系统镜像文件删除。
进一步地,所述S411-S413的任一步骤中将新版本操作系统镜像文件写入文件系统中之前先将操作系统镜像文件存入目标硬件板卡的静态存储器中,并对存入的操作系统镜像文件都进行MD5算法校验,若校验正确则写入文件系统中,否则删除存入的操作系统镜像文件并向远程更新上位机报错。
优选地,如图1所示,所述S42步骤包含以下步骤:
S421:若两个文件系统上都没有操作系统镜像文件,则停止引导操作系统镜像文件启动;若只有一个文件系统上有操作系统镜像文件,则引导该操作系统镜像文件启动;若两个文件系统上都有操作系统镜像文件且版本不同,则引导版本较新的操作系统镜像文件启动;若两个操作系统镜像文件版本相同则进入S422步骤;
S422:开始对数据文件进行版本比较;若两个数据文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个数据文件,则引导该数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件都存在且版本不同,则引导较新版本的数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件版本相同则进入S423步骤;
S423:开始对配置文件进行版本比较;若两个配置文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个配置文件,则引导该配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件都存在且版本不同,则引导较新版本的配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件版本相同则引导其中任意一个文件系统上的操作系统镜像文件启动。
优选地,所述操作系统镜像文件、数据文件、配置文件的结尾均添加有48字节的版本控制信息,这48字节的第1-16字节为版本号信息,用户自定义字段,用于表示不同的版本号;第17-24字节为TAG1,占8字节,为固定字段,用于标记版本控制信息字段;第25-40字节为MD5校验码,占16字节,用于存放MD5校验码;第41-48字节为TAG2,占8字节,为固定字段,用于标记MD5校验码。
综上所述,本发明具有以下有益效果:
1.选择性启动模块,采用分级分区的镜像选择性启动策略,能够一定程度上避免和纠正用户使用时的错误配置,提高板卡的可用性;
2.选择性启动模块,支持引导压缩的镜像启动,减少板卡对于ROM存储空间的依赖;
3.远程更新模块,使用了基于UDP的自定义专用网络通信协议,上位机密码加密,数据帧MD5校验,网络通信的信息安全性得到有效提升;
4.远程更新模块,在更新镜像、数据、配置文件时,通信过程全程可控,并能在通信过程中及时报告可能出现的各类错误,帮助用户快速识别和诊断错误。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (9)

1.一种基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放多个文件,该些文件包括:操作系统镜像文件、数据文件、配置文件;
当目标硬件板卡上通电后启动Bootloader,Bootloader选择运行远程更新模块或选择运行选择性启动模块,若Bootloader启动后在设定的一段时间内收到远程更新上位机发起的通信信号,则目标硬件板卡运行远程更新模块;若Bootloader启动后在设定的一段时间内未收到远程更新上位机发起的通信信号则目标硬件板卡运行选择性启动模块;
Bootloader启动后包括以下步骤:
S1:Bootloader执行完成必要的CPU初始化和硬件初始化;
S2:若目标硬件板卡在设定的一段时间内接收到来自远程更新上位机的通信信号,则运行远程更新模块;否则运行选择性启动模块;
S3:判断目标硬件板卡上是否存在两个文件系统,若两个文件系统都存在;则进入S4步骤;否则停止;
S4:若目标硬件板卡运行了远程更新模块,通过选择对其中一个文件系统上的相应的文件进行操作;该文件包括操作系统镜像文件、数据文件、配置文件;
若目标硬件板卡运行了选择性启动模块,通过选择对其中一个文件系统上的相应的操作系统镜像文件进行启动;
S5:对S4步骤相应的文件系统上的操作系统镜像文件进行MD5校验,若校验成功,则进入S6步骤;若校验失败,则校验另一个文件系统上的操作系统镜像文件;若另一个操作系统镜像文件校验成功则进入S6步骤,否则Bootloader启动过程终止,并报错;
S6:将S5步骤校验成功的操作系统镜像文件先在内存中解压缩,然后CPU将跳转到操作系统镜像入口处,运行操作系统镜像文件。
2.如权利要求1所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S4步骤包含以下两个步骤:
S41:若目标硬件板卡收到远程更新上位机发送的命令,则按照命令执行;若未收到命令则目标硬件板卡自动更新旧版本操作系统镜像文件;
S42:若运行选择性启动模块,选择相应的文件系统上的新版本操作系统镜像文件进行启动。
3.如权利要求2所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤的命令包含以下命令;
文件更新命令:根据该命令更新指定文件系统上的指定文件;
查询命令:查询目标硬件板卡上指定文件的保存位置和版本号;
删除命令:删除指定文件系统上的文件;
重启命令:重启目标硬件板卡;
所述文件包括操作系统镜像文件、数据文件、配置文件,目标硬件板卡根据远程更新上位机的命令做出相应的反馈操作。
4.如权利要求2所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤的命令发出后,首先对该命令的命令帧进行校验,如果校验通过,则命令有效,目标硬件板卡将针对不同的命令,回复对应的响应命令;如果校验不通过,目标硬件板卡继续等待新的命令,并将错误码发送远程更新上位机。
5.如权利要求4所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述目标硬件板卡继续等待新的命令的设定为一段时间,若等待时间超过设定的一段时间,则远程更新上位机不再主动发起任何命令,Bootloader将退出远程更新模块;若等待时间不超过设定的一段时间,则目标硬件板卡继续执行远程更新上位机发出的命令。
6.如权利要求2所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤中目标硬件板卡自动更新旧版本操作系统镜像文件包含以下步骤:
S411:检验目标硬件板卡上的两个文件系统内的操作系统镜像文件,若两个文件系统上都没有操作系统镜像文件,则将新版本的操作系统镜像文件写入其中任意一个文件系统中;若只有一个文件系统上有操作系统镜像文件,则将新版本操作系统镜像文件写入该操作系统镜像文件所在的文件系统中;若两个文件系统上都有操作系统镜像文件且版本不同,则选择较旧版本的操作系统镜像文件进行更新;若两个操作系统镜像文件版本相同,则进入S412步骤;
S412:开始对数据文件进行版本比较;若两个数据文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个数据文件,则将新版本操作系统镜像文件写入该数据文件所在的文件系统中;若两个数据文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的数据文件所在的文件系统中;若两个数据文件版本相同,则进入S413步骤;
S413:开始比较配置文件的版本;若两个配置文件都不存在,则将新版本操作系统镜像文件写入其中任意一个文件系统中;若只存在一个配置文件,则将新版本操作系统镜像文件写入该配置文件所在的文件系统中;若两个配置文件都存在且版本不同,则将新版本的操作系统镜像文件写入旧版本的配置文件所在的文件系统中;若两个配置文件版本相同,则将新版本操作系统镜像文件写入其中任意一个文件系统中;
所述的新版本的操作系统镜像文件写入文件系统中后,若文件系统中存在原操作系统镜像文件,则将原操作系统镜像文件删除。
7.如权利要求6所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S411-S413的任一步骤中将新版本操作系统镜像文件写入文件系统中之前先将操作系统镜像文件存入目标硬件板卡的静态存储器中,并对存入的操作系统镜像文件都进行MD5算法校验,若校验正确则写入文件系统中,否则删除存入的操作系统镜像文件并向远程更新上位机报错。
8.如权利要求2所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S42步骤包含以下步骤:
S421:若两个文件系统上都没有操作系统镜像文件,则停止引导操作系统镜像文件启动;若只有一个文件系统上有操作系统镜像文件,则引导该操作系统镜像文件启动;若两个文件系统上都有操作系统镜像文件且版本不同,则引导版本较新的操作系统镜像文件启动;若两个操作系统镜像文件版本相同则进入S422步骤;
S422:开始对数据文件进行版本比较;若两个数据文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个数据文件,则引导该数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件都存在且版本不同,则引导较新版本的数据文件所在的文件系统上的操作系统镜像文件启动;若两个数据文件版本相同则进入S423步骤;
S423:开始对配置文件进行版本比较;若两个配置文件都不存在,则引导其中任意一个文件系统上的操作系统镜像文件启动;若只存在一个配置文件,则引导该配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件都存在且版本不同,则引导较新版本的配置文件所在的文件系统上的操作系统镜像文件启动;若两个配置文件版本相同则引导其中任意一个文件系统上的操作系统镜像文件启动。
9.如权利要求1所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述操作系统镜像文件、数据文件、配置文件的结尾均添加有48字节的版本控制信息,这48字节的第1-16字节为版本号信息,用户自定义字段,用于表示不同的版本号;第17-24字节为TAG1,占8字节,为固定字段,用于标记版本控制信息字段;第25-40字节为MD5校验码,占16字节,用于存放MD5校验码;第41-48字节为TAG2,占8字节,为固定字段,用于标记MD5校验码。
CN202011606584.9A 2020-12-30 2020-12-30 一种基于Bootloader的系统软件选择性启动和远程更新方法 Active CN112612528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011606584.9A CN112612528B (zh) 2020-12-30 2020-12-30 一种基于Bootloader的系统软件选择性启动和远程更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011606584.9A CN112612528B (zh) 2020-12-30 2020-12-30 一种基于Bootloader的系统软件选择性启动和远程更新方法

Publications (2)

Publication Number Publication Date
CN112612528A CN112612528A (zh) 2021-04-06
CN112612528B true CN112612528B (zh) 2022-08-02

Family

ID=75249548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011606584.9A Active CN112612528B (zh) 2020-12-30 2020-12-30 一种基于Bootloader的系统软件选择性启动和远程更新方法

Country Status (1)

Country Link
CN (1) CN112612528B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988253B (zh) * 2021-05-12 2021-09-07 中勍科技有限公司 基于双系统板卡根据槽位自动选择操作系统的方法
CN113468106B (zh) * 2021-07-15 2024-05-17 河南众诚信息科技股份有限公司 一种与平台无关的vr应用文件的存储和解析方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183523A (zh) * 2015-09-29 2015-12-23 国网智能电网研究院 一种dsp程序的远程升级方法
CN111061500A (zh) * 2019-12-31 2020-04-24 宝能汽车有限公司 bootloader程序的更新方法及更新装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838739B2 (en) * 2018-04-19 2020-11-17 Circle Media Labs Inc. Network-connected computing devices and methods for executing operating programs in RAM memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183523A (zh) * 2015-09-29 2015-12-23 国网智能电网研究院 一种dsp程序的远程升级方法
CN111061500A (zh) * 2019-12-31 2020-04-24 宝能汽车有限公司 bootloader程序的更新方法及更新装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Generic Bootloader Architecture Based on Automatic Update Mechanism;Yanbo Kang et al.;《2018 IEEE 3rd International Conference on Signal and Image Processing (ICSIP)》;20190103;全文 *
基于CAN总线的Bootloader研究与实现;王琦;《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》;20170215;第2017年卷(第2期);第C035-303页 *

Also Published As

Publication number Publication date
CN112612528A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
KR100675518B1 (ko) 모듈식 바이오스 업데이트 메커니즘
US7747997B1 (en) Firmware update in electronic devices employing SIM card for saving metadata information
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
US20100169709A1 (en) System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware
US6202091B1 (en) Process and apparatus for initializing a computer from power up
CN112612528B (zh) 一种基于Bootloader的系统软件选择性启动和远程更新方法
US7876469B2 (en) Image forming apparatus and updating method
US6553490B1 (en) Computer system including local computer with capability to automatically update operating system or application program from network server
US20110283274A1 (en) Firmware image update and management
US7512749B2 (en) Safe software revision for embedded systems
CN110730104A (zh) 一种mesh网络设备的多设备批量固件升级的方法
KR102088167B1 (ko) 소프트웨어 업데이트 에이전트 장치 및 이를 통한 패치방법
WO2015127730A1 (zh) 版本文件的运行方法及装置
US11403113B2 (en) Server with system setting data synchronization function
US7360074B2 (en) Method for remote flashing of a bios memory in a data processing system
US20030177345A1 (en) Method for updating a BIOS in a notebook computer
US20190146804A1 (en) Method for synchronization of system management data
CN111552498B (zh) 一种实现显示屏的屏参升级的方法及系统
CN113377425A (zh) Bmc固件生成方法和装置、bmc启动方法和装置及存储介质
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
CN115437674B (zh) 一种固件升级方法、装置、介质及电子设备
KR102541439B1 (ko) 차량 무선 업데이트의 관리 제어 방법 및 장치
CN117492794A (zh) 固件更新方法和装置
CN114625399A (zh) 系统升级方法及相关装置、设备和存储介质
CN110837390A (zh) 一种Zynq平台远程升级方法

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
GR01 Patent grant
GR01 Patent grant