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

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

【技术实现步骤摘要】
一种基于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:若两个文件系统上都没有操作系统镜像文件,则停止引导操作本文档来自技高网
...

【技术保护点】
1.一种基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放多个文件,该些文件包括:操作系统镜像文件、数据文件、配置文件;/n当目标硬件板卡上通电后启动Bootloader,Bootloader选择运行远程更新模块或选择运行选择性启动模块,若Bootloader启动后在设定的一段时间内收到远程更新上位机发起的通信信号,则目标硬件板卡运行远程更新模块;若Bootloader启动后在设定的一段时间内未收到远程更新上位机发起的通信信号则目标硬件板卡运行选择性启动模块。/n

【技术特征摘要】
1.一种基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,在目标硬件板卡上设置有两个文件系统,两个文件系统中均存放多个文件,该些文件包括:操作系统镜像文件、数据文件、配置文件;
当目标硬件板卡上通电后启动Bootloader,Bootloader选择运行远程更新模块或选择运行选择性启动模块,若Bootloader启动后在设定的一段时间内收到远程更新上位机发起的通信信号,则目标硬件板卡运行远程更新模块;若Bootloader启动后在设定的一段时间内未收到远程更新上位机发起的通信信号则目标硬件板卡运行选择性启动模块。


2.如权利要求1所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,Bootloader启动后包括以下步骤:
S1:Bootloader执行完成必要的CPU初始化和硬件初始化;
S2:若目标硬件板卡在设定的一段时间内接收到来自远程更新上位机的通信信号,则运行远程更新模块;否则运行选择性启动模块;
S3:判断目标硬件板卡上是否存在两个文件系统,若两个文件系统都存在;则进入S4步骤;否则停止;
S4:若目标硬件板卡运行了远程更新模块,通过选择对其中一个文件系统上的相应的文件进行操作;该文件包括操作系统镜像文件、数据文件、配置文件;
若目标硬件板卡运行了选择性启动模块,通过选择对其中一个文件系统上的相应的操作系统镜像文件进行启动;
S5:对S4步骤相应的文件系统上的操作系统镜像文件进行MD5校验,若校验成功,则进入S6步骤;若校验失败,则校验另一个文件系统上的操作系统镜像文件;若另一个操作系统镜像文件校验成功则进入S6步骤,否则Bootloader启动过程终止,并报错;
S6:将S5步骤校验成功的操作系统镜像文件先在内存中解压缩,然后CPU将跳转到操作系统镜像入口处,运行操作系统镜像文件。


3.如权利要求2所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S4步骤包含以下两个步骤:
S41:若目标硬件板卡收到远程更新上位机发送的命令,则按照命令执行;若未收到命令则目标硬件板卡自动更新旧版本操作系统镜像文件;
S42:若运行选择性启动模块,选择相应的文件系统上的新版本操作系统镜像文件进行启动。


4.如权利要求3所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤的命令包含以下命令;
文件更新命令:根据该命令更新指定文件系统上的指定文件;
查询命令:查询目标硬件板卡上指定文件的保存位置和版本号;
删除命令:删除指定文件系统上的文件;
重启命令:重启目标硬件板卡;
所述文件包括操作系统镜像文件、数据文件、配置文件,目标硬件板卡根据远程更新上位机的命令做出相应的反馈操作。


5.如权利要求3所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤的命令发出后,首先对该命令的命令帧进行校验,如果校验通过,则命令有效,目标硬件板卡将针对不同的命令,回复对应的响应命令;如果校验不通过,目标硬件板卡继续等待新的命令,并将错误码发送远程更新上位机。


6.如权利要求5所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述目标硬件板卡继续等待新的命令的设定为一段时间,若等待时间超过设定的一段时间,则远程更新上位机不再主动发起任何命令,Bootloader将退出远程更新模块;若等待时间不超过设定的一段时间,则目标硬件板卡继续执行远程更新上位机发出的命令。


7.如权利要求3所述的基于Bootloader的系统软件选择性启动和远程更新方法,其特征在于,所述S41步骤中目标硬件板卡自...

【专利技术属性】
技术研发人员:宋志坚潘雷丁辉唐俊冯虎张彬刘辉钟莉娟
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1