一种嵌入式系统构建方法及存储介质与流程

文档序号:19064296发布日期:2019-11-06 02:08阅读:203来源:国知局
一种嵌入式系统构建方法及存储介质与流程

本发明涉及嵌入式系统,特别是一种嵌入式系统构建方法及存储介质。



背景技术:

嵌入式系统的应用范围日益广泛,涉及到人类生活的诸多方面,如数字通信、信息家电、航空航天、工业过程控制、工程机械控制及军事电子等。嵌入式技术和人们日常生活的方方面面关系越来越紧密,消费电子、计算机、通信一体化趋势日益明显,是计算机领域的一个重要组成部分。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗有严格约束的专用系统。

嵌入式系统一般由嵌入式软硬件组成,并且软件与硬件紧密集成。硬件以嵌入式微处理器为核心,集成存储器和系统专用的输入输出设备;软件包括初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系统特定的一体化软件。

嵌入式系统在使用过程中,用户可能随时对嵌入式系统非法断电,因此需要采用一定的措施,确保嵌入式系统能够稳定可靠运行。现有的对采用emmc存储的嵌入式系统的常规的处理方式是:禁止对嵌入式设备强制断电,例如手机设备,不能强行拆解电池,在系统电池耗尽的时候,通过一定的关机过程,对断电进行处理;其它的嵌入式设备,根文件系统可能直接运行在磁盘中,并且所有的读写操作都会操作磁盘,这样在非法断电的情况下,就大大增加了磁盘损坏的可能性,在磁盘损坏的情况下,还需要采用一定的措施对损坏磁盘进行修复或者隔离。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术不足,提供一种嵌入式系统构建方法及存储介质,使得构建的系统能够稳定可靠运行,并且将根文件系统运行在内存中,提高系统运行速度,同时确保系统的可控性,即使在系统非法断电导致磁盘文件系统出错的情况下,下次系统上电也能够自动对磁盘的文件系统进行自动修复。

为解决上述技术问题,本发明所采用的技术方案是:一种嵌入式系统构建方法,包括以下步骤:

预先制作用于系统启动的存储介质,该存储介质包括四个分区,其中第一个分区用于系统启动的引导文件;第二个分区用于保存库文件和启动配置文件;第三个分区用于保存用户的可执行文件以及对应的配置文件;第四个分区用于存储用户应用读写的数据;

系统引导时,从第一分区加载系统内核镜像和ramdisk内存文件系统到内存运行;

ramdisk内存文件系统中的启动配置脚本将第二、三、四分区自动挂载到根文件系统的子目录下,然后执行被加载的第二分区中的用户自定义启动脚本;

第二分区用户自定义启动脚本链接用户编译的库文件到ramsisk库文件目录;

第二分区用户自定义启动脚本启动第三分区的可执行应用程序;

第三分区可执行应用程序将业务数据存储到第四分区或从第四分区读取数据。

所述第一分区为fat文件系统格式;第二分区、第三分区、第四分区均为ext4文件系统格式。所挂载的三个磁盘分区都是ext4文件系统,系统在上电启动之时,能够自动进行检测和恢复,从而确保了系统启动之后的稳定性和可靠性。

所述第一分区、第二分区、第三分区均为只读分区;所述第四分区为可读写分区。

系统引导时,从第一分区加载系统到内存运行的具体实现过程包括:将系统的初始引导文件拷贝到sd卡中或者烧写到qspi中,系统重新上电之后,从sd卡或者qspi引导系统执行;将u盘中的引导文件拷贝到emmc的第一分区中。

系统从第一分区加载引导文件之后,并不会将第一个分区挂载到文件系统中,所以在系统启动之后,第一个分区会被隐藏,用户不能对该分区进行任何操作,即使非法断电的情况下,也不会对第一分区的文件系统造成破坏。

将ramdisk内存文件系统自动挂载到磁盘的第二、三、四分区时,ramdisk文件首先将第二、第三、第四分区以ext4磁盘文件系统格式挂载到根文件系统下,并且对各个分区进行磁盘检查和修复。根文件系统基于ramdisk,对根文件系统进行读写都在内存中进行,而不会操作emmc磁盘分区,所以非法断电之后,不会对磁盘造成任何影响。根文件系统基于ramdisk,整个根文件系统都在内存中运行,这样系统的运行速度就非常的快。根文件系统基于ramdisk,对根文件系统的操作在下次系统上电之后,会被自动还原,这样整个文件系统对业务数据的读写操作用户完全可以控制,用户升级文件系统的时候,只需升级ramdisk镜像文件,而不需要担心破坏文件系统中的原有磁盘文件数据。

第二分区的用户自定义配置文件在系统启动时,嵌入到ramdisk根文件系统的启动脚本中运行,用户只需重新挂载这个分区为读写状态,就可以修改这个启动配置文件,而无需对整个ramdisk镜像进行重新修改和打包,从而极大地增加了系统的灵活性。

第二分区的用户自定义启动脚本被执行时,将该第二分区的库文件软链接到根文件系统下,并且初始化应用执行所需要的环境变量,最后加载第三分区的用户应用程序执行。

用户编译的库文件通过以软链接的方式,挂载ramdisk根文件系统的库文件目录,这样既极大地减小了ramdisk镜像的大小,用户也可以对自己编译的库文件进行动态增删,这样不但提高了系统的启动速度,也增加了系统动态配置性和灵活性。

对第二和第三分区以只读的方式挂载,这样文件系统就不能对这两个分区进行写操作,从而保护了这两个磁盘分区,只有当用户升级这两个分区的库文件或者应用程序时,才重新挂载这两个分区为读写模式。

第三分区可执行应用程序将业务数据存储到第四分区或从第四分区读取数据后,系统重新上电,从emmc执行初始引导文件,然后加载内核和ramdisk文件系统执行。

应用程序对第四分区进行读写,所有的用户数据都存储在这个分区,自动上电启动时,会自检和恢复这个分区的错误,如果在读写过程中出错导致磁盘文件系统损坏,也可以单独对这个分区进行处理,而不会造成系统不能正常启动,应用程序不能启动执行的情况,用户升级时,也不需要关注用户业务数据磁盘,只需要升级前面几个分区的文件即可,这样就使得系统文件中系统文件以及配置文件和业务数据进行了分离,使得系统更加容易维护。

相应地,本发明还提供了一种嵌入式系统存储介质,其包括四个分区,第一个分区用于系统启动的引导文件;第二个分区用于保存库文件和启动配置文件;第三个分区用于保存用户的可执行文件以及对应的配置文件;第四个分区用于存储用户应用读写的数据;其中,

在系统引导时,从第一分区加载系统到内存运行;

第二、三、四分区挂载到ramdisk内存文件系统的子目录下;

第二分区被加载之后,ramdisk中的启动配置脚本引导第二分区中的用户自定义启动脚本运行;

第二分区用户自定义启动脚本链接用户编译的库文件到ramsisk库文件目录;

第二分区用户自定义启动脚本启动第三分区的可执行应用程序;

第三分区可执行应用程序将业务数据存储到第四分区或从第四分区读取数据。

所述第一分区为fat文件系统格式;第二分区、第三分区、第四分区均为ext4文件系统格式。

所述第一分区、第二分区、第三分区均为只读分区;所述第四分区为可读写分区。

与现有技术相比,本发明所具有的有益效果为:本发明能够保证系统快速、稳定和可靠运行,该方法简单、方便、快捷、可靠,只需预先将引导文件、ramdisk文件系统、库文件以及配置文件准备好之后,通过用户自定义的脚本文件,将预先准备好的所有文件自动地存储到emmc的各个对应的分区中。系统断电重新引导之后,就能快速地加载到内存中运行,并且能够保证系统的稳定性和可靠性。本发明能够确保即使在系统非法断电的情况下,系统也能够在下次启动时自动恢复运行,并且将用户自定义的启动配置文件嵌入到ramdisk根文件系统的启动配置脚本中执行,将用户自己编译的库文件链接到ramdisk根文件系统的库目录下,极大地增加了整个系统的动态配置性和灵活性。

附图说明

图1为用于系统启动的存储介质分区。

图2为构建稳定可靠嵌入式系统的流程。

图3为系统构建之后,嵌入式系统的执行流程。

具体实施方式

如图1所述,本发明中,为了构建稳定可靠的嵌入式系统,在构建嵌入式时,需要预先考虑系统启动存储介质的分布:将用于系统启动的存储介质分成四个分区(分区的大小可以根据每个分区存储的文件大小来定),其中第一个分区用于保存系统启动时的引导文件、第二个分区用于保存用户编译的库文件(例如:qt库文件、opencv库文件等)以及自定义启动配置文件(例如:系统启动时自动执行脚本autostartrcs.sh文件和用户每次登陆终端控制台时自动执行的autostartprofile.sh文件)、第三个分区用于保存用户应用可执行程序和相关配置文件、第四个分区用于存储用户应用程序操作的可读写数据文件;系统启动之后,对普通用户隐藏第一分区,只展现后三个分区,前三个分区为只读分区,只有最后一个分区才能够进行读写操作。

构建稳定可靠的嵌入式系统的方法包括如下步骤:

步骤1、通过pc机将系统初始引导文件拷贝sd或者将初始引导文件通过jtag工具烧写到qspi中,使系统从sd卡或者qspi引导执行;

步骤2、将存储有引导文件、镜像、启动配置文件以及库文件等其它文件的u盘插入系统;

步骤3、重启系统;

步骤4、系统上电之后,首先会从sd卡或者qspi中引导初始引导文件执行;初始引导文件从u盘读取linux内核、ramdisk文件系统执行,执行完成之后,成功进行入到文件系统;在文件系统中,通过系统命令,对emmc磁盘按照图1的磁盘分区进行格式化;格式化分区之后,将u盘中的引导文件、内核、ramdisk文件系统镜像、库文件等其它文件都拷贝到emmc的各个对应磁盘分区(包括步骤5、6);

在ramdisk镜像的/etc/fstab文件中,配置了文件系统启动之后,自动挂载ext4格式的分区到根文件系统中,并且对文件系统的错误进行检查和恢复,在文件系统的启动自动执行脚本文件/etc/init.d/rcs中,嵌入了对第二分区启动脚本文件的调用,这样当用户需要修改系统启动配置的时候,就能够通过修改第二分区的配置文件实现,因为根文件系统中rcs文件,在系统断电之后,会被自动还原为出厂配置;

步骤5、将u盘中的库文件和用户自定义的启动配置文件拷贝到磁盘的第二分区;

在用户自定义配置文件中,配置了将该分区的库文件软链接到ramdisk根文件系统的库文件目录下,并且配置了应用程序启动的相关环境变量,最后配置第三分区的应用程序在系统启动时自动执行;

步骤6、将u盘中的应用程序以及相关配置文件拷贝到第三分区,应用程序执行时,将对第四分区中的数据进行读写操作;

步骤7、系统断电重启,使系统从emmc的第一个磁盘分区中引导初始引导文件、内核和文件系统,并且按照图3的步骤对整个系统进行初始化。

按照步骤4所述,ramdisk文件首先会将第二、第三、第四分区以ext4磁盘文件系统格式挂载到根文件系统下,并且对各个分区进行磁盘检查和修复;

按照步骤4所述,文件系统启动之后,会执行rcs启动脚本文件,从而使得第三分区中的用户自定义启动脚本文件被执行;

按照步骤5所述,第二分区的用户自定义脚本被执行时,会将该分区的库文件软链接到根文件系统下,并且初始化应用执行所需要的环境变量,最后加载第三分区的用户应用程序执行;

按照步骤6所述,第三分区的用户应用对第四分区的中数据进行读写操作。

文件系统启动之后,第一个分区不会挂载,对普通用户隐藏,只展现后三个分区。前三个分区涉及到系统的引导文件、配置、库以及可执行程序,用户不能随便进行修改,只有在升级的时候才能操作前三个分区,由此保证系统的安全性和稳定性。

emmc磁盘分区、以及拷贝u盘文件到emmc对应的磁盘分区,可以由人工进行也可以通过脚本文件自动进行。

通过本发明,能够快速地构建一个稳定可靠的嵌入式系统,即使在系统执行过程中文件系统出错或者对系统非法断电,在系统下次启动时,也能够自动恢复文件系统,从而保证了系统的稳定可靠运行。

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