CN104572224A - 一种out文件加载方法、装置及*** - Google Patents

一种out文件加载方法、装置及*** Download PDF

Info

Publication number
CN104572224A
CN104572224A CN201510057397.2A CN201510057397A CN104572224A CN 104572224 A CN104572224 A CN 104572224A CN 201510057397 A CN201510057397 A CN 201510057397A CN 104572224 A CN104572224 A CN 104572224A
Authority
CN
China
Prior art keywords
file
pseudo
loading
internal memory
storer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510057397.2A
Other languages
English (en)
Other versions
CN104572224B (zh
Inventor
曹海浪
刘永阳
杨卫峰
粟爱军
肖家博
郝波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Zhuzhou Institute Co Ltd
Original Assignee
CSR Zhuzou Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CSR Zhuzou Institute Co Ltd filed Critical CSR Zhuzou Institute Co Ltd
Priority to CN201510057397.2A priority Critical patent/CN104572224B/zh
Publication of CN104572224A publication Critical patent/CN104572224A/zh
Application granted granted Critical
Publication of CN104572224B publication Critical patent/CN104572224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种out文件加载方法、装置及***,将需要加载的out文件从存储器中读取到内存;调用vxWorks***函数memDrvCreate()将内存中的out文件构造成伪I/O设备文件;调用vxWorks***函数loadModule()加载伪I/O设备文件,实现对out文件的加载。这样,从存储器读取out文件到内存,利用***函数memDevCreate()将内存中的out文件制作成一个伪I/O设备文件,使其能够被loadModule()函数调用,完成out文件的加载,不需要使用文件***,可以有效的节省存储器的存储空间,并且可以避免文件***损坏时导致的out文件丢失或者损坏等问题。

Description

一种out文件加载方法、装置及***
技术领域
本申请涉及嵌入式技术领域,特别是涉及一种out文件加载方法、装置及***。
背景技术
嵌入式vxWorks操作***的模块可执行文件为out文件,类似于Windows环境下的exe可执行文件,out文件为嵌入式vxWorks操作***环境下的目标文件格式。嵌入式vxWorks操作***使用out文件模块来进行软件发布,这样做有利于代码保密、***裁剪等。
传统的嵌入式vxWorks操作***中,out文件的加载依赖于基于嵌入式vxWorks操作***构建的文件***,out文件的加载是将各个out文件放在文件***下,启动的时候根据配置文件加载out文件或者在启动代码里将out文件的加载和顺序固定设置好。
通常情况下,嵌入式vxWorks操作***的资源有限,并不是所有的嵌入式vxWorks操作***都有大容量的存储器用于构建文件***,因此out文件的加载会受到存储器的容量限制,并且基于嵌入式vxWorks操作***构建的文件***本身存在着容易损坏的风险,因此加载在文件***中的out文件也容易丢失或者损坏。
发明内容
有鉴于此,本申请提供一种out文件加载方法、装置及***,以有效的解决嵌入式vxWorks操作***中的out文件加载受到存储器的容量限制、以及加载在文件***中的out文件容易丢失或损坏的问题。
为了实现上述目的,本申请实施例提供的技术方案如下:
一种out文件加载方法,包括:
将需要加载的out文件从存储器中读取到内存;
调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
优选地,所述将需要加载的out文件从存储器中读取到内存,包括:
对所述存储器中的out文件的数据结构进行初始化;
将文件指针指向所述存储器中的out文件的起始地址;
获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
优选地,在所述调用vxWorks***函数loadModule()加载所述伪I/O设备文件之前,还包括:
调用接口函数open()打开所述伪内存I/O设备文件,并获取文件描述符;
则,所述调用vxWorks***函数loadModule()加载所述伪I/O设备文件,包括:
调用vxWorks***函数loadModule()根据所述文件描述符加载所述伪内存I/O设备文件。
一种out文件加载装置,包括:
读取模块,与所述读取模块相连接的构造模块,与所述构造模块相连接的加载模块;
所述读取模块将需要加载的out文件从存储器中读取到内存;
所述构造模块调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
优选地,所述读取模块,包括:
初始化单元,所述初始化单元对所述存储器中的out文件的数据结构进行初始化;
指向单元,所述指向单元将文件指针指向所述存储器中的out文件的起始地址;
获取单元,所述获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
优选地,所述加载模块,包括:
获取单元,所述获取单元调用接口函数open()打开所述伪内存I/O设备文件,并获取文件描述符;
加载单元,所述获取单元调用vxWorks***函数loadModule()根据所述文件描述符加载所述伪内存I/O设备文件。
一种out文件加载***,包括:out文件加载装置,与所述out文件加载装置相连的存储器,所述存储器用于存储out文件;
所述out文件加载装置包括:
读取模块,与所述读取模块相连接的构造模块,与所述构造模块相连接的加载模块;
所述读取模块将需要加载的out文件从所述存储器中读取到内存;
所述构造模块调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
优选地,所述读取模块,包括:
初始化单元,所述初始化单元对所述存储器中的out文件的数据结构进行初始化;
指向单元,所述指向单元将文件指针指向所述存储器中的out文件的起始地址;
获取单元,所述获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
优选地,所述加载模块,包括:
获取单元,所述获取单元调用接口函数open()打开所述伪内存I/O设备文件,并获取文件描述符;
加载单元,所述获取单元调用vxWorks***函数loadModule()根据所述文件描述符加载所述伪内存I/O设备文件。
由以上本申请提供的技术方案,将需要加载的out文件从存储器中读取到内存;调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。这样,直接从存储器读取out文件到内存,并利用***函数memDevCreate()将内存中的out文件制作成一个伪I/O设备文件,使其能够被loadModule()函数调用,完成out文件的加载,该方案不需要使用文件***,可以有效的节省存储器的存储空间,并且由于在加载out文件时不使用文件***,可以避免文件***损坏时导致的out文件丢失或者损坏等问题,提高了嵌入式***的整体可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种out文件加载方法的流程示意图;
图2为本申请提供的一种out文件加载装置的结构示意图;
图3为本申请提供的一种out文件加载***的结构示意图。
具体实施方式
相关术语解释:
vxWorks:vxWorks操作***是美国WindRiver公司于1983年设计开发的一种嵌入式实习操作***(RTOS),是嵌入式开发环境的关键组成部分,该操作***具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作***领域占据一席之地;
out文件:属于ELF文件类型,可通过ftp工具将它加载到文件***(比如使用copy命令加载到RAM盘)中,再调用ld或者loadModule函数加载到操作***中运行;
loadModule:vxWorks操作***提供的***接口函数,用于目标文件的加载;
ld:vxWorks操作***提供的***接口函数,用于目标文件的加载。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合附图,对本申请的实施方案进行详细描述。
图1为本申请提供的一种out文件加载方法的流程示意图。
请参照图1所示,本申请实施例提供的out文件加载方法,包括:
步骤S100:将需要加载的out文件从存储器中读取到内存;
在本申请实施例中,将需要加载的out文件从存储器中读取到内存,可以包括:对所述存储器中的out文件的数据结构进行初始化;将文件指针指向所述存储器中的out文件的起始地址;获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
out文件是直接存储在存储器上的,本申请实施例不使用文件***,无需打开文件,而是通过文件指针访问存储器中的绝对地址读取out文件到内存,并获取out文件相对于存储器基地址的偏移量和文件大小。
步骤S200:调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
在本申请实施例中,调用***函数memDevCreate()将加载到内存的out文件映像制作成一个伪内存I/O设备文件,制造成伪内存I/O设备文件后就可以使用文件***中的I/O接口。
步骤S300:调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
在本申请实施例中,调用vxWorks***函数loadModule()加载所述伪I/O设备文件时,首先调用***接口函数open(),打开伪内存I/O设备文件,获得文件描述符,然后调用loadModule()函数,加载生成的伪内存I/O设备文件并执行其接口函数,完成out文件的加载。
制作出来的伪内存I/O设备文件可以被接口函数open()打开并获得文件描述符,得到文件描述符之后,就可以使用***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
在现有技术中,vxWorks的应用程序开发者开发出out文件后,在***集成时将这些out模块文件存放在文件***或者存储芯片里面。***启动时,可根据配置加载相应的out文件。
现有的基于文件***中的out文件加载方法主要是通过loadModule()或ld()函数进行实现的。loadModule()和ld()函数在使用方式上有所区别:loadModule()函数需要传入out文件的文件描述符fd,ld()函数需要传入的是文件在文件***中的文件名。基于文件***中的out模块加载方法为:首先,将需要加载的out文件放入文件***;然后,调用vxWorks操作***提供的loadModule()或ld()函数将out文件加载到内存,并启动out程序中的任务函数。该方法必须构造文件***。文件***本身是个软件协议栈,需要消耗较大的存储空间。且文件***还存在着容易损坏从而导致存储在其中的文件丢失或损坏等问题。
现有的不基于文件***的out文件加载方法,通过模仿文件***的I/O接口的机制,建立新的接口函数,来访问flash,绕过文件句柄。该方法在没有文件***的情况下,不利用文件描述符,不调用loadModule()或ld()函数,直接从存储器即存储芯片上读取out模块文件并加载到内存。该方案的实现方法为:首先,由于out文件是直接存储在存储芯片上的,无需打开文件。初始化时先将flash上out文件的数据结构初始化,将文件指针指向存储芯片上out文件的起始地址;然后,通过指针方式直接读取存储芯片上的out文件,不需要使用文件描述符,没有文件描述的引用关系;最后,建立新的接口函数实现对out文件的加载。新的接口函数将loadModule函数调用的文件操作函数fread、fioread和fseek,分别修改命名为ffread、ffioread和ffseek。修改后的ffread和ffioread功能和fread与fioread函数功能类似,也是从存储芯片上读取out文件。只是其文件指针指向要读取的文件的当前位置,通过该指针读取当前位置的内容。其读取文件指针为一个字节一个字节的读取,每读一个字节指针往后移动一个位置,直到读取结束。ffseek和fseek功能类似,功能是设置文件指针的位置,方法为文件的起始位置加上偏移量。该方法没有使用文件***,而是建立了一个新的接口函数,不利用loadModule()函数实现存储器中的out文件的加载。但是该方法需要模拟一套文件***IO,修改部分函数绕过文件句柄来进行对存储器中out文件的访问加载。该方法需要增加新的接口函数,不使用***自带的loadModule()函数,而新的接口函数本身实现复杂,维护难度和风险较大。
本申请提供的技术方案,将需要加载的out文件从存储器中读取到内存;调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。这样,直接从存储器读取out文件到内存,并利用***函数memDevCreate()将内存中的out文件制作成一个伪I/O设备文件,使其能够被loadModule()函数调用,完成out文件的加载,该方案不需要使用文件***,可以有效的节省存储器的存储空间,并且由于在加载out文件时不使用文件***,可以避免文件***损坏时导致的out文件丢失或者损坏等问题,提高了嵌入式***的整体可靠性。
而且,相对于现有的不基于文件***的out文件加载方法,本申请的技术方案直接从存储器读取out文件到内存,并利用***函数memDevCreate()将将加载到内存文件中的out文件映像模拟成一个伪I/O设备文件,实现open()函数对其的访问,获得文件描述符,使其能够被***函数loadModule()访问,最终实现out文件的加载。这种方法原理简洁,不需要增加新的接口函数,复杂度低,维护难度低,可靠性好。该方法使用简便,原理清晰易懂,可以便捷地实现不基于文件***的vxWorks操作***的out文件的加载。
图2为本申请提供的一种out文件加载装置的结构示意图。
请参照图2所示,本申请实施例提供的out文件加载装置,包括:
读取模块1,与所述读取模块1相连接的构造模块2,与所述构造模块2相连接的加载模块3;
所述读取模块1将需要加载的out文件从存储器中读取到内存;
所述构造模块2调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块3调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
在本申请实施例中,读取模块1将需要加载的out文件从存储器中读取到内存,可以包括:初始化单元对所述存储器中的out文件的数据结构进行初始化;指向单元将文件指针指向所述存储器中的out文件的起始地址;获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
out文件是直接存储在存储器上的,本申请实施例不使用文件***,无需打开文件,而是通过访问存储器中的绝对地址读取out文件到内存,并获取out文件相对于存储器基地址的偏移量和文件大小。
在本申请实施例中,构造模块2调用***函数memDevCreate()将加载到内存的out文件映像制作成一个伪内存I/O设备文件,制造成伪内存I/O设备文件后就可以使用文件***中的I/O接口。
在本申请实施例中,加载模块3调用vxWorks***函数loadModule()加载所述伪I/O设备文件时,首先由获取单元调用***接口函数open(),打开伪内存I/O设备文件,获得文件描述符,然后由加载单元调用loadModule()函数,加载生成的伪内存I/O设备文件并执行其接口函数,完成out文件的加载。
制作出来的伪内存I/O设备文件可以被接口函数open()打开并获得文件描述符,得到文件描述符之后,就可以使用***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
本申请提供的技术方案,将需要加载的out文件从存储器中读取到内存;调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。这样,直接从存储器读取out文件到内存,并利用***函数memDevCreate()将内存中的out文件制作成一个伪I/O设备文件,使其能够被loadModule()函数调用,完成out文件的加载,该方案不需要使用文件***,可以有效的节省存储器的存储空间,并且由于在加载out文件时不使用文件***,可以避免文件***损坏时导致的out文件丢失或者损坏等问题,提高了嵌入式***的整体可靠性。
而且,相对于现有的不基于文件***的out文件加载方法,本申请的技术方案直接从存储器读取out文件到内存,并利用***函数memDevCreate()将将加载到内存文件中的out文件映像模拟成一个伪I/O设备文件,实现open()函数对其的访问,获得文件描述符,使其能够被***函数loadModule()访问,最终实现out文件的加载。这种方法原理简洁,不需要增加新的接口函数,复杂度低,维护难度低,可靠性好。该方法使用简便,原理清晰易懂,可以便捷地实现不基于文件***的vxWorks操作***的out文件的加载。
图3为本申请提供的一种out文件加载***的结构示意图。
请参照图3所示,本申请实施例提供的out文件加载***,包括:out文件加载装置4,与所述out文件加载装置相连的存储器5,
读取模块1,与所述读取模块1相连接的构造模块2,与所述构造模块2相连接的加载模块3;
所述读取模块1将需要加载的out文件从存储器5中读取到内存;
所述构造模块2调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块3调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
在本申请实施例中,读取模块1将需要加载的out文件从存储器中读取到内存,可以包括:初始化单元对所述存储器中的out文件的数据结构进行初始化;指向单元将文件指针指向所述存储器中的out文件的起始地址;获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
out文件是直接存储在存储器上的,本申请实施例不使用文件***,无需打开文件,而是通过访问存储器中的绝对地址读取out文件到内存,并获取out文件相对于存储器基地址的偏移量和文件大小。
在本申请实施例中,构造模块2调用***函数memDevCreate()将加载到内存的out文件映像制作成一个伪内存I/O设备文件,制造成伪内存I/O设备文件后就可以使用文件***中的I/O接口。
在本申请实施例中,加载模块3调用vxWorks***函数loadModule()加载所述伪I/O设备文件时,首先由获取单元调用***接口函数open(),打开伪内存I/O设备文件,获得文件描述符,然后由加载单元调用loadModule()函数,加载生成的伪内存I/O设备文件并执行其接口函数,完成out文件的加载。
制作出来的伪内存I/O设备文件可以被接口函数open()打开并获得文件描述符,得到文件描述符之后,就可以使用***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。
本申请提供的技术方案,将需要加载的out文件从存储器中读取到内存;调用vxWorks***函数memDrvCreate()将所述内存中的所述out文件构造成伪I/O设备文件;调用vxWorks***函数loadModule()加载所述伪I/O设备文件,实现对所述out文件的加载。这样,直接从存储器读取out文件到内存,并利用***函数memDevCreate()将内存中的out文件制作成一个伪I/O设备文件,使其能够被loadModule()函数调用,完成out文件的加载,该方案不需要使用文件***,可以有效的节省存储器的存储空间,并且由于在加载out文件时不使用文件***,可以避免文件***损坏时导致的out文件丢失或者损坏等问题,提高了嵌入式***的整体可靠性。
而且,相对于现有的不基于文件***的out文件加载方法,本申请的技术方案直接从存储器读取out文件到内存,并利用***函数memDevCreate()将将加载到内存文件中的out文件映像模拟成一个伪I/O设备文件,实现open()函数对其的访问,获得文件描述符,使其能够被***函数loadModule()访问,最终实现out文件的加载。这种方法原理简洁,不需要增加新的接口函数,复杂度低,维护难度低,可靠性好。该方法使用简便,原理清晰易懂,可以便捷地实现不基于文件***的vxWorks操作***的out文件的加载。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种out文件加载方法,其特征在于,包括:
将需要加载的out文件从存储器中读取到内存;
调用vxWorks***函数memDrvCreate( )将所述内存中的所述out文件构造成伪I/O设备文件;
调用vxWorks***函数loadModule( )加载所述伪I/O设备文件,实现对所述out文件的加载。
2.根据权利要求1所述的方法,其特征在于,所述将需要加载的out文件从存储器中读取到内存,包括:
对所述存储器中的out文件的数据结构进行初始化;
将文件指针指向所述存储器中的out文件的起始地址;
获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
3.根据权利要求1所述的方法,其特征在于,在所述调用vxWorks***函数loadModule( )加载所述伪I/O设备文件之前,还包括:
调用接口函数open( )打开所述伪内存I/O设备文件,并获取文件描述符;
则,所述调用vxWorks***函数loadModule( )加载所述伪I/O设备文件,包括:
调用vxWorks***函数loadModule( )根据所述文件描述符加载所述伪内存I/O设备文件。
4.一种out文件加载装置,其特征在于,包括:
读取模块,与所述读取模块相连接的构造模块,与所述构造模块相连接的加载模块;
所述读取模块将需要加载的out文件从存储器中读取到内存;
所述构造模块调用vxWorks***函数memDrvCreate( )将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块调用vxWorks***函数loadModule( )加载所述伪I/O设备文件,实现对所述out文件的加载。
5.根据权利要求4所述的装置,其特征在于,所述读取模块,包括:
初始化单元,所述初始化单元对所述存储器中的out文件的数据结构进行初始化;
指向单元,所述指向单元将文件指针指向所述存储器中的out文件的起始地址;
获取单元,所述获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
6.根据权利要求4所述的装置,其特征在于,所述加载模块,包括:
获取单元,所述获取单元调用接口函数open( )打开所述伪内存I/O设备文件,并获取文件描述符;
加载单元,所述获取单元调用vxWorks***函数loadModule( )根据所述文件描述符加载所述伪内存I/O设备文件。
7.一种out文件加载***,其特征在于,包括:out文件加载装置,与所述out文件加载装置相连的存储器,所述存储器用于存储out文件;
所述out文件加载装置包括:
读取模块,与所述读取模块相连接的构造模块,与所述构造模块相连接的加载模块;
所述读取模块将需要加载的out文件从所述存储器中读取到内存;
所述构造模块调用vxWorks***函数memDrvCreate( )将所述内存中的所述out文件构造成伪I/O设备文件;
所述加载模块调用vxWorks***函数loadModule( )加载所述伪I/O设备文件,实现对所述out文件的加载。
8.根据权利要求7所述的***,其特征在于,所述读取模块,包括:
初始化单元,所述初始化单元对所述存储器中的out文件的数据结构进行初始化;
指向单元,所述指向单元将文件指针指向所述存储器中的out文件的起始地址;
获取单元,所述获取单元获取所述起始地址在所述存储器中相对于存储器基地址的偏移地址和大小。
9.根据权利要求7所述的***,其特征在于,所述加载模块,包括:
获取单元,所述获取单元调用接口函数open( )打开所述伪内存I/O设备文件,并获取文件描述符;
加载单元,所述获取单元调用vxWorks***函数loadModule( )根据所述文件描述符加载所述伪内存I/O设备文件。3 -->
CN201510057397.2A 2015-02-04 2015-02-04 一种out文件加载方法、装置及*** Active CN104572224B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510057397.2A CN104572224B (zh) 2015-02-04 2015-02-04 一种out文件加载方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510057397.2A CN104572224B (zh) 2015-02-04 2015-02-04 一种out文件加载方法、装置及***

Publications (2)

Publication Number Publication Date
CN104572224A true CN104572224A (zh) 2015-04-29
CN104572224B CN104572224B (zh) 2018-09-04

Family

ID=53088382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510057397.2A Active CN104572224B (zh) 2015-02-04 2015-02-04 一种out文件加载方法、装置及***

Country Status (1)

Country Link
CN (1) CN104572224B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423092A (zh) * 2017-07-20 2017-12-01 珠海市魅族科技有限公司 应用启动方法、装置、终端设备及存储介质
CN110515751A (zh) * 2018-05-22 2019-11-29 中车株洲电力机车研究所有限公司 一种加载运行VxWorks实时保护进程的方法及***
CN110780818A (zh) * 2019-10-24 2020-02-11 山东浪潮人工智能研究院有限公司 一种基于量子测控***软件读取任意数据的文件实现方法
CN113821273A (zh) * 2021-09-23 2021-12-21 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515239A (zh) * 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法
CN101661397A (zh) * 2008-08-29 2010-03-03 宇龙计算机通信科技(深圳)有限公司 实现程序动态加载的方法和生成映射文件的方法及设备
CN103309710A (zh) * 2013-06-09 2013-09-18 南车株洲电力机车研究所有限公司 一种vxworks操作***加载out文件方法及***
CN103729227A (zh) * 2014-01-27 2014-04-16 南车株洲电力机车研究所有限公司 一种out文件加载方法、装置及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661397A (zh) * 2008-08-29 2010-03-03 宇龙计算机通信科技(深圳)有限公司 实现程序动态加载的方法和生成映射文件的方法及设备
CN101515239A (zh) * 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法
CN103309710A (zh) * 2013-06-09 2013-09-18 南车株洲电力机车研究所有限公司 一种vxworks操作***加载out文件方法及***
CN103729227A (zh) * 2014-01-27 2014-04-16 南车株洲电力机车研究所有限公司 一种out文件加载方法、装置及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
苏玉强 等: ""VxWorks下基于直接内存访问的双机通信设计"", 《舰船电子工程》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423092A (zh) * 2017-07-20 2017-12-01 珠海市魅族科技有限公司 应用启动方法、装置、终端设备及存储介质
CN110515751A (zh) * 2018-05-22 2019-11-29 中车株洲电力机车研究所有限公司 一种加载运行VxWorks实时保护进程的方法及***
CN110515751B (zh) * 2018-05-22 2023-05-12 中车株洲电力机车研究所有限公司 一种加载运行VxWorks实时保护进程的方法及***
CN110780818A (zh) * 2019-10-24 2020-02-11 山东浪潮人工智能研究院有限公司 一种基于量子测控***软件读取任意数据的文件实现方法
CN110780818B (zh) * 2019-10-24 2023-05-30 山东浪潮科学研究院有限公司 一种基于量子测控***软件读取任意数据的文件实现方法
CN113821273A (zh) * 2021-09-23 2021-12-21 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN113821273B (zh) * 2021-09-23 2023-10-13 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质

Also Published As

Publication number Publication date
CN104572224B (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN103150231B (zh) 计算机开机的方法与计算机***
CN107832099B (zh) 一种客户端版本兼容的方法、装置及存储介质
CN105335181A (zh) 一种实现ota升级的方法和终端
CN101896889B (zh) 无线终端、无线终端的非易失存储器、诊断信息的可靠性保存方法
CN104572224A (zh) 一种out文件加载方法、装置及***
KR20090060774A (ko) 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
CN103777971A (zh) 电子装置、更新固件的方法与电脑可读取记录媒体
CN105045603A (zh) 一种构建有限状态机模型框架的方法、装置及电子装置
EP3063621A1 (en) Flexible bootstrap code architecture
WO2016078263A1 (zh) 升级控制设备、终端、终端升级方法及***、存储介质
CN111782300A (zh) 一种数据处理方法、装置、设备及***
CN103365701A (zh) 一种模拟读卡器的工作方法和模拟通信***
CN104298532A (zh) 一种软件升级方法及***
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
CN108196814A (zh) 语音输入方法及相关产品
CN114341800A (zh) 用于在电子设备中的应用更新之后提高运行时性能的方法和装置
CN109190367B (zh) 利用沙箱运行应用程序安装包的方法及装置
KR102405593B1 (ko) 전자 장치 및 그의 데이터 운용 방법
CN112612489B (zh) 软件的升级包构建方法、装置和电子设备
CN107667346A (zh) 基于熔断的固件块分派
CN107515757A (zh) 软件程序升级方法和***、终端
CN108804258A (zh) 数据恢复方法、装置、移动终端和存储介质
CN113900893A (zh) 一种日志获取方法及其相关设备
CN103645925B (zh) 在移动终端操作***中运行页面应用的方法及装置
CN108073427B (zh) Fpga镜像加载方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant