发明内容
本发明的目的在于提供一种嵌入式设备根文件系统的处理系统和处理方法,其简化了根文件系统的处理过程,具有很好的易操作性。
为实现本发明目的而提供的一种嵌入式设备根文件系统的处理系统,包括至少一带有标准接口的嵌入式设备,以及可通过标准接口接入到嵌入式设备的一便携式装置;嵌入式设备包括根文件系统;
所述嵌入式设备,包括第一检测更新模块,用于在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文件系统信息;
所述便携式装置,包括标志位模块和第一更新处理模块;
其中:
所述标志位模块,用于通过标志位标志所述便携式装置接入到嵌入式设备时,是否需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件;
所述第一更新处理模块,用于在便携式装置接入到嵌入式设备后,根据嵌入式设备的读取请求,发送根文件系统信息及其镜像文件到嵌入式设备。
较优地,所述第一检测更新模块,包括第一接口检测模块,标志位检测模块,第一更新判断模块,第一镜像文件覆盖写入模块,第一读取判断模块,第一更新版本号模块;
其中:
所述第一接口检测模块,用于检测是否有便携式装置从标准接口接入到嵌入式设备,并在检测到便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;
所述标志位检测模块,用于检测便携式装置的标志位;
第一更新判断模块,用于便携式装置初始化完成后,在检测便携式装置中的更新标志位为1时,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与嵌入式设备根文件系统的版本号进行比较,判断是否需要更新嵌入式设备根文件系统;
所述第一镜像文件覆盖写入模块,用于在第一更新判断模块判断需要更新根文件系统时,向便携式装置发出镜像文件读取请求,并在接收到所述便携式装置发送来的镜像文件时,依次将镜像文件写入并覆盖更新嵌入式设备的根文件系统;
所述第一读取判断模块,用于在第一镜像文件覆盖写入模块依次读取镜像文件的过程中,判断是否已更新根文件系统完成;所述第一更新版本号模块,用于在第一读取判断模块判断已更新根文件系统完成后,将镜像文件对应的根文件系统的版本号写入嵌入式设备中。
较优地,所述第一更新处理模块,包括第一镜像文件存储模块,初始化模块,第一版本号发送模块,第一镜像文件发送模块;
其中:
所述第一镜像文件存储模块,用于存储用于更新所述嵌入式设备的根文件系统的新版本的根文件系统的镜像文件;
所述初始化模块,用于在所述便携式装置通过标准接口接入到设备并上电后,根据设备发送来的初始化指令,对便携式装置进行初始化;
所述第一版本号发送模块,用于根据接收到的嵌入式设备的版本号读取请求,将镜像文件对应的根文件系统的版本号发送给所述嵌入式设备;
所述第一镜像文件发送模块,用于根据嵌入式设备的镜像文件读取请求,从第一镜像文件存储模块中依次读取根文件系统的镜像文件,发送给嵌入式设备。
较优地,所述嵌入式设备根文件系统的处理系统,还包括至少一镜像设备,所述镜像设备包括标准接口,所述便携式设备可通过标准接口接入到所述镜像设备;
所述镜像设备包括第二检测更新模块和标志位改写模块;
其中:
所述第二检测更新模块,用于在便携式装置连接到所述镜像设备后,对便携式装置中的根文件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜像设备中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根文件系统的文件和根文件系统信息;
所述标志位改写模块,用于在第二检测更新模块更新替换完成根文件系统的文件和根文件系统信息后,向便携式装置发出标志位改写请求,将标志位模块中的更新标志位改写;
所述便携式装置还包括第二更新处理模块,用于在便携式装置接入到镜像设备后,根据镜像设备的读取请求,发送根文件系统信息及其镜像文件到镜像设备。
较优地,第二检测更新模块,包括第二接口检测模块,第二镜像文件存储模块,第二更新判断模块,第二镜像文件覆盖写入模块,第二读取判断模块,第二更新版本号模块;
其中:
所述第二接口检测模块,用于检测是否有便携式装置从标准接口接入到镜像设备,并在检测以便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;
所述第二镜像文件存储模块,用于存储用于更新所述便携式装置的根文件系统的新版本的根文件系统的镜像文件;
第二更新判断模块,用于便携式装置初始化完成后,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与镜像设备根文件系统的版本号进行比较,判断是否需要更新便携式装置的根文件系统的镜像文件;
第二镜像文件覆盖写入模块,用于在第二更新判断模块判断需要更新根文件系统时,读取所述第二镜像文件存储模块中的新版本的根文件系统的镜像文件,并依次将镜像文件写入并覆盖更新便携式装置中的根文件系统;
第二读取判断模块,用于在第二镜像文件覆盖写入模块依次读取镜像文件的过程中,判断是否已更新根文件系统完成;
第二更新版本号模块,用于在第二读取判断模块判断已更新根文件系统完成后,将所述新版本的镜像文件对应的根文件系统的版本号写入便携式装置中。
为实现本发明目的还提供一种嵌入式设备根文件系统的处理方法,包括如下步骤:
步骤A,便携式装置的更新标志位标志所述便携式装置接入到嵌入式设备时,是否需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件;
步骤B,在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文件系统信息。
较优地,所述嵌入式设备根文件系统的处理方法,还包括如下步骤:
步骤A’,镜像设备在便携式装置连接到所述镜像设备后,对便携式装置中的根文件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜像设备中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根文件系统的文件和根文件系统信息;
步骤B’,镜像设备更新替换完成根文件系统的文件和根文件系统信息后,向便携式装置发出标志位改写请求,将更新标志位改写。
本发明的有益效果是:本发明的嵌入式设备根文件系统的处理系统和处理方法,其简化了根文件系统的处理过程,具有很好的易操作性,能够快速构建和更新根文件系统,节省网络接口设备的资源和费用,扩大了嵌入式设备的应用范围。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的嵌入式设备根文件系统的处理系统和处理方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
根文件系统是Linux操作系统中一种特殊的文件系统,是Linux操作系统引导启动时,默认使用的文件系统。
一般而言,根文件系统就是Linux系统第一个mount(即指示操作系统使文件系统在指定位置(安装点)可用,可以用mount命令构建由目录和安装文件(file mounts)组成的其他文件树)的文件系统。
根文件系统包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。
其中一般都包括这样一些子目录:
/etc/,/dev/,/usr/,/usr/bin/,/bin/,/var/等。
/etc/目录主要含有一些系统配置文件;
/dev/含有设备特殊文件,用于使用文件操作语句操作设备;
/usr/存放库函数、手册和其它一些文件;
/bin/存放执行程序;
/var/用于存放系统运行时可变的数据或者是日志等信息。
本发明实施例的嵌入式设备根文件系统的处理系统,如图2所示,包括至少一带有标准接口的嵌入式设备1,以及可通过所述标准接口接入到嵌入式设备1的一便携式装置2;
所述嵌入式设备1包括根文件系统,根文件系统作为一种文件系统,启动嵌入式设备工作。
所述嵌入式设备1,如图3所示,包括第一检测更新模块11,用于在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文件系统信息。
所述根文件系统信息,在本发明实施例中,为根文件系统的版本号,但其也可以是文件系统大小等各种文件信息。
较佳地,第一检测更新模块11包括第一接口检测模块111,标志位检测模块112,第一更新判断模块113,第一镜像文件覆盖写入模块114,第一读取判断模块115,第一更新版本号模块116;
其中:
所述第一接口检测模块111,用于检测是否有便携式装置从标准接口接入到嵌入式设备,并在检测到便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;
所述标志位检测模块112,用于检测便携式装置的标志位;
第一更新判断模块113,用于便携式装置初始化完成后,在检测便携式装置中的更新标志位为1时,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与嵌入式设备根文件系统的版本号进行比较,判断是否需要更新嵌入式设备根文件系统;
所述第一镜像文件覆盖写入模块114,用于在第一更新判断模块113判断需要更新根文件系统时,向便携式装置发出镜像文件读取请求,并在接收到所述便携式装置发送来的镜像文件时,依次将镜像文件写入并覆盖更新嵌入式设备的根文件系统;
所述第一读取判断模块115,用于在第一镜像文件覆盖写入模块114依次读取镜像文件的过程中,判断是否已更新根文件系统完成;
所述第一更新版本号模块116,用于在第一读取判断模块115判断已更新根文件系统完成后,将镜像文件对应的根文件系统的版本号写入嵌入式设备中。
所述便携式装置2,如图4所示,包括标志位模块21和第一更新处理模块22;
其中:
所述标志位模块21,用于通过标志位标志所述便携式装置接入到嵌入式设备时,是否需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件。
所述标志位的值为0或1,表示FALSE或TRUE。当标志位为1时,需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件;当标志为0时,则不需要。
所述第一更新处理模块22,用于在便携式装置接入到嵌入式设备后,根据嵌入式设备的读取请求,发送根文件系统信息及其镜像文件到嵌入式设备。
较佳地,所述第一更新处理模块22,包括第一镜像文件存储模块221,初始化模块222,第一版本号发送模块223,第一镜像文件发送模块224;
其中:
所述第一镜像文件存储模块221,用于存储用于更新所述嵌入式设备的根文件系统的新版本的根文件系统的镜像文件;
所述初始化模块222,用于在所述便携式装置通过标准接口接入到设备并上电后,根据设备发送来的初始化指令,对便携式装置进行初始化;
所述第一版本号发送模块223,用于根据接收到的嵌入式设备的版本号读取请求,将镜像文件对应的根文件系统的版本号发送给所述嵌入式设备;
所述第一镜像文件发送模块224,用于根据嵌入式设备的镜像文件读取请求,从第一镜像文件存储模块中依次读取根文件系统的镜像文件,发送给嵌入式设备。
本发明实施例的标准接口,可以是SD卡的标准接口,对应的便携式装置2为SD卡(Security Digital Card);也可以是USB接口,对应的便携式装置2为U盘(UniversalSerial Bus Flash Disk,通用串行总线闪存盘);也可以是CF卡标准接口,对应的便携式装置2为CF(Compact Flash Card)等。
较佳地,本发明实施例的嵌入式设备根文件系统的处理系统,如图5所示,还包括至少一镜像设备3,所述镜像设备3包括至少一标准接口,所述便携式设备可通过标准接口接入到所述镜像设备3。
所述镜像设备3包括第二检测更新模块31和标志位改写模块32;
其中:
所述第二检测更新模块31,用于在便携式装置连接到所述镜像设备后,对便携式装置中的根文件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜像设备中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根文件系统的文件和根文件系统信息;
所述标志位改写模块32,用于在第二检测更新模块31更新替换完成根文件系统的文件和根文件系统信息后,向便携式装置发出标志位改写请求,将标志位模块中的更新标志位改写。
较佳地,所述第二检测更新模块31,包括第二接口检测模块311,第二镜像文件存储模块312,第二更新判断模块313,第二镜像文件覆盖写入模块314,第二读取判断模块315,第二更新版本号模块316;
其中:
所述第二接口检测模块311,用于检测是否有便携式装置从标准接口接入到镜像设备,并在检测以便携式装置接入时,启动便携式装置;
所述第二镜像文件存储模块312,用于存储用于更新所述便携式装置的根文件系统的新版本的根文件系统的镜像文件;
第二更新判断模块313,用于便携式装置初始化完成后,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与镜像设备根文件系统的版本号进行比较,判断是否需要更新便携式装置的根文件系统的镜像文件;
第二镜像文件覆盖写入模块314,用于在第二更新判断模块313判断需要更新根文件系统时,读取所述第二镜像文件存储模块312中的新版本的根文件系统的镜像文件,并依次将镜像文件写入并覆盖更新便携式装置中的根文件系统;
第二读取判断模块315,用于在第二镜像文件覆盖写入模块314依次读取镜像文件的过程中,判断是否已更新根文件系统完成;
第二更新版本号模块316,用于在第二读取判断模块313判断已更新根文件系统完成后,将所述新版本的镜像文件对应的根文件系统的版本号写入便携式装置中。
如图4所示,所述便携式装置2还包括第二更新处理模块23,用于在便携式装置接入到镜像设备后,根据镜像设备的读取请求,发送根文件系统信息到镜像设备。
所述镜像设备3可以是PC机、服务器、小型计算机、大型计算机或者其他能够存储根文件系统并接入便携式装置2(如SD卡或者U盘)的计算机设备。
相应地,本发明还提供一种嵌入式设备根文件系统的处理方法,如图6所示,包括如下步骤:
步骤A,便携式装置2的更新标志位标志所述便携式装置2接入到嵌入式设备1时,是否需要利用便携式装置2中的根文件系统的镜像文件更新嵌入式设备1中的根文件系统的文件;
步骤B,在便携式装置2连接到所述嵌入式设备1后,检测便携式装置2中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备1中的根文件系统进行判断比较,并根据判断结果从便携式装置2中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备1中的根文件系统的文件和根文件系统信息。
较佳地,所述步骤B包括下列步骤:
步骤S1,在便携式装置2从标准接口接入到嵌入式设备1后,嵌入式设备1检测到便携式装置2接入,向便携式装置发出初始化指令,启动便携式装置2初始化过程;
步骤S2,便携式装置2根据设备发送来的初始化指令,进行初始化;
步骤S3,在初始化完成后,嵌入式设备1检测便携式装置2中的更新标志位为1时,向便携式装置2发出版本号读取请求;
步骤S4,便携式装置2读取根文件系统的版本号并发送给嵌入式设备1;
步骤S5,嵌入式设备1得到便携式装置2的根文件系统的版本号后,将所述版本号与嵌入式设备1中存储的镜像文件的版本号进行比较,判断是否需要更新根文件系统;如果嵌入式设备1中根文件系统的版本号高于便携式装置2中存储的镜像文件的版本号,则结束返回;否则,进入下一步骤;
步骤S6,当嵌入式设备1中根文件系统的版本号低于便携式装置2中存储的镜像文件的版本号,判断需要更新嵌入式设备1中的根文件系统后,嵌入式设备1向便携式装置2发出镜像文件读取请求,从便携式装置2中存储的新版本的根文件系统的镜像文件中依次读取镜像文件,发送给嵌入式设备1;
步骤S7,嵌入式设备1在接收到所述便携式装置2发送来的镜像文件时,依次将镜像文件写入并覆盖更新嵌入式设备1的根文件系统;
步骤S8,嵌入式设备1判断是否已经读取完成全部镜像文件;如果否,则还没有读取完成,返回步骤S7;否则,已经读取完成,进入下一步骤;
步骤S9,嵌入式设备1在判断已经读取完成全部镜像文件后,将便携式装置2的镜像文件的版本号写入嵌入式设备1。
较佳地,所述嵌入式设备根文件系统的处理方法,如图7所示,还包括如下步骤:
步骤A’,镜像设备3在便携式装置2连接到所述镜像设备3后,对便携式装置2中的根文件系统的镜像文件与镜像设备3中的根文件系统进行判断比较,并根据判断结果从镜像设备3中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置2中的根文件系统的文件和根文件系统信息;
步骤B’,镜像设备3更新替换完成根文件系统的文件和根文件系统信息后,向便携式装置2发出标志位改写请求,将更新标志位改写。
较佳地,所述步骤A’包括下列步骤:
步骤S1’,在便携式装置2从标准接口接入到镜像设备3后,镜像设备3检测到便携式装置2接入,向便携式装置发出初始化指令,启动便携式装置2初始化过程;
步骤S2’,便携式装置2根据设备发来的初始化指令,进行初始化;
步骤S3’,在初始化完成后,镜像设备3发出版本号读取请求,得到便携式装置2中根文件系统的镜像文件的版本号;
步骤S4’,镜像设备3得到便携式装置2的根文件系统的版本号后,将所述版本号与镜像设备3中存储的镜像文件的版本号进行比较,判断是否需要更新根文件系统;如果镜像设备3中根文件系统的版本号低于便携式装置2中存储的镜像文件的版本号,则结束返回;否则,进入下一步骤;
步骤S5’,当镜像设备3中根文件系统的版本号高于便携式装置2中存储的镜像文件的版本号,判断需要更新便携式装置2中的根文件系统后,从镜像设备3中存储的新版本的根文件系统的镜像文件中依次读取镜像文件,依次将镜像文件写入并覆盖更新便携式装置2中的根文件系统;
步骤S6’,镜像设备3判断是否已经读取完成全部镜像文件;如果否,则还没有读取完成,返回步骤S5’;否则,已经读取完成,进入下一步骤;
步骤S7’,镜像设备3在判断已经读取完成全部镜像文件后,将镜像设备3的镜像文件对应的根文件系统的版本号写入便携式装置2中。
如图8所示,下面以一种嵌入式设备1为例,进一步详细说明本发明的嵌入式设备根文件系统的处理系统和办法。其中,所述嵌入式设备包括NAND Flash,NAND Flash被划分为五个分区:分区1、分区2、分区3、分区4、分区5。
分区1存放启动加载程序(Boot Loader)模块,该模块是系统加电后由微处理器加载与运行的模块,其功能是初始化硬件资源并加载和启动Linux操作系统内核(LinuxKernel);启动加载程序模块的实现依赖于具体所使用的硬件体系结构。
分区2用于存放Linux操作系统内核(Linux Kernel)模块,该模块管理嵌入式系统内各种硬件和软件资源,为应用程序提供运行环境。
分区3用于存储YAFFS2根文件系统。
所述YAFFS2根文件系统,可以是利用JFFS2构建YAFFS2根文件系统;
JFFS2(Journalling Flash File System Version 2,闪存日志型文件系统2)是一种根据Nor Flash而设置的根文件系统,本发明实施例中,使用它是因为在没有YAFFS2根文件系统镜像前启动Linux Kernel时有一个可以使用的根文件系统,然后构建YAFFS2根文件系统。
YAFFS2是根据NAND Flash的特点所设计的日志型根文件系统。如图3所示,YAFFS2根文件系统区别于其他根文件系统之处在于每一页数据后会有标示信息和错误检查和纠正(Error Correcting Code,ECC)校验信息。2048字节将产生24个字节的ECC校验码。
分区4为备用空间。
分区5为第一检测更新模块。
如图9所示,下面以SD卡更新嵌入式设备的更新YAFFS2根文件系统为例,进一步详细说明本发明的嵌入式设备根文件系统的处理方法,包括如下步骤:
步骤S100,系统上电后,嵌入式设备1加载启动程序(Boot Loader)并运行,检测是否有SD卡接入;
在系统上电后,系统进行复位操作,CPU将NAND FLASH中前2KB代码拷贝到SDRAM中执行,初始化系统时钟CPU、BUS时钟等,配置SDRAM和FLASH控制器,设置堆栈寄存器,并跳转将BOOT LOADER代码从NAND FLASH中拷贝到SDRAM中,再初始化UART;其后检测是否有SD卡接入到嵌入式设备1中。
步骤S200,如果检测不到SD卡接入到嵌入式设备1中,则加载Linux Kernel到SDRAM中,跳转到Linux Kernel起始地址执行,进入正常启动模式;否则,执行步骤S300;
步骤S300,根据嵌入式设备发送来的初始化指令,对SD卡进行初始化;
在检测到有SD卡接入到系统后,根据嵌入式设备发送来的初始化指令,对SD卡进行初始化并对FAT文件系统进行初始化。
步骤S400,在初始化成功后,则查找是否存在更新的镜像文件,即检测SD卡的更新标志位;
步骤S500,如果查找不到更新的镜像文件,即更新标志位=0,则结束返回;否则,更新标志位=1,从SD卡中读取镜像文件到SDRAM并进行CRC校验;
步骤S600,如果校验不正确,则结束返回;否则,比较镜像文件版本号大小,确定版本是否更新;
如果根文件系统镜像文件版本号大于嵌入式设备中的根文件系统文件版本号,则版本需要更新;否则,嵌入式设备中的根文件系统不需要更新,结束返回;
步骤S700,如果需要更新根文件系统,则关闭嵌入式设备1中的NAND FLASH控制器自身ECC校验功能,然后读取镜像文件并写入到嵌入式设备的根文件系统中,覆盖原来的根文件系统。
关闭Nand Flash控制器的硬件ECC校验功能,因为YAFFS2使用自身的ECC校验算法对每一页的数据进行校验。
将Nand Flash控制器中控制该功能的寄存器的值写入关闭的值即可,不同的NandFlash控制器其值可能会不同。
读取存储在SD卡中的镜像文件到内存,这样做避免了多次读取操作,加快了更新速度。
读取镜像文件的步骤,具体地,包括如下步骤:
步骤S710,读取FAT根目录第一个扇区的内容(目录项)。
步骤S720,遍历目录项中的文件扩展名,如果找到所需的扩展名的目录项并且该文件有效,则执行步骤S740,否则执行步骤S730。
步骤S730,如果已经到达FAT根目录结束扇区,则结束返回;否则继续读取下一扇区,重复步骤S720。
步骤S740,判断文件名是否为所需,如果是,则读取该文件的首簇号和文件长度;否则执行步骤S720。
步骤S750,依据首簇号和文件长度读取文件。
步骤S760,对镜像文件的数据重新计算CRC-32校验码。
步骤S770,读取SD卡的4个字节的校验码,并与重新计算得到的CRC校验码进行对比检测;
如果该校验码与头部的4个字节的校验码相同则说明镜像文件没有遭到破坏,去除该校验码,转至步骤S790;
否则镜像文件数据遭到破坏转至步骤S780。
步骤S780,镜像文件数据遭到破坏,必须重新构建,结束返回。
步骤S790,从内存中依次读入一页的数据(根文件系统自身的数据+标示信息和校验码),将读到的数据依次写入到嵌入式设备1的Nand Flash中,并做出校验。
步骤S7100,判断是否将所有的数据写入到嵌入式设备1的Nand Flash中,如果没有则跳转到步骤S790;否则进入步骤S780。
步骤S800,在全部镜像文件成功写入到嵌入式设备1后,将新的镜像文件版本号写入到嵌入式设备1的指定位置。
步骤S900,根文件系统更新完成,嵌入式设备1成功的完成了一次根文件系统更新;然后加载Linux Kernel到SDRAM中,跳转到Linux Kernel起始地址执行,进入正常启动模式。
图10为本发明实施例SD卡接入检测电路实现示意图,其采用SD_DET引脚作为SD卡接入检测,其程序示例代码如下:
BOOL sd_detect(void)
{
gpio_configure_input(SD_DET);
If(gpio_read_input (SD_DET)==LOW)
{
return TRUE;//SD卡已经插入
}
else
{
return FALSE;//SD卡未插入
}
}
本发明提供一种方便、快捷的更新根文件系统的有效处理方法,本发明不必运行TCP/IP协议,不必配备网络接口,少了网络下载的过程,同时也不需要启动Linux Kernel后再进行升级(与传统网络下载方式相比),因此更新速度更快、使用更简单,本发明达到了简化操作、节约成本,扩大嵌入式系统应用范围的目的。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。