专利名称:嵌入式设备根文件系统的处理系统和处理方法
技术领域:
本发明涉及计算机嵌入式系统处理技术领域,特别是涉及一种嵌入式设备根文件 系统的处理系统和处理方法。
背景技术:
嵌入式设备需要Nand Flash (Nand型闪存)或Nor Flash (Nor闪存),来存储启动 加载程序(Boot Loader)、嵌入式操作系统和根文件系统。
根文件系统包括YAFFSl,YAFFS2根文件系统或者ROMFS,JFFS2,NFS, CRAMFS根文 件系统等。
但是,现有的对根文件系统的处理的方法各种各样的缺点和局限性。
以 YAFF2 根文件系统为例,YAFFS2 (Yet Another Flash Filing System Versi0n2,闪存文件系统2)是专门为嵌入式系统所使用的Nand Flash设计的根文件系 统。现有技术中,构建和更新YAFFS2根文件系统的处理的方法有1)使用NFS (Network Fi IeSystem,网络文件系统)挂载YAFFS2根文件系统⑵使用启动加载程序(Boot Loader)和网络接口构建或者烧录等方式实现YAFFS2根文件系统的构建、更新等处理。
A)图1是现有技术中,利用运行在Linux(—种开源计算机操作系统)的 PC (Personal Computer,个人计算机)上的 NFS (Network File System,网络文件系统)服 务器下载和构建YAFFS2根文件的处理流程图。从图1中可以看出,首先,此处理方法需要有 NFS服务器的支持;其次,要搭建网络环境;再次,要配置NFS服务器;最后才能将NFS服务 器中的根文件系统下载到Nand Flash的第五分区,构建得到YAFFS2根文件系统。可见,用 NFS服务器挂载YAFFS2根文件系统的处理方法的缺点和局限性从NFS服务器挂载YAFFS2 根文件系统操作复杂,并且需要一台外设PC作为NFS服务器才能实现。
中国发明专利申请(申请号200510008394. 6)公开了采用Boot Loader、TCP/IP 协议和网络接口进行下载和构建(烧录)的方式更新根文件系统的处理方法,这类方法的 缺点和局限性在于,在没有网络接口的嵌入式设备中无法完成根文件系统的下载、更新和 构建(烧录),其增加了成本,并且限制了实际应用的范围。发明内容
本发明的目的在于提供一种嵌入式设备根文件系统的处理系统和处理方法,其简 化了根文件系统的处理过程,具有很好的易操作性。
为实现本发明目的而提供的一种嵌入式设备根文件系统的处理系统,包括至少一 带有标准接口的嵌入式设备,以及可通过标准接口接入到嵌入式设备的一便携式装置;嵌 入式设备包括根文件系统;
所述嵌入式设备,包括第一检测更新模块,用于在便携式装置连接到所述嵌入式 设备后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与 嵌入式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文 件系统信息;
所述便携式装置,包括标志位模块和第一更新处理模块;
其中
所述标志位模块,用于通过标志位标志所述便携式装置接入到嵌入式设备时,是 否需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文 件;
所述第一更新处理模块,用于在便携式装置接入到嵌入式设备后,根据嵌入式设 备的读取请求,发送根文件系统信息及其镜像文件到嵌入式设备。
较优地,所述第一检测更新模块,包括第一接口检测模块,标志位检测模块,第一 更新判断模块,第一镜像文件覆盖写入模块,第一读取判断模块,第一更新版本号模块;
其中
所述第一接口检测模块,用于检测是否有便携式装置从标准接口接入到嵌入式设 备,并在检测到便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;
所述标志位检测模块,用于检测便携式装置的标志位;
第一更新判断模块,用于便携式装置初始化完成后,在检测便携式装置中的更新 标志位为1时,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像 文件的版本号后,将所述镜像文件版本号与嵌入式设备根文件系统的版本号进行比较,判 断是否需要更新嵌入式设备根文件系统;
所述第一镜像文件覆盖写入模块,用于在第一更新判断模块判断需要更新根文件 系统时,向便携式装置发出镜像文件读取请求,并在接收到所述便携式装置发送来的镜像 文件时,依次将镜像文件写入并覆盖更新嵌入式设备的根文件系统;
所述第一读取判断模块,用于在第一镜像文件覆盖写入模块依次读取镜像文件的 过程中,判断是否已更新根文件系统完成;所述第一更新版本号模块,用于在第一读取判断 模块判断已更新根文件系统完成后,将镜像文件对应的根文件系统的版本号写入嵌入式设 备中。
较优地,所述第一更新处理模块,包括第一镜像文件存储模块,初始化模块,第一 版本号发送模块,第一镜像文件发送模块;
其中
所述第一镜像文件存储模块,用于存储用于更新所述嵌入式设备的根文件系统的 新版本的根文件系统的镜像文件;
所述初始化模块,用于在所述便携式装置通过标准接口接入到设备并上电后,根 据设备发送来的初始化指令,对便携式装置进行初始化;
所述第一版本号发送模块,用于根据接收到的嵌入式设备的版本号读取请求,将 镜像文件对应的根文件系统的版本号发送给所述嵌入式设备;
所述第一镜像文件发送模块,用于根据嵌入式设备的镜像文件读取请求,从第一 镜像文件存储模块中依次读取根文件系统的镜像文件,发送给嵌入式设备。
较优地,所述嵌入式设备根文件系统的处理系统,还包括至少一镜像设备,所述镜 像设备包括标准接口,所述便携式设备可通过标准接口接入到所述镜像设备;
所述镜像设备包括第二检测更新模块和标志位改写模块;
其中
所述第二检测更新模块,用于在便携式装置连接到所述镜像设备后,对便携式装 置中的根文件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果 从镜像设备中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中 的根文件系统的文件和根文件系统信息;
所述标志位改写模块,用于在第二检测更新模块更新替换完成根文件系统的文件 和根文件系统信息后,向便携式装置发出标志位改写请求,将标志位模块中的更新标志位 改写;
所述便携式装置还包括第二更新处理模块,用于在便携式装置接入到镜像设备 后,根据镜像设备的读取请求,发送根文件系统信息及其镜像文件到镜像设备。
较优地,第二检测更新模块,包括第二接口检测模块,第二镜像文件存储模块,第 二更新判断模块,第二镜像文件覆盖写入模块,第二读取判断模块,第二更新版本号模块;
其中
所述第二接口检测模块,用于检测是否有便携式装置从标准接口接入到镜像设 备,并在检测以便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;
所述第二镜像文件存储模块,用于存储用于更新所述便携式装置的根文件系统的 新版本的根文件系统的镜像文件;
第二更新判断模块,用于便携式装置初始化完成后,向便携式装置发出版本号读 取请求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与 镜像设备根文件系统的版本号进行比较,判断是否需要更新便携式装置的根文件系统的镜 像文件;
第二镜像文件覆盖写入模块,用于在第二更新判断模块判断需要更新根文件系统 时,读取所述第二镜像文件存储模块中的新版本的根文件系统的镜像文件,并依次将镜像 文件写入并覆盖更新便携式装置中的根文件系统;
第二读取判断模块,用于在第二镜像文件覆盖写入模块依次读取镜像文件的过程 中,判断是否已更新根文件系统完成;
第二更新版本号模块,用于在第二读取判断模块判断已更新根文件系统完成后, 将所述新版本的镜像文件对应的根文件系统的版本号写入便携式装置中。
为实现本发明目的还提供一种嵌入式设备根文件系统的处理方法,包括如下步 骤
步骤A,便携式装置的更新标志位标志所述便携式装置接入到嵌入式设备时,是 否需要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文 件;
步骤B,在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志 位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比 较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息, 更新替换嵌入式设备中的根文件系统的文件和根文件系统信息。
较优地,所述嵌入式设备根文件系统的处理方法,还包括如下步骤
步骤A’,镜像设备在便携式装置连接到所述镜像设备后,对便携式装置中的根文 件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜像设备 中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根文件系 统的文件和根文件系统信息;
步骤B’,镜像设备更新替换完成根文件系统的文件和根文件系统信息后,向便携 式装置发出标志位改写请求,将更新标志位改写。
本发明的有益效果是本发明的嵌入式设备根文件系统的处理系统和处理方法, 其简化了根文件系统的处理过程,具有很好的易操作性,能够快速构建和更新根文件系统, 节省网络接口设备的资源和费用,扩大了嵌入式设备的应用范围。
图1是一种现有技术的嵌入式设备根文件系统更新处理流程图2是本发明实施例嵌入式设备根文件系统的处理系统结构示意图3是图2中嵌入式设备模块结构示意图4是图2中便携式装置模块结构示意图5是图2中镜像设备模块结构示意图6是本发明实施例的嵌入式设备根文件系统的处理方法流程图7是图6中处理方法的较佳处理方法流程图8是图3中嵌入式设备一实施例结构示意图9是图6中处理方法一实施例流程图10是图2中嵌入式设备中便携式装置接入检测实现电路图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明的嵌入式设备根文件系统的处理系统和处理方法进行进一步详细说明。应当理解, 此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
根文件系统是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包括下列步骤
步骤Sl,在便携式装置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’包括下列步骤
步骤Si’,在便携式装置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字节将产生M个字节的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,判断是否将所有的数据写入到嵌入式设备IWNand 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 后再进行升级(与传统网络下载方式相比),因此更新速度更快、使用更简单,本发明达到 了简化操作、节约成本,扩大嵌入式系统应用范围的目的。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变 型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
权利要求
1.一种嵌入式设备根文件系统的处理系统,包括至少一带有标准接口的嵌入式设备, 以及可通过标准接口接入到嵌入式设备的一便携式装置;嵌入式设备包括根文件系统; 其特征在于所述嵌入式设备,包括第一检测更新模块,用于在便携式装置连接到所述嵌入式设备 后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入 式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的 镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文件系 统信息;所述便携式装置,包括标志位模块和第一更新处理模块; 其中所述标志位模块,用于通过标志位标志所述便携式装置接入到嵌入式设备时,是否需 要利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件;所述第一更新处理模块,用于在便携式装置接入到嵌入式设备后,根据嵌入式设备的 读取请求,发送根文件系统信息及其镜像文件到嵌入式设备。
2.根据权利要求1所述的嵌入式设备根文件系统的处理系统,其特征在于,所述第一 检测更新模块,包括第一接口检测模块,标志位检测模块,第一更新判断模块,第一镜像文 件覆盖写入模块,第一读取判断模块,第一更新版本号模块;其中所述第一接口检测模块,用于检测是否有便携式装置从标准接口接入到嵌入式设备, 并在检测到便携式装置接入时,启动便携式装置,并向便携式装置发出初始化指令; 所述标志位检测模块,用于检测便携式装置的标志位;第一更新判断模块,用于便携式装置初始化完成后,在检测便携式装置中的更新标志 位为1时,向便携式装置发出版本号读取请求,得到便携式装置中根文件系统的镜像文件 的版本号后,将所述镜像文件版本号与嵌入式设备根文件系统的版本号进行比较,判断是 否需要更新嵌入式设备根文件系统;所述第一镜像文件覆盖写入模块,用于在第一更新判断模块判断需要更新根文件系统 时,向便携式装置发出镜像文件读取请求,并在接收到所述便携式装置发送来的镜像文件 时,依次将镜像文件写入并覆盖更新嵌入式设备的根文件系统;所述第一读取判断模块,用于在第一镜像文件覆盖写入模块依次读取镜像文件的过程 中,判断是否已更新根文件系统完成;所述第一更新版本号模块,用于在第一读取判断模块判断已更新根文件系统完成后, 将镜像文件对应的根文件系统的版本号写入嵌入式设备中。
3.根据权利要求1所述的嵌入式设备根文件系统的处理系统,其特征在于,所述第一 更新处理模块,包括第一镜像文件存储模块,初始化模块,第一版本号发送模块,第一镜像 文件发送模块;其中所述第一镜像文件存储模块,用于存储用于更新所述嵌入式设备的根文件系统的新版 本的根文件系统的镜像文件;所述初始化模块,用于在所述便携式装置通过标准接口接入到设备并上电后,根据设备端发送来的初始化指令,对便携式装置进行初始化;所述第一版本号发送模块,用于根据接收到的嵌入式设备的版本号读取请求,将镜像 文件对应的根文件系统的版本号发送给所述嵌入式设备;所述第一镜像文件发送模块,用于根据嵌入式设备的镜像文件读取请求,从第一镜像 文件存储模块中依次读取根文件系统的镜像文件,发送给嵌入式设备。
4.根据权利要求1至3任一项所述的嵌入式设备根文件系统的处理系统,其特征在于, 还包括至少一镜像设备,所述镜像设备包括标准接口,所述便携式设备可通过标准接口接 入到所述镜像设备;所述镜像设备包括第二检测更新模块和标志位改写模块; 其中所述第二检测更新模块,用于在便携式装置连接到所述镜像设备后,对便携式装置中 的根文件系统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜 像设备中读取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根 文件系统的文件和根文件系统信息;所述标志位改写模块,用于在第二检测更新模块更新替换完成根文件系统的文件和 根文件系统信息后,向便携式装置发出标志位改写请求,将标志位模块中的更新标志位改 写;所述便携式装置还包括第二更新处理模块,用于在便携式装置接入到镜像设备后,根 据镜像设备的读取请求,发送根文件系统信息及其镜像文件到镜像设备。
5.根据权利要求4所述的嵌入式设备根文件系统的处理系统,其特征在于,所述第二 检测更新模块,包括第二接口检测模块,第二镜像文件存储模块,第二更新判断模块,第二 镜像文件覆盖写入模块,第二读取判断模块,第二更新版本号模块;其中所述第二接口检测模块,用于检测是否有便携式装置从标准接口接入到镜像设备,并 在检测以便携式装置接入时,启动便携式装置,向便携式装置发出初始化指令;所述第二镜像文件存储模块,用于存储用于更新所述便携式装置的根文件系统的新版 本的根文件系统的镜像文件;第二更新判断模块,用于便携式装置初始化完成后,向便携式装置发出版本号读取请 求,得到便携式装置中根文件系统的镜像文件的版本号后,将所述镜像文件版本号与镜像 设备根文件系统的版本号进行比较,判断是否需要更新便携式装置的根文件系统的镜像文 件;第二镜像文件覆盖写入模块,用于在第二更新判断模块判断需要更新根文件系统时, 读取所述第二镜像文件存储模块中的新版本的根文件系统的镜像文件,并依次将镜像文件 写入并覆盖更新便携式装置中的根文件系统;第二读取判断模块,用于在第二镜像文件覆盖写入模块依次读取镜像文件的过程中, 判断是否已更新根文件系统完成;第二更新版本号模块,用于在第二读取判断模块判断已更新根文件系统完成后,将所 述新版本的镜像文件对应的根文件系统的版本号写入便携式装置中。
6.根据权利要求4所述的嵌入式设备根文件系统的处理系统,其特征在于,所述标准 接口,或者是SD卡的标准接口,对应的便携式装置为SD卡;或者是USB接口,对应的便携式装置为U盘;或者是CF卡标准接口,对应的便携式装置为CF卡等;所述镜像设备是PC机、服务器、小型计算机、大型计算机或者其他能够存储根文件系 统并接入便携式装置的计算机设备。
7.一种嵌入式设备根文件系统的处理方法,其特征在于,包括如下步骤步骤A,便携式装置的更新标志位标志所述便携式装置接入到嵌入式设备时,是否需要 利用便携式装置中的根文件系统的镜像文件更新嵌入式设备中的根文件系统的文件;步骤B,在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志位,并 对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比较,并 根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替 换嵌入式设备中的根文件系统的文件和根文件系统信息。
8.根据权利要求7所述的嵌入式设备根文件系统的处理方法,其特征在于,所述步骤B 包括下列步骤步骤Si,在便携式装置从标准接口接入到嵌入式设备后,嵌入式设备检测到便携式装 置接入,发出初始化指令,启动便携式装置初始化过程;步骤S2,便携式装置根据设备发送来的初始化指令,进行初始化; 步骤S3,在初始化完成后,嵌入式设备检测便携式装置中的更新标志位为1时,向便携 式装置发出版本号读取请求;步骤S4,便携式装置读取根文件系统的版本号并发送给嵌入式设备; 步骤S5,嵌入式设备得到便携式装置的根文件系统的版本号后,将所述版本号与嵌入 式设备中存储的镜像文件的版本号进行比较,判断是否需要更新根文件系统;如果嵌入式 设备中根文件系统的版本号高于便携式装置中存储的镜像文件的版本号,则结束返回;否 则,进入下一步骤;步骤S6,当嵌入式设备中根文件系统的版本号低于便携式装置中存储的镜像文件的 版本号,判断需要更新嵌入式设备中的根文件系统后,嵌入式设备向便携式装置发出镜像 文件读取请求,从便携式装置中存储的新版本的根文件系统的镜像文件中依次读取镜像文 件;步骤S7,嵌入式设备在接收到所述便携式装置发送来的镜像文件时,依次将镜像文件 写入并覆盖更新嵌入式设备的根文件系统;步骤S8,嵌入式设备判断是否已经读取完成全部镜像文件;如果否,则还没有读取完 成,返回步骤S7 ;否则,已经读取完成,进入下一步骤;步骤S9,嵌入式设备在判断已经读取完成全部镜像文件后,将便携式装置的镜像文件 的版本号写入嵌入式设备。
9.根据权利要求7或8所述的嵌入式设备根文件系统的处理方法,其特征在于,还包括 如下步骤步骤A’,镜像设备在便携式装置连接到所述镜像设备后,对便携式装置中的根文件系 统的镜像文件与镜像设备中的根文件系统进行判断比较,并根据判断结果从镜像设备中读 取根文件系统的镜像文件和相应根文件系统信息,更新替换便携式装置中的根文件系统的 文件和根文件系统信息;步骤B’,镜像设备更新替换完成根文件系统的文件和根文件系统信息后,向便携式装置发出标志位改写请求,将更新标志位改写。
10.根据权利要求9所述的嵌入式设备根文件系统的处理方法,其特征在于,所述步骤 A’包括下列步骤步骤Si’,在便携式装置从标准接口接入到镜像设备后,镜像设备检测到便携式装置接 入,发出初始化指令,启动便携式装置初始化过程;步骤S2’,便携式装置根据设备发送来的初始化指令,进行初始化; 步骤S3’,在初始化完成后,镜像设备发出版本号读取请求,得到便携式装置中根文件 系统的镜像文件的版本号;步骤S4’,镜像设备得到便携式装置的根文件系统的版本号后,将所述版本号与镜像设 备中存储的镜像文件的版本号进行比较,判断是否需要更新根文件系统;如果镜像设备中 根文件系统的版本号低于便携式装置中存储的镜像文件的版本号,则结束返回;否则,进入 下一步骤;步骤S5’,当镜像设备中根文件系统的版本号高于便携式装置中存储的镜像文件的版 本号,判断需要更新便携式装置中的根文件系统后,从镜像设备中存储的新版本的根文件 系统的镜像文件中依次读取镜像文件,依次将镜像文件写入并覆盖更新便携式装置中的根 文件系统;步骤S6’,镜像设备判断是否已经读取完成全部镜像文件;如果否,则还没有读取完 成,返回步骤S5’ ;否则,已经读取完成,进入下一步骤;步骤S7’,镜像设备在判断已经读取完成全部镜像文件后,将镜像设备的镜像文件对应 的根文件系统的版本号写入便携式装置中。
全文摘要
本发明公开一种嵌入式设备根文件系统的处理系统和处理方法。该系统包括嵌入式设备以及便携式装置;嵌入式设备包括第一检测更新模块,用于在便携式装置连接到所述嵌入式设备后,检测便携式装置中的更新标志位,并对便携式装置中的根文件系统的镜像文件与嵌入式设备中的根文件系统进行判断比较,并根据判断结果从便携式装置中读取根文件系统的镜像文件和相应根文件系统信息,更新替换嵌入式设备中的根文件系统的文件和根文件系统信息;所述便携式装置,包括第一更新处理模块,用于在便携式装置接入到嵌入式设备后,根据嵌入式设备的读取请求,发送根文件系统信息及其镜像文件到嵌入式设备。其简化了根文件系统的处理过程,具有很好的易操作性。
文档编号G06F9/445GK102043652SQ201010578460
公开日2011年5月4日 申请日期2010年12月8日 优先权日2010年12月8日
发明者王猛, 袁仁东 申请人:苏州捷泰科信息技术有限公司