基于生产镜像的可配置、掉电安全的嵌入式系统部署方法与流程

文档序号:14036488阅读:162来源:国知局
基于生产镜像的可配置、掉电安全的嵌入式系统部署方法与流程

本发明涉及一种基于生产镜像的可配置、掉电安全的嵌入式系统部署方法。



背景技术:

现如今,有很多种嵌入式系统部署方法,但是这些部署方法大多耗时较长、步骤繁琐、方式单一,不利于系统快速安全的部署到产品中。

现有的嵌入式系统部署方法目前存在下述一些缺陷:

(1)部署文件较多:在嵌入式领域,一般的需要依次部署引导程序、内核镜像和文件系统等其他资源。比如嵌入式linux系统的部署就需要部署引导程序,然后通过引导程序命令或者脚本命令将linux内核、文件系统和设备树文件部署到闪存中。

(2)部署过程繁琐:有些部署方式需要手工执行命令,例如命令行部署,用这种方式部署较多的文件时,容易遗漏,而且手动部署效率不高,耗时较长。即使是使用自动化的脚本部署方式也需要事先写好脚本文件,进行脚本正确性测试。这些方式的部署过程都显得很冗长。

(3)部署方案安全性较低:在目前的嵌入式系统部署过程中,都需要保证设备有稳定的电源,部署过程中不能掉电,如果掉电则会造成系统无法启动。例如安卓系统在部署recovery分区中的内容时掉电,就会直接导致设备“变砖”。

(4)部署方案容错性低:在嵌入式系统中,当镜像文件被意外地破坏时,也会造成系统无法启动。例如在嵌入式linux系统中,当存放内核镜像的分区被意外的改写时,系统就无法启动,同时也无法恢复到默认状态。

(5)部署方案灵活性差:现在的嵌入式部署方式对系统存储空间的利用方式单一,例如当系统部署在容量较大的闪存上时,会划分一部分存储空间用于存放系统部署所用的文件,在系统正常部署后,这部分的空间不能被用户所使用。在小容量的闪存上部署时,这种方案就会造成较大的存储空间浪费。另外在目前的部署方式下,系统对闪存的分区都是固定的,如果需要更改分区配置,就需要修改系统源码或者手动进行分区。



技术实现要素:

针对上述问题,本发明的目的是提供一种基于生产镜像的可配置、掉电安全的嵌入式系统部署方法。

为了解决上述技术问题,本发明提供了一种嵌入式系统自动部署方法,包括:

创建一生产镜像,并写入系统存储器内;

在系统初次启动时,所述生产镜像适于在分区配置之后,执行部署配置。

进一步,所述分区配置的方法包括:

通过生成镜像自动实现对文件系统空间进行分区、文件部署、格式化操作。

进一步,所述生产镜像适于采用二进制镜像,其格式包括:

固件区域,其包括引导文件、环境变量文件和bsp文件,且存放各文件的存储区之间不连续,具有一定的间隔;

ifat格式文件区域,ifat格式为一种多文件合并格式,以适于自动化部署,其包含库文件和应用程序;

镜像附加信息区域,其适于对生产镜像逆解析,即

通过逆解析适于还原出生产镜像中的引导文件、bsp文件,通过更新其中的文件以生成新的生产镜像。

进一步,所述通过生成镜像自动实现对文件系统空间进行分区、文件部署、格式化操作,即

在系统初次启动需要对文件系统空间进行分区,将分区配置信息存放在ifat格式文件中,并且在bsp文件启动后通过解析分区配置信息来对文件系统执行分区格式化操作。

进一步,所述生产镜像执行部署配置的方法包括:

系统初次启动包括掉电安全模式部署和掉电易失模式部署,且适于通过环境文件执行掉电安全部署或者掉电易失部署;其中

在所述掉电安全模式中保留ifat区域空间,在拷贝数据时从分区直接提取文件;以及

在所述掉电易失模式中不保留ifat,在拷贝数据时,先将ifat中的文件拷贝到内存,然后分区及格式化,最后从内存中提取文件。

进一步,若系统在启动过程中出现异常,则采用紧急恢复,即

当执行紧急恢复操作时,将生产镜像中的bsp文件恢复到文件系统中相应位置。

进一步,在系统成功部署后,依次生成crc文件、bsp_is_ok文件,以及restored标志字符串;其中

crc标志文件用于判断bsp文件的完整性;

bsp_is_ok文件用于表明文件系统中的bsp包可以使用;

在系统存储器指定位置存储所述restored标志字符串,以作为bsp系统部署完成标志。

又一方面,本发明还提供了一种生产镜像。

所述生产镜像为一单独的适于可裁剪的二进制镜像。

进一步,所述生产镜像的格式包括:

固件区域,其包括引导文件、环境变量文件和bsp文件,且存放各文件的存储区之间不连续,具有一定的间隔;

ifat格式文件区域,ifat格式为一种多文件合并格式,以适于自动化部署,其包含库文件和应用程序;

镜像附加信息区域,其适于对生产镜像逆解析,即

通过逆解析适于还原出生产镜像中的引导文件、bsp文件,通过更新其中的文件以生成新的生产镜像。

第三方面,本发明还提供了一种嵌入式系统。

所述嵌入式系统包括系统存储器;

所述系统存储器适于写入一生产镜像;

在系统初次启动时,所述生产镜像适于在分区配置之后,执行部署配置。

本发明相对于现在的系统部署方式有益效果如下:

(1)本方法只需一个部署文件:系统部署所需要的引导文件、环境文件、bsp文件等被打包成一个生产镜像,通过编程器将生产镜像烧写到产品闪存中,开机的时候会自动将生产镜像中的各个文件部署到文件系统中。

(2)本方法可以完全实现自动化部署:在系统首次开机时会先格式化文件系统,然后将bsp文件部署到系统的启动分区,接着解析出存放在ifat中的各个库文件、应用程序等文件,然后将这些文件部署到系统的用户数据分区。

(3)掉电安全的部署:通过在设备闪存中设置字符串标志和标志文件来保证系统部署的安全性,在系统部署的任意时刻掉电都不会影响造成系统异常,在下次上电时可以再次进行系统部署。在掉电安全的机制下,可以保证bsp镜像一定是安全的,是否需要保证ifat中的文件的安全性可以通过配置来设置。

(4)异常情况紧急恢复的机制:当系统启动过程中检测到系统启动分区中的bsp镜像损坏时,会从镜像分区加载并运行bsp,然后自动从镜像分区中将bsp文件恢复到系统启动分区,也可以在引导程序的命令行中手动执行紧急恢复命令来强制执行紧急恢复操作。

(5)可配置的部署:可配置的系统部署主要包含三个部分:

分区可配置:系统初次启动需要对文件系统空间进行分区,分区配置信息存放在ifat格式文件中,bsp启动后通过解析分区配置信息来对文件系统执行分区格式化操作。

部署方式可配置:通过环境文件可以配置部署方式为掉电安全部署或者掉电易失部署。掉电安全方式可保证所有系统文件都是安全的,掉电易失方式能保证bsp镜像文件是安全的。

(6)可裁剪的生产镜像文件:生产镜像文件中的bsp文件、ifat格式文件部分都可以不存在,生产镜像中可以只包含引导文件部分。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明的可配置掉电安全的嵌入式系统部署工作流程图;

图2是本发明的镜像文件的组织结构示意图;

图3是本发明的ifat格式的主体结构;

图4是本发明中head结构的具体内容;

图5是本发明中head_body的结构;

图6是本发明中head_packet的结构;

图7是本发明中body的结构;

图8是本发明中file_packet的结构。

图9是本发明中附加信息的格式;

图10是本发明中item_body的结构;

图11是本发明中item_packet的结构;

图12是本发明的存储器的分区情况示意图;

图13是本发明的掉电安全模块自动配置流程图;

图14是本发明的掉电易失模块自动部署流程图;

图15是本发明的引导程序自动加载bsp流程图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

本发明的嵌入式系统部署方法涉及到嵌入式领域中系统部署解决方案。在嵌入式开发中,产品开发完成后需要将各种固件和应用程序一起部署到最终产品上。固件一般包括引导程序、内核镜像、文件系统等。引导程序负责初始化硬件和设置软件环境,内核负责管理硬件资源及对上提供统一的接口,文件系统负责管理存储的文件数据信息。

目前常见的几种系统部署方式有:命令行部署、脚本部署、集成开发环境部署等。本发明提供了一种基于生产镜像的嵌入式系统自动部署方法,具有可配置、掉电安全和出错可恢复特点,能够方便快速的完成系统的部署,从而起到简化部署过程的作用。

实施例1

本实施例提供的可配置掉电安全的嵌入式系统自动部署方法上午工作流程如图1所示,其主要步骤包括:

步骤s1,引导程序启动时会进行一系列的校验,如果通过就从文件系统启动分区加载并运行bsp文件;如果失败就从镜像分区加载并运行bsp文件;

步骤s2,bsp文件运行后判断是否是首次部署,如果不是直接启动系统,如果是首次部署则进入系统部署流程;

步骤s3,bsp会根据环境配置来决定使用掉电安全逻辑还是掉电易失部署逻辑;

步骤s4,成功部署后会依次生成crc文件、bsp_is_ok文件、“restored”标志字符串。

在本实施例中进一步说明生产镜像文件的构成和镜像文件自动部署原理:

关于镜像文件组织结构设计,如图2所示,图2是本发明的镜像文件的组织结构示意图。

其中,boot文件为系统的引导文件。

env文件为供引导程序使用的环境配置文件。

bsp文件为系统内核镜像文件,也可以简称为bsp镜像。

变量存储块是以闪存块为单位保存的变量,放置在ifat格式文件之前,与后者连续存储。

ifat格式文件包含了所有的库文件、应用程序文件和其他文件,这些文件以专有的ifat格式组织。

填充字符共有64字节,目前全部填充为0xaa。

镜像文件附加信息表示的是镜像文件尾部存放的一些关于文件备注的信息。

关于ifat文件格式设计,图3说明了ifat格式的主体结构。本实施例中,ifat格式结构分为head和body两大部分,每部分都有自己独立的校验机制。

关于head部分

head部分包含了必要的ifat信息以及body所需的信息。图4说明了head结构的具体内容。

其中,head_len:表示ver、head_body和packet_num三部分的长度。

ver:ifat的版本号,包括主版本号和一级子版本号。例如:v1.1,主版本号为1,一级子版本号为01,保存的值为101。

packet_num:head_body中信息项的数目。

head_body:包含了所有的head信息项。

chk_code:校验码,校验码的计算范围从head的开始到校验码之前,采用crc32校验。

head_body部分包含了所有的head信息项,head_body由多个head_packet(头信息项包)组成。图5表示了head_body的结构。

head_packet头信息项包是head_body部分的主体结构,一个head_packet对应一项信息。图6表示了head_packet的结构。

pkt_name_len:pkt_name部分的长度。

pkt_name:头信息项包的名称。

pkt_data_type:头信息项包的数据的类型。

pkt_data_len:头信息项包的数据的长度。

pkt_data:头信息项包的数据。

关于body部分

body部分包含了所有的文件,body部分由file_num(文件数)个file_packet(文件包)组成。图7表示了body的结构。

file_packet文件包是文件数据的主体结构,一个file_packet对应一个真实的文件。图8表示file_packet的结构。

file_name_len:path_name的总长度。

path_name:目标机中的文件名和路径,如果以“/”结尾,表示该文件包只是一个路径。

file_attr:文件属性,保留。

file_len:file_data的总长度。如果该文件包只是一个路径,file_len为0。

file_data:文件数据,二进制格式。如果是路径,则没有该项。

chk_code:校验码,计算范围应从file_packet的开始到校验码之前,采用crc32校验。

关于附加信息格式设计:

镜像文件附加信息是整个镜像文件的索引,主要索引内容包括:

启动文件的名称

启动文件的起始地址

启动文件的长度

环境文件的起始地址

环境文件的长度

从外部读取到的环境文件的长度

bsp文件的名称

bsp文件的起始地址

bsp文件的长度

ifat格式文件的起始地址

引导方式,以字符形式表示

存储类型,以字符形式表示

存储介质开始预留的长度

图9表示了附加信息的格式。

在图中add_on_len:item_num和item_body的长度,在附加信息开头和结尾重复出现。

item_num:附加信息项的数目。

item_body:所有附加信息项的集合。

chk_code:校验码,计算范围从附加信息开始到校验码之前,采用crc32校验。

item_body部分包含了所有的附加信息项,item_body由item_num(附加信息项)个item_packet(附加信息项包)组成。图10表示了item_body的结构。

item_packet附加信息项包是附加信息项的主体结构,一个item_packet对应一个附加项目。图11表示了item_packet的结构。

item_name_len:item_name的总长度。

item_name:附加信息项的名称。

item_type:附加信息项的数据的类型。

item_data_len:item_data的总长度。

item_data:附加信息项内容。

chk_code:校验码,计算范围应从item_name_len的开始到校验码之前,采用crc32校验。

在本实施中实现镜像文件自动部署原理描述如下:

镜像文件自动部署包括bsp启动后系统部署和引导程序加载bsp两部分。

具体的,关于bsp启动后系统部署的原理概述。

判断ifat区域是否存在:当文件系统偏移与ifat所在的块相近时,表示ifat不存在。

判断首次部署:当没有restored标志,并且分区不符合ifat中的配置时,表示要首次部署。

首次部署:首次部署分为掉电安全和掉电易失两种模式。根据ifat中的配置,判断是否需要掉电安全。掉电安全模式中保留ifat,在拷贝数据时从分区直接提取文件。掉电易失模式中不保留ifat,在拷贝数据时,先将ifat中的文件拷贝到内存,然后分区及格式化,最后从内存中提取文件。

紧急恢复:紧急恢复是只部署bsp文件。当没有restored标志,并且并非首次部署时,bsp需要从镜像分区中恢复bsp到文件系统中。

在本实施中,关于系统存储器例如但不限于采用闪存。

关于存储器分区介绍

存储器的分区情况如图12所示。

其中标志字符串及标志文件

restored标志

保存位置:该标志保存在ifat镜像所在地址前的第二个块。

功能作用:当存在该标志时,表明已经部署完成,如果bsp检测不到这个标志,则需要重新部署。如果需要紧急恢复,则可以在u-boot中删除该标志。

crc标志文件

保存位置:该标志保存在sd卡的fat32分区下。

功能作用:该文件用于判断bsp的完整性。该文件中的内容格式为“bsp:bsp长度:crc校验值”。

bsp_is_ok标志文件

保存位置:该标志保存在sd卡的fat32分区下

功能作用:该标志文件存在,则表明文件系统中的bsp包可以使用。如果u-boot

检测到该文件以及restored标志,则从文件系统加载bsp,否则,则从镜像分区中加载bsp包。

镜像文件两种自动部署流程

掉电安全自动部署流程如图13所示,掉电易失自动部署流程和图14所示。

通过ifat中的配置,来判断是否掉电安全,以及分区的方式。

通过检查磁盘中的分区是否符合ifat中的配置,来判断是否首次部署。

ifat的位置需要bsp到指定的位置去读取。

在本实施例中,引导程序自动加载bsp原理如下:

引导程序启动时,如果在存储器的指定位置没有正确的环境变量,就会加载默认环境变量;否则,加载存储器中指定位置的环境变量。

引导程序进行一系列的校验,如果通过就从文件系统加载并运行bsp;如果失败就从镜像分区加载并运行bsp。

当bsp损坏无法运行时或者用户执行紧急恢复命令时将进行紧急恢复操作,紧急恢复操作只会恢复bsp文件。

关于引导程序自动加载bsp流程如图15所示。

整个系统部署方法通过初次启动、紧急恢复两部分实现了系统自动化快速部署。系统启动时会进行一系列的检查,如果是初次启动则根据ifat中的配置格式化文件系统,将生产镜像中的bsp、应用程序等文件部署到文件系统中。如果使用掉电安全机制,则在部署任意阶段设备掉电情况下,可以再次部署而不会有异常,如果使用的是掉电易失方式则部署后可以节省出存放ifat文件那部分存储空间。同时在启动过程中如果有异常情况,也可以紧急恢复bsp文件,保证系统可以正常启动。

实施例2

在上述实施例1基础上,本实施例2还提供了一种嵌入式系统。

所述嵌入式系统包括系统存储器;

所述系统存储器适于写入一生产镜像;

在系统初次启动时,所述生产镜像适于在分区配置之后,执行部署配置。

其中,本嵌入式系统适于采用实施例1所述的嵌入式系统自动部署方法对本嵌入式系统进行自动部署。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1