一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统的制作方法

文档序号:6557249阅读:287来源:国知局
专利名称:一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统的制作方法
技术领域
本发明涉及数据处理,更具体地说,涉及一种嵌入式操作系统加载逻辑文件的方法和应用该方法加载逻辑文件的嵌入式操作系统。
背景技术
对于嵌入式操作系统如何加载逻辑文件,业界目前普遍采用的做法是将逻辑文件当作一个独立于嵌入式操作系统的文件来加载。根据逻辑文件存放位置的不同,又具体分为以下两种方法。
第一种方法是将逻辑文件存放在Flash(闪存)等存储设备中。嵌入式操作系统启动后,通过读取Flash等存储设备,将逻辑文件加载到嵌入式操作系统中。这种方法的缺陷主要表现在1、开发人员需要提供包括嵌入式操作系统和逻辑文件在内的多个文件,缺少其中的任何一个,系统都不能正常运行;2、逻辑文件在Flash中的存放地址必须准确,如果地址不正确,就会出现系统数据读取错误,逻辑文件不能够正常加载,系统也就不能正常运行;3、存在逻辑文件和嵌入式操作系统版本的配套问题,如果逻辑文件被错误的加载到不配套的嵌入式操作系统上,就有可能造成系统运行异常。
第二种方法是将逻辑文件存放在专门的服务器中。嵌入式操作系统启动后,通过FTP(文件传输协议)或TFTP(简单文件传输协议)等方式从服务器上下载逻辑文件,将逻辑文件加载到嵌入式操作系统中。在这种方法中,第一种方法存在的问题仍未得到解决,此外,还存在以下其他问题1、必须事先在嵌入式操作系统的配置中添加存放逻辑文件的服务器的IP地址,一旦服务器的IP地址发生改变或服务器不可用,就需要修改添加在嵌入式操作系统中的服务器的IP地址;
2、逻辑文件的下载速度依赖于下载时网络的状态,如果网络发生拥塞,就有可能导致逻辑文件下载失败,逻辑文件不能正常加载,系统就不能正常工作;3、需要维护服务器,增加了维护的工作量,同时还需保证服务器上存在相关的逻辑文件,如果逻辑文件不存在,或者服务器出现故障,逻辑文件就不能保证正常下载,系统也就不能正常工作。
产生上述问题的主要原因在于嵌入式操作系统和逻辑文件的存储位置不同,在运行过程中,嵌入式操作系统在加载逻辑文件之前都需要先从逻辑文件的存储位置读取该文件,因此,如果存储位置不准确或者传输过程发生错误,都无法读取、进而无法加载逻辑文件。

发明内容
本发明所要解决的技术问题在于,针对现有技术中从Flash或服务器中加载逻辑文件时可能遇到的版本不匹配、文件缺失或受网络条件影响较大等缺陷,提供一种嵌入式操作系统加载逻辑文件的方法和应用该方法加载逻辑文件的嵌入式操作系统。
本发明解决其技术问题所采用的技术方案是构造一种嵌入式操作系统加载逻辑文件的方法,嵌入式操作系统将逻辑文件转换为自身数据的一部分,然后以调用自身数据的方式来加载所述逻辑文件。
在本发明所述的方法中,所述方法进一步包括如下步骤S1.所述嵌入式操作系统将所述逻辑文件转换为汇编文件;S2.所述嵌入式操作系统将所述汇编文件写入所述嵌入式操作系统的编译规则文件中;S3.所述嵌入式操作系统对所述汇编文件进行编译;S4.所述嵌入式操作系统使用逻辑文件加载模块调用所述逻辑文件。
在本发明所述的方法中,在所述步骤S1中,所述嵌入式操作系统调用文件转换模块将所述逻辑文件转换为所述汇编文件。
在本发明所述的方法中,所述步骤S1还包括,所述嵌入式操作系统为所述汇编文件添加文件头标签和文件尾标签。
在本发明所述的方法中,在所述步骤S4中,所述逻辑文件加载模块通过识别所述文件头标签和所述文件尾标签参数来调用所述逻辑文件。
本发明还提供了一种嵌入式操作系统,包括存储系统代码的代码存储模块和存储系统数据的数据存储模块,所述代码存储模块包括编译模块,所述代码存储模块还包括文件转换模块和逻辑文件加载模块,所述数据存储模块还包括逻辑文件存储模块;所述文件转换模块用于将输入的逻辑文件转换为汇编文件,并发送给所述编译模块;所述编译模块对所述汇编文件进行编译;所述逻辑文件存储模块与所述编译模块相连,用于存储所述编译后的逻辑文件;所述逻辑文件加载模块与所述逻辑文件存储模块相连,用于加载其中存储的逻辑文件。
在本发明所述的系统中,所述汇编文件包括文件头标签和文件尾标签。
在本发明所述的系统中,所述逻辑文件加载模块通过识别所述文件头标签和所述文件尾标签参数来调用所述逻辑文件。
本发明将逻辑文件添加到嵌入式操作系统自身的数据中,使嵌入式操作系统可以通过调用自身数据来加载逻辑文件,这样一来便解决了因嵌入式操作系统和逻辑文件存放位置不同而可能造成的无法获取逻辑文件进而无法加载等问题,并解决了嵌入式操作系统与逻辑文件之间版本不匹配的问题,提高了逻辑文件加载的效率和可靠性。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明技术方案的方法流程图;图2是本发明实施例中添加逻辑文件后的系统文件的结构示意图。
图3是本发明技术方案的系统结构示意图。
具体实施例方式
本发明提供的技术方案是将逻辑文件转换为嵌入式操作系统的一部分,这样一来,嵌入式操作系统就可通过简单的调用自身数据来加载逻辑文件。
图1是本发明技术方案的方法流程图。如图1所示,在步骤100,嵌入式操作系统首先将所述逻辑文件转换为汇编文件,并为所述汇编文件添加文件头标签和文件尾标签;随后,在步骤102,嵌入式操作系统将所述汇编文件写入所述嵌入式操作系统的编译规则文件中;接下来,在步骤104,嵌入式操作系统执行所述编译规则文件,对所述汇编文件进行编译;最后,在步骤106,嵌入式操作系统使用自身的逻辑文件加载函数通过由文件头标签和文件尾标签构造的参数来调用编译后的汇编文件。
为详细解释本发明的创新之处,以下以当前广泛应用的vxworks系统为例讲述本发明的技术方案。
在vxworks系统中,系统共分为文本段和数据段两个部分;文本段用于存放系统代码,数据段用于存放所述系统代码需要操作的数据。本发明提供的方法是将逻辑文件作为整个嵌入式操作系统的一部分,直接存放到所述嵌入式操作系统的数据段中。在vxworks系统中,完成这一过程需要用到两个系统工具程序binToAsm.exe和rpls.exe,系统工具程序binToAsm.exe把二进制文件转化为汇编文件,并且在所述汇编文件的头部加上文件头标签_binArrayStart,在所述汇编文件的尾部加上文件尾标签_binArrayEnd,用于标识所述汇编文件加入嵌入式操作系统的数据段后在所述嵌入式操作系统中的位置;系统工具程序rpls.exe所述汇编文件中搜索指定的字符串,然后使用指定的另外一个字符串替换搜索到的字符串,例如rpls.exe fpga.1 fpga.2_binArrayStart_urcuFpgaStart就是把文件fpga.1中查找到的字符串_binArrayStart替换为字符串_urcuFpgaStart,生成一个新的文件fpga.2;通过这两个系统工具程序,vxworks系统把逻辑文件转化为一个带标号_urcuFpgaStart和_urcuFpgaEnd的汇编文件,然后把所述带标号_urcuFpgaStart和_urcuFpgaEnd的汇编文件写入vxworks系统的编译规则文件makefile中,这样一来,就可对所述汇编文件进行正常的编译处理了。这样,所述逻辑文件就已添加到嵌入式操作系统的数据段中了,vxworks系统的文本段1,vxworks系统的数据段2,所述添加到嵌入式操作系统数据段2中的逻辑文件3,其分别在嵌入式操作系统中的位置如图2所示。
此后,vxworks系统使用自身逻辑文件加载函数来加载逻辑文件,如函数BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen),所述函数BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen)有两个参数,即参数UCHAR* pucFpgaFile和参数UCHAR* pucFpgaFile,其中,参数UCHAR* pucFpgaFile为即将调用的FPGA文件所在数组的指针,参数ULONGulFpgaDataLen为即将调用的FPGA文件的大小。在加载逻辑文件时,所述参数UCHAR* pucFpgaFile和参数ULONG ulFpgaDataLen的值分别对应于文件头标签_urcuFpgaStart和(UINT32)(_urcuFpgaEnd)-(UINT32)(_urcuFpgaStart)。这样一来,所述逻辑文件加载函数BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen)就变成BSP_DownBinToFPGA(_urcuFpgaStart,(UINT32)(_urcuFpgaEnd)-(UINT32)(_urcuFpgaStart)。vxworks系统由此实现了以调用自身数据的方式来调用逻辑文件。
以上就是以vxworks系统为例的本发明逻辑文件加载的全过程。需要注意的是,虽然本发明是借助vxworks系统进行描述的,但本发明的技术方案并非仅限于vxworks系统。事实上,本领域的技术人员应当明白,可应用本发明介绍的逻辑文件加载方法的系统可概括为下面图3中展示的嵌入式操作系统。
图3是本发明技术方案的系统结构示意图。如图3所示,该系统共包括代码存储模块和数据存储模块两部分,其中,代码存储模块用于存放系统代码,包括文件转换模块、编译模块和逻辑文件加载模块;数据存储模块用于存放代码需要操作的数据,包括专门用于存放逻辑文件的逻辑文件存储模块。代码存储模块中的文件转换模块用于将收到的逻辑文件转换为汇编文件,并为该汇编文件添加文件头标签和文件尾标签,然后发往编译模块,由所述编译模块对所述汇编文件进行编译,并在编译过程完成后,统一存储到数据存储模块中的逻辑文件存储模块中。当需要调用逻辑文件时,代码存储模块中的逻辑文件加载模块在数据存储模块中通过识别所述文件头标签和所述文件尾标签参数来调用相应的逻辑文件。
本发明将逻辑文件添加到嵌入式操作系统自身的数据中,使嵌入式操作系统可以通过调用自身数据来加载逻辑文件,这样一来便解决了因嵌入式操作系统和逻辑文件存放位置不同而可能造成的无法获取逻辑文件进而无法加载等问题,并解决了嵌入式操作系统与逻辑文件之间版本不匹配的问题,提高了逻辑文件加载的效率和可靠性。
权利要求
1.一种嵌入式操作系统加载逻辑文件的方法,其特征在于,嵌入式操作系统将逻辑文件转换为自身数据的一部分,然后以调用自身数据的方式来加载所述逻辑文件。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括如下步骤S1.所述嵌入式操作系统将所述逻辑文件转换为汇编文件;S2.所述嵌入式操作系统将所述汇编文件写入所述嵌入式操作系统的编译规则文件中;S3.所述嵌入式操作系统对所述汇编文件进行编译;S4.所述嵌入式操作系统使用逻辑文件加载模块调用所述逻辑文件。
3.根据权利要求2所述的方法,其特征在于,在所述步骤S1中,所述嵌入式操作系统调用文件转换模块将所述逻辑文件转换为所述汇编文件。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤S1还包括,所述嵌入式操作系统为所述汇编文件添加文件头标签和文件尾标签。
5.根据权利要求4所述的方法,其特征在于,在所述步骤S4中,所述逻辑文件加载模块通过识别所述文件头标签和所述文件尾标签参数来调用所述逻辑文件。
6.一种嵌入式操作系统,包括存储系统代码的代码存储模块和存储系统数据的数据存储模块,所述代码存储模块包括编译模块,其特征在于,所述代码存储模块还包括文件转换模块和逻辑文件加载模块,所述数据存储模块还包括逻辑文件存储模块;所述文件转换模块用于将输入的逻辑文件转换为汇编文件,并发送给所述编译模块;所述编译模块对所述汇编文件进行编译;所述逻辑文件存储模块与所述编译模块相连,用于存储所述编译后的逻辑文件;所述逻辑文件加载模块与所述逻辑文件存储模块相连,用于加载其中存储的逻辑文件。
7.根据权利要求6所述的系统,其特征在于,所述汇编文件包括文件头标签和文件尾标签。
8.根据权利要求7所述的系统,其特征在于,所述逻辑文件加载模块通过识别所述文件头标签和所述文件尾标签参数来调用所述逻辑文件。
全文摘要
本发明提供一种嵌入式操作系统加载逻辑文件的方法,首先,嵌入式操作系统将逻辑文件转换为自身数据的一部分,然后以调用自身数据的方式来加载所述逻辑文件。本发明还提供一种应用上述方法加载逻辑文件的嵌入式操作系统。本发明将逻辑文件添加到嵌入式操作系统自身的数据中,使嵌入式操作系统可以通过调用自身数据来加载逻辑文件,这样一来便解决了因嵌入式操作系统和逻辑文件存放位置不同而可能造成的无法获取逻辑文件进而无法加载等问题,并解决了嵌入式操作系统与逻辑文件之间版本不匹配的问题,提高了逻辑文件加载的效率和可靠性。
文档编号G06F9/45GK1900909SQ20061006173
公开日2007年1月24日 申请日期2006年7月18日 优先权日2006年7月18日
发明者杨霆, 王伟, 曾云刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1