CN101430648A - 一种固化、加载镜像的方法及装置 - Google Patents
一种固化、加载镜像的方法及装置 Download PDFInfo
- Publication number
- CN101430648A CN101430648A CNA2008102408289A CN200810240828A CN101430648A CN 101430648 A CN101430648 A CN 101430648A CN A2008102408289 A CNA2008102408289 A CN A2008102408289A CN 200810240828 A CN200810240828 A CN 200810240828A CN 101430648 A CN101430648 A CN 101430648A
- Authority
- CN
- China
- Prior art keywords
- storage medium
- media drive
- operational attribute
- mirror image
- fexible unit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000007711 solidification Methods 0.000 claims description 56
- 230000008023 solidification Effects 0.000 claims description 56
- 230000000694 effects Effects 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 8
- 238000004321 preservation Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 239000000047 product Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000027455 binding Effects 0.000 description 9
- 238000009739 binding Methods 0.000 description 9
- 239000011800 void material Substances 0.000 description 8
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Landscapes
- Facsimiles In General (AREA)
Abstract
本发明公开了一种固化、加载镜像的方法,用于改进固化、加载过程,便于固化、加载镜像。所述方法包括:确定要固化或加载镜像的存储介质的介质驱动已注册到存储介质通用层;用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性;根据更新后的操作属性,通过对存储介质通用层的固化或加载操作,调用所述存储介质的介质驱动来将镜像固化到所述存储介质或者从存储介质加载镜像。本发明还公开了用于实现所述方法的装置和***。
Description
技术领域
本发明涉及嵌入式领域,特别是涉及固化、加载镜像的方法及装置。
背景技术
目前,在嵌入式领域,最终产品的软件部分(即镜像)均是烧入到硬件平台的非易失性介质中,如ROM、NOR FLASH、NAND FLASH等,该烧入过程为镜像的固化。在固化后,产品需要加载镜像后才能应用该软件。在现有技术中,镜像的固化和加载程序只能与一个存储介质的驱动绑定,若需要应用另一个存储介质中的镜像,则需要先解除与当前存储介质的驱动的绑定,再与所述另一个存储介质的驱动绑定,固化和加载其中的镜像。参见图1所示的示意图,这样的绑定操作使得镜像的固化和加载操作不灵活,给软件升级带来不便。
并且,目前的固化和加载过程需要配备专门的硬件和软件工具。例如,固化过程需要开发机端与设备端建立物理和逻辑上的链接,配置网卡或串口设备等,编写开发机端与设备端之间的驱动程序和通信程序等,然后设备端从开发机端下载镜像并将其固化到存储介质。产品的***再从存储介质中加载镜像。因此,产品发布后,如果需要对最终消费者设备上的软件进行更新,则需要从市面上召回所有产品,通过刷新软件的方式进行更新。如果是消费者自身要求更新软件部分,消费者需自己携带设备到产品发布者指定的维护站点对软件进行更新。
综上,现有技术的固化和加载过程给技术人员的开发过程和普通用户的软件升级过程都带来不便。
发明内容
本发明实施例提供一种固化、加载镜像的方法,用于改进固化、加载过程,便于固化、加载镜像。
一种固化镜像的方法,包括以下步骤:
确定要固化镜像的存储介质的介质驱动已注册到存储介质通用层;
用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性;
根据更新后的操作属性,通过对存储介质通用层的固化操作,调用所述存储介质的介质驱动来将镜像固化到所述存储介质。
一种加载镜像的方法,包括以下步骤:
确定保存需要加载的镜像的存储介质的介质驱动已注册到存储介质通用层;
用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性;
通过对存储介质通用层的加载操作,调用所述存储介质的介质驱动来加载所述存储介质中的镜像。
一种固化***,包括:
存储介质,用于保存镜像;
介质驱动,用于驱动存储介质;
固化装置,用于确定要固化镜像的存储介质的介质驱动已注册到存储介质通用装置,并根据存储介质通用装置更新后的操作属性,通过对存储介质通用装置的固化操作,调用介质驱动来将镜像固化到存储介质;
存储介质通用装置,用于根据要固化镜像的存储介质注册时在存储介质通用层中记录的操作属性,更新自身的操作属性,并根据固化装置对自身的操作,来调用介质驱动,将镜像固化到存储介质。
一种加载***,包括:
存储介质,用于保存镜像;
介质驱动,用于驱动存储介质;
加载装置,用于确定被加载镜像的存储介质的介质驱动已注册到存储介质通用装置,并根据存储介质通用装置更新后的操作属性,通过对存储介质通用装置的加载操作,调用介质驱动来从存储介质加载镜像;
存储介质通用装置,用于根据被加载镜像的存储介质注册时在存储介质通用层中记录的操作属性,更新自身的操作属性,并根据加载装置对自身的操作,来调用介质驱动,从存储介质加载镜像。
本发明实施例为了使固化装置和加载装置配合固化和加载过程的简化,对固化装置和加载装置做了改进,并提供应用在固化、加载过程中的存储介质通用装置。
一种固化装置,包括:
接口模块,用于连接存储介质通用装置;
检测模块,用于确定要固化镜像的存储介质的介质驱动已注册到存储介质通用装置;
操作模块,用于根据存储介质通用装置更新后的操作属性,通过接口模块对存储介质通用装置的固化操作,来调用所述存储介质的介质驱动,将镜像固化到所述存储介质。
一种加载装置,包括:
接口模块,用于连接存储介质通用装置;
检测模块,用于确定保存需要加载的镜像的存储介质的介质驱动已注册到存储介质通用层;
操作模块,用于根据存储介质通用装置更新后的操作属性,通过接口模块对存储介质通用装置的加载操作,来调用所述存储介质的介质驱动,加载所述存储介质中的镜像。
一种存储介质通用装置,包括:
接口模块,用于连接固化装置,并根据本地的操作属性接受固化装置的固化操作,来调用所述存储介质的介质驱动,将镜像固化到所述存储介质;
注册模块,用于记录已注册的存储介质的介质驱动及该存储介质的操作属性;
更新模块,用于根据注册模块中记录的固化镜像的存储介质的操作属性更新自身的操作属性;
操作模块,用于根据固化装置的操作指令和更新后的操作属性,调用所述存储介质的介质驱动,将镜像固化到所述存储介质。
一种存储介质通用装置,包括:
接口模块,用于连接加载装置,并根据本地的操作属性接受加载装置的加载操作,来调用所述存储介质的介质驱动,从所述存储介质中加载镜像;
注册模块,用于记录已注册的存储介质的介质驱动及该存储介质的操作属性;
更新模块,用于根据注册模块中记录的加载镜像的存储介质的操作属性更新自身的操作属性;
操作模块,用于根据加载装置的操作指令和更新后的操作属性,调用所述存储介质的介质驱动,从所述存储介质中加载镜像。
本发明实施例通过存储介质通用装置统一了存储介质的接口,使固化装置和加载装置只需面向存储介质通用装置,类似的,存储介质的介质驱动也只需面向存储介质通用装置,即在存储介质通用装置中注册,不再需要与各种开发端的固化装置和加载装置分别建立逻辑连接。固化装置和加载装置通过存储介质通用装置便可以对注册的各存储介质进行操作,不再需要频繁的建立绑定和解除绑定,并且不再局限于采用传统的通过网卡设备或串口设备固化和加载镜像。
附图说明
图1为现有技术中***的示意图;
图2为本发明实施例中固化***的结构图;
图3为本发明实施例中固化装置的结构图;
图4为本发明实施例中在固化过程中存储介质通用装置的结构图;
图5为本发明实施例中带有注册项链表的示意图;
图6为本发明实施例中固化镜像的主要方法流程图;
图7为本发明实施例中固化镜像的详细方法流程图;
图8为本发明实施例中介质驱动注册的方法流程图;
图9为本发明实施例中加载***的结构图;
图10为本发明实施例中加载装置的结构图;
图11为本发明实施例中固化***和加载***的示意图;
图12为本发明实施例中加载镜像的主要方法流程图;
图13为本发明实施例中加载镜像的详细方法流程图。
具体实施方式
本发明实施例设置一存储介质通用层(即存储介质通用装置),将存储介质的介质驱动与存储介质通用层绑定,固化装置和加载装置通过对存储介质通用层的操作来实现对介质驱动的调用,固化镜像到存储介质或从存储介质加载镜像。由于固化装置和加载装置只需连接存储介质通用层,不再面对各种各样的存储介质,类似的,各存储介质只需连接存储介质通用层,不再需要建立与各固化装置和加载装置的物理连接和逻辑连接;所以固化装置和加载装置可以通过存储介质通用层对任一存储介质操作,不再频繁的解除绑定或建立绑定,简化固化和加载过程。
本发明实施例中的存储介质包括NOR型闪存(NOR FLASH)、NAND型闪存(NAND FLASH)、安全数字(SecureDigita,SD)卡、多功能记忆卡(MultiMemoryCard,MMC)、U盘(USB Mass Storage Device)等。
参见图2,本实施例中的固化***包括存储介质201、介质驱动202、固化装置203和存储介质通用装置204。
存储介质201用于保存镜像。
介质驱动202用于驱动存储介质201,以及向存储介质通用装置204注册。一种存储介质201对应一个介质驱动202。介质驱动202可以在存储介质201与存储介质通用装置204所在的设备建立物理连接时,主动向存储介质通用装置204注册,或者存储介质通用装置204所在的设备发现连接的存储介质201时,存储介质通用装置204指示介质驱动202进行注册,或者在需要时存储介质通用装置204指示介质驱动202进行注册。
固化装置203用于确定要固化镜像的存储介质201的介质驱动202注册到存储介质通用装置204,发送用于指示存储介质通用装置204用要固化镜像的存储介质201的操作属性更新存储介质通用装置204的操作属性的更新指令,并根据更新后的操作属性,通过对存储介质通用装置204的操作,调用介质驱动202来将镜像固化到存储介质201。固化装置203在确定要固化镜像的存储介质201的介质驱动202注册到存储介质通用装置204过程中,固化装置203可以主动询问存储介质通用装置204某个存储介质201的介质驱动202是否已注册,或者,固化装置203向存储介质通用装置204发送表示启动固化的消息,存储介质通用装置204主动向固化装置203报告已注册的介质驱动202。
存储介质通用装置204用于根据更新指令或者依据表示开始固化镜像的消息自动的,用要固化镜像的存储介质201的操作属性更新自身的操作属性,并根据固化装置203对自身的操作,来调用介质驱动202,将镜像固化到存储介质201。存储介质通用装置204还用于为介质驱动202的注册项分配标识(ID)并建立注册项,以完成介质驱动202在存储介质通用装置204上的注册。
可以对固化装置203和存储介质通用装置204做进一步细化。
参见图3,固化装置包括接口模块301、检测模块302、控制模块303和操作模块304。
接口模块301用于连接存储介质通用装置204,与存储介质通用装置204进行交互。
检测模块302用于确定要固化镜像的存储介质201的介质驱动202注册到存储介质通用装置204,即生成用于询问存储介质通用装置204某存储介质201的介质驱动202是否已注册的询问请求;或者通过接口模块301接收存储介质通用装置204报告的已注册的介质驱动202,判断已注册的介质驱动202中是否有需要固化镜像的存储介质201的介质驱动202,若有,则指示控制模块303进行下一步,否则结束操作或生成用于通知存储介质通用装置204以便要求需要固化镜像的存储介质201的介质驱动202进行注册的消息,并通过接口模块301发送给存储介质通用装置204。
控制模块303用于生成指示存储介质通用装置204用固化镜像的存储介质201的操作属性更新自身的操作属性的更新指令,并通过接口模块301将更新指令发送给存储介质通用装置204。
操作模块304用于根据存储介质通用装置204更新后的操作属性,通过接口模块301对存储介质通用装置204操作,来调用所述存储介质201的介质驱动202,将镜像固化到所述存储介质201。
参见图4,存储介质通用装置204包括接口模块401、注册模块402、更新模块403和操作模块404。
接口模块401用于连接固化装置203,并根据本地的操作属性接受固化装置203的操作,来调用所述存储介质201的介质驱动202,将镜像固化到所述存储介质201。
注册模块402用于负责介质驱动202的注册,生成与注册有关的消息,如生成用于报告已注册的介质驱动202的消息等。注册模块402在注册过程中,为请求注册的介质驱动202的注册项分配标识并建立注册项,记录已注册的存储介质201的介质驱动202及该存储介质201的操作属性。注册模块402可以通过链表结构管理各介质驱动202的注册项,参见图5所示的示意图。
更新模块403用于根据接口模块401从固化装置203处接收到的更新指令,用注册模块402中记录的固化镜像的存储介质201的操作属性更新自身的操作属性。
操作模块404用于根据固化装置203的操作指令和更新后的操作属性,调用所述存储介质201的介质驱动202,将镜像固化到所述存储介质201。
接口模块401提供的接口函数包括:
LP_FUNC_OPEN*g_pfnOpen=NULL;∥打开介质驱动
LP_FUNC_CLOSE*g_pfnClose=NULL;∥关闭介质驱动
LP_FUNC_READ*g_pfnRead=NULL;∥从存储介质中读数据(即加载镜像)
LP_FUNC_WRITE*g_pfnWrite=NULL;∥向存储介质写数据(即固化镜像)
LP_FUNC_EREAE*g_pfnErase=NULL;∥擦除存储介质中的数据
其中,函数指针可定义为:
typdef HANDLE void(LP_FUNC_OPEN*)();
typdef BOOL void(LP_FUNC_CLOSE*)(HANDLE hd);
typdef BOOL void(LP_FUNC_READ*)(HANDLE hd,LONG lStartSect,LONGlLength,VOID*pBuf);
typdef BOOL void(LP_FUNC_WRITE*)(HANDLE hd,LONG lStartSect,LONGlLength,VOID*pBuf);
typdef BOOL void(LP_FUNC_ERASE*)(HANDLE hd,LONG lStartSect,LONGlLength,VOID*pBuf);
由于存储介质通用装置204需要支持各种存储介质201,所以接口模块401包括所有可能的接口函数,便于固化装置203对各种存储介质201的操作。
注册模块402所建立的注册项的结构为:
typedef struct_tag_Driver_Reg_Entry{
LONG lDevId;∥存储介质201的标识
LP_FUNC_OPEN*pfnOpen;∥操作属性“打开”
LP_FUNC_CLOSE*pfnClose;∥操作属性“关闭”
LP_FUNC_READ*pfnRead;∥操作属性“读”
LP_FUNC_WRITE*pfnWrite;∥操作属性“写”
LP_FUNC_Erase*pfnErase;/操作属性“擦除”
struct_tag_Driver_Reg_Entry*pNext;
}Driver_Reg_Entry;
以上只是列举了注册项中可能的操作属性,各注册项中的操作属性视对应的存储介质201的实际操作属性而定。
注册项的链表头可定义为:Driver_Reg_Entry*pDrvRegHd=NULL;
参见图6,固化镜像的主要方法流程如下:
步骤601:确定要固化镜像的存储介质的介质驱动已注册到存储介质通用层。
步骤602:用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性。
步骤603:根据更新后的操作属性,通过对存储介质通用层的固化操作,调用所述存储介质的介质驱动来将镜像固化到所述存储介质。
参见图7,固化镜像的详细方法流程如下:
步骤701:固化装置203根据用户的指示确定需要固化镜像的存储介质201,即获得该存储介质201的标识和种类等。该用户可以是普通用户也可以是专业技术人员。用户通过固化装置203所在的设备只能看到与该设备物理连接的存储介质201,因此用户指示的需要固化镜像的存储介质201已经与设备建立了物理连接。
步骤702:固化装置203判断存储介质201的介质驱动202是否已经注册,若是,则继续步骤705,否则继续步骤703。具体的,固化装置203向存储介质通用装置204发送带有存储介质201的标识(和/或种类)的询问消息,以询问该存储介质201的介质驱动202是否已经注册;存储介质通用装置204查询与存储介质201的标识对应的注册项,若查询到,则向固化装置203返回已注册的消息,否则返回未注册的消息;固化装置203根据存储介质通用装置204返回的消息判断存储介质201的介质驱动202是否已经注册。
步骤703:固化装置203通过存储介质通用装置204要求介质驱动202进行注册。
步骤704:介质驱动202进行注册的步骤,并且在注册成功时,存储介质通用装置204向固化装置203返回已注册的消息。
步骤705:固化装置203向存储介质通用装置204发送表示进行固化的消息,或者发送表示获得活动标识的消息。
步骤706:存储介质通用装置204将介质驱动202对应的注册项的标识设置为活动标识,并将其返回给固化装置203。用于设置活动标识的函数如下:
LONG fnSetActivID(LONG id);∥设置活动标识
步骤707:存储介质通用装置204获得活动标识,并根据该活动标识在注册项链表中查找注册项。用于获得活动标识的函数为:
LONG fnGetActiveID();∥获得当前活动的ID
步骤708:存储介质通用装置204可以自动或者根据固化装置203的指示,用活动标识对应的注册项所记录的操作属性更新自身的操作属性。即,存储介质通用装置204将自身提供的5个接口函数赋值为查找到的注册项中对应的函数指针。
步骤709:固化装置203依据存储介质通用装置204更新后的操作属性对存储介质通用装置204进行操作,实现调用介质驱动202,将镜像固化到存储介质201。
在步骤702-705中,可以由存储介质通用装置204作为执行主体。即,固化装置203向存储介质通用装置204发送表示进行固化的消息,其中携带有存储介质201的标识(和/或种类);存储介质通用装置204依据存储介质201的标识确定注册项的标识,并查找注册项链表中是否有该注册项,若有,则将该注册项的标识设置为活动标识,否则指示存储介质201的介质驱动202进行注册。存储介质通用装置204将活动标识返回给固化装置203,表示固化装置203可以依据该活动标识继续进行固化镜像的步骤。
在步骤705-步骤707中,可以不采用活动标识,直接获得需要固化镜像的存储介质201的介质驱动202所对应的注册项的标识即可,采用活动标识是为了明确操作对象,便于后续的操作。
在步骤704中提到介质驱动202进行注册的步骤,下面针对该注册过程进行详细介绍,参见图8所示,具体流程如下:
存储介质201已与存储介质通用装置204所在的设备建立物理连接。
存储介质201向存储介质通用装置204发送注册请求,该注册请求可具体通过注册函数“LONG fnRegStorMedia(Driver_Reg_Entry*pEntry);”实现。存储介质通用装置204依据收到的注册请求进行注册处理。
步骤801:存储介质通用装置204调用存储介质201对应的介质驱动202,获得存储介质201的操作属性。即,存储介质通用装置204检查传入参数Driver_Reg_Entry。
步骤802:存储介质通用装置204为介质驱动202对应的注册项分配标识,尤其是分配唯一标识。存储介质通用装置204可根据预设的算法分配唯一标识。
步骤803:存储介质通用装置204依据分配的标识为介质驱动202建立注册项,并在注册项中记录存储介质201的操作属性。即,存储介质通用装置204将分配的标识填入Driver_Reg_Entry结构中。
步骤804:存储介质通用装置204将建立的注册项***注册项链表,尤其是***注册项链表的头部。即,存储介质通用装置204将填入标识的Driver_Reg_Entry结构***到全局注册项链表pSrvRegHd的头部。全局注册链表头定义为:Dier_Reg_Entry*pDrvRegHd=NULL;
通过以上描述了解了固化镜像的过程,若希望应用镜像,还需要加载存储介质201中的镜像,下面介绍加载镜像的过程及用于实现该过程的装置和***。
参见图9,加载***包括存储介质201、介质驱动202、加载装置205和存储介质通用装置204。
存储介质201用于保存镜像。
介质驱动202用于驱动存储介质201,以及向存储介质通用装置204注册。
加载装置205用于确定要加载镜像的存储介质201的介质驱动202注册到存储介质通用装置204,发送用于指示存储介质通用装置204用加载镜像的存储介质201的操作属性更新自身的操作属性的更新指令,并根据更新后的操作属性,通过对存储介质通用装置的操作,调用介质驱动来从存储介质201加载镜像。加载装置205在确定要加载镜像的存储介质201的介质驱动202注册到存储介质通用装置204过程中,加载装置205可以主动询问存储介质通用装置204某个存储介质201的介质驱动202是否已注册,或者,加载装置205向存储介质通用装置204发送表示启动加载的消息,存储介质通用装置204主动向加载装置205报告已注册的介质驱动202。
存储介质通用装置204用于根据更新指令或者依据表示开始加载镜像的消息自动的,用加载镜像的存储介质201的操作属性更新自身的操作属性,并根据加载装置205对自身的操作,来调用介质驱动202,从存储介质201加载镜像。存储介质通用装置204还用于为介质驱动202的注册项分配标识(ID)并建立注册项,以完成介质驱动202在存储介质通用装置204上的注册。
通过以上描述清楚了固化***和加载***的结构,固化***和加载***可结合在一起,参见图11所示的示意图。
可以对加载装置205和存储介质通用装置204做进一步细化。
参见图10,加载装置包括接口模块1001、检测模块1002、控制模块1003和操作模块1004。
接口模块1001用于连接存储介质通用装置204,与存储介质通用装置204进行交互。
检测模块1002用于确定保存需要加载的镜像的存储介质201的介质驱动202注册到存储介质通用装置204,即生成用于询问存储介质通用装置204某存储介质201的介质驱动202是否已注册的询问请求;或者通过接口模块1001接收存储介质通用装置204报告的已注册的介质驱动202,判断已注册的介质驱动202中是否有需要加载镜像的存储介质201的介质驱动202,若有,则指示控制模块1003进行下一步,否则结束操作或生成用于通知存储介质通用装置204以便要求需要加载镜像的存储介质201的介质驱动202进行注册的消息,并通过接口模块1001发送给存储介质通用装置204。
控制模块1003用于生成指示存储介质通用装置204用加载镜像的存储介质201的操作属性更新自身的操作属性的更新指令,并通过接口模块1001将更新指令发送给存储介质通用装置204。
操作模块1004用于根据存储介质通用装置204更新后的操作属性,通过接口模块1001对存储介质通用装置204操作,来调用所述存储介质201的介质驱动202,加载所述存储介质201中的镜像。
参见图4,存储介质通用装置204中的各模块在加载过程中的功能如下:
接口模块401用于连接加载装置205,并根据本地的操作属性接受加载装置的操作,来调用所述存储介质201的介质驱动202,从所述存储介质201中加载镜像。
注册模块402用于负责介质驱动202的注册,生成与注册有关的消息,如生成用于报告已注册的介质驱动202的消息等。注册模块402在注册过程中,为请求注册的介质驱动202的注册项分配标识并建立注册项,记录已注册的存储介质201的介质驱动202及该存储介质201的操作属性。注册模块402可以通过链表结构管理各介质驱动202的注册项。
更新模块403用于根据接口模块401从加载装置205处接收到的更新指令,用注册模块402中记录的加载镜像的存储介质201的操作属性更新自身的操作属性。
操作模块404用于根据加载装置205的操作指令和更新后的操作属性,调用所述存储介质201的介质驱动202,从所述存储介质201中加载镜像。
参见图12,加载镜像的主要方法流程如下:
步骤1201:确定保存需要加载的镜像的存储介质的介质驱动已注册到存储介质通用层。
步骤1202:用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性。
步骤1203:通过对存储介质通用层的加载操作,调用所述存储介质的介质驱动来加载所述存储介质中的镜像。
参见图13,加载镜像的详细方法流程如下:
步骤1301:加载装置205根据用户的指示确定需要加载镜像的存储介质201,即获得该存储介质201的标识和种类等。启动引导程序(BOOTLOADER),若用户在计时结束前进入菜单,则用户从菜单中选择需要加载镜像的存储介质201;若用户在计时结束前未进入菜单,则确定当前默认的存储介质201为需要加载镜像的存储介质201。
步骤1302:加载装置205判断存储介质201的介质驱动202是否已经注册,若是,则继续步骤1305,否则继续步骤1303。
步骤1303:加载装置205通过存储介质通用装置204要求介质驱动202进行注册。
步骤1304:介质驱动202进行注册的步骤,并且在注册成功时,存储介质通用装置204向加载装置205返回已注册的消息。
步骤1305:加载装置205向存储介质通用装置204发送表示进行加载的消息,或者发送表示获得活动标识的消息。
步骤1306:存储介质通用装置204将介质驱动202对应的注册项的标识设置为活动标识,并将其返回给加载装置205。
步骤1307:存储介质通用装置204获得活动标识,并根据该活动标识在注册项链表中查找注册项。
步骤1308:存储介质通用装置204可以自动或者根据加载装置205的指示,用活动标识对应的注册项所记录的操作属性更新自身的操作属性。即,存储介质通用装置204将自身提供的5个接口函数赋值为查找到的注册项中对应的函数指针。
步骤1309:加载装置205依据存储介质通用装置204更新后的操作属性对存储介质通用装置204进行操作,实现调用介质驱动202,加载存储介质201上的镜像。
在步骤1302-1305中,可以由存储介质通用装置204作为执行主体。即,加载装置205向存储介质通用装置204发送表示进行加载的消息,其中携带有存储介质201的标识(和/或种类);存储介质通用装置204依据存储介质201的标识确定注册项的标识,并查找注册项链表中是否有该注册项,若有,则将该注册项的标识设置为活动标识,否则指示存储介质201的介质驱动202进行注册。存储介质通用装置204将活动标识返回给加载装置205,表示加载装置205可以依据该活动标识继续进行加载镜像的步骤。
下面通过一个典型应用场景来体现应用本实施例后固化和加载镜像的便利。以SD卡为例,对于开发者,可能开发板未包括网卡,并且串口已损坏,而SD卡口正常,这时可以将SD卡***SD卡口,将SD卡的驱动注册到存储介质通用装置204,如果已经注册,则注册过程可省略,开发板在不需要解除与其它驱动的绑定的情况下,将镜像固化到SD卡及加载SD卡中的镜像。对于普通用户,可以通过产品网站等途径将最新的镜像下载到SD卡。其中,如果用户通过带有SD卡的产品登录到产品网站,则SD卡的驱动可能已注册到产品中的存储介质通用装置204,可以直接将下载的镜像固化到SD卡。用户重启产品的操作***,从SD卡中加载镜像。可见,普通用户不需要专业的软硬件工具和较多的专业知识便可以升级产品的软件,使固化和加载镜像的过程变得简便易行。
用于实现本发明实施例的软件可以存储于软盘、硬盘、光盘和闪存等存储介质。
本发明实施例通过存储介质通用装置统一了存储介质的接口,使固化装置和加载装置只需面向存储介质通用装置,类似的,存储介质的介质驱动也只需面向存储介质通用装置,即在存储介质通用装置中注册,不再需要与各种开发端的固化装置和加载装置分别建立逻辑连接。固化装置和加载装置通过存储介质通用装置便可以对注册的各存储介质进行操作,不再需要频繁的建立绑定和解除绑定,并且不再局限于采用传统的通过网卡设备或串口设备固化和加载镜像。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1、一种固化镜像的方法,其特征在于,包括以下步骤:
确定要固化镜像的存储介质的介质驱动已注册到存储介质通用层;
用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性;
根据更新后的操作属性,通过对存储介质通用层的固化操作,调用所述存储介质的介质驱动来将镜像固化到所述存储介质。
2、如权利要求1所述的方法,其特征在于,在确定要固化镜像的存储介质的介质驱动注册到存储介质通用层之前,若所述存储介质的介质驱动未注册到存储介质通用层,则进行所述存储介质的介质驱动向存储介质通用层注册的步骤。
3、如权利要求2所述的方法,其特征在于,所述存储介质的介质驱动向存储介质通用层注册的步骤包括:
存储介质通用层接收所述存储介质的介质驱动发送的注册请求;
存储介质通用层为所述存储介质的介质驱动的注册项分配标识;
存储介质通用层依据分配的标识,为所述存储介质的介质驱动建立注册项,并在该注册项中记录所述存储介质的操作属性。
4、如权利要求3所述的方法,其特征在于,存储介质通用层采用链表结构存储注册项。
5、如权利要求1所述的方法,其特征在于,用所述存储介质的操作属性更新存储介质通用层的操作属性的步骤包括:
将所述存储介质的标识设置为活动标识;
根据该活动标识查找所述存储介质对应的注册项,获得所述存储介质的操作属性;
用获得的操作属性更新存储介质通用层的操作属性。
6、一种加载镜像的方法,其特征在于,包括以下步骤:
确定保存需要加载的镜像的存储介质的介质驱动已注册到存储介质通用层;
用所述存储介质注册时在存储介质通用层中记录的操作属性更新存储介质通用层的操作属性;
通过对存储介质通用层的加载操作,调用所述存储介质的介质驱动来加载所述存储介质中的镜像。
7、如权利要求6所述的方法,其特征在于,在确定保存需要加载的镜像的存储介质的介质驱动注册到存储介质通用层之前,若所述存储介质的介质驱动未注册到存储介质通用层,则进行所述存储介质的介质驱动向存储介质通用层注册的步骤。
8、如权利要求6所述的方法,其特征在于,用所述存储介质的操作属性更新存储介质通用层的操作属性的步骤包括:
将所述存储介质的标识设置为活动标识;
根据该活动标识查找所述存储介质对应的注册项,获得所述存储介质的操作属性;
用获得的操作属性更新存储介质通用层的操作属性。
9、一种固化装置,其特征在于,包括:
接口模块,用于连接存储介质通用装置;
检测模块,用于确定要固化镜像的存储介质的介质驱动已注册到存储介质通用装置;
操作模块,用于根据存储介质通用装置更新后的操作属性,通过接口模块对存储介质通用装置的固化操作,来调用所述存储介质的介质驱动,将镜像固化到所述存储介质。
10、一种加载装置,其特征在于,包括:
接口模块,用于连接存储介质通用装置;
检测模块,用于确定保存需要加载的镜像的存储介质的介质驱动已注册到存储介质通用层;
操作模块,用于根据存储介质通用装置更新后的操作属性,通过接口模块对存储介质通用装置的加载操作,来调用所述存储介质的介质驱动,加载所述存储介质中的镜像。
11、一种存储介质通用装置,其特征在于,包括:
接口模块,用于连接固化装置,并根据本地的操作属性接受固化装置的固化操作,来调用所述存储介质的介质驱动,将镜像固化到所述存储介质;
注册模块,用于记录已注册的存储介质的介质驱动及该存储介质的操作属性;
更新模块,用于根据注册模块中记录的固化镜像的存储介质的操作属性更新自身的操作属性;
操作模块,用于根据固化装置的操作指令和更新后的操作属性,调用所述存储介质的介质驱动,将镜像固化到所述存储介质。
12、一种存储介质通用装置,其特征在于,包括:
接口模块,用于连接加载装置,并根据本地的操作属性接受加载装置的加载操作,来调用所述存储介质的介质驱动,从所述存储介质中加载镜像;
注册模块,用于记录已注册的存储介质的介质驱动及该存储介质的操作属性;
更新模块,用于根据注册模块中记录的加载镜像的存储介质的操作属性更新自身的操作属性;
操作模块,用于根据加载装置的操作指令和更新后的操作属性,调用所述存储介质的介质驱动,从所述存储介质中加载镜像。
13、一种固化***,其特征在于,包括:
存储介质,用于保存镜像;
介质驱动,用于驱动存储介质;
固化装置,用于确定要固化镜像的存储介质的介质驱动已注册到存储介质通用装置,并根据存储介质通用装置更新后的操作属性,通过对存储介质通用装置的固化操作,调用介质驱动来将镜像固化到存储介质;
存储介质通用装置,用于根据要固化镜像的存储介质注册时在存储介质通用层中记录的操作属性,更新自身的操作属性,并根据固化装置对自身的操作,来调用介质驱动,将镜像固化到存储介质。
14、一种加载***,其特征在于,包括:
存储介质,用于保存镜像;
介质驱动,用于驱动存储介质;
加载装置,用于确定被加载镜像的存储介质的介质驱动已注册到存储介质通用装置,并根据存储介质通用装置更新后的操作属性,通过对存储介质通用装置的加载操作,调用介质驱动来从存储介质加载镜像;
存储介质通用装置,用于根据被加载镜像的存储介质注册时在存储介质通用层中记录的操作属性,更新自身的操作属性,并根据加载装置对自身的操作,来调用介质驱动,从存储介质加载镜像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810240828.9A CN101430648B (zh) | 2008-12-24 | 2008-12-24 | 一种固化、加载镜像的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810240828.9A CN101430648B (zh) | 2008-12-24 | 2008-12-24 | 一种固化、加载镜像的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101430648A true CN101430648A (zh) | 2009-05-13 |
CN101430648B CN101430648B (zh) | 2014-04-23 |
Family
ID=40646057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810240828.9A Active CN101430648B (zh) | 2008-12-24 | 2008-12-24 | 一种固化、加载镜像的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101430648B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688019A (zh) * | 2005-05-08 | 2005-10-26 | 薛萍 | 内置软硬件***的芯片及其制作方法 |
US20070038593A1 (en) * | 2005-08-10 | 2007-02-15 | Critchley Daniel S | Data Storage Control Apparatus And Method |
CN101021797A (zh) * | 2007-04-06 | 2007-08-22 | 中兴通讯股份有限公司 | 一种用于嵌入式***的软件修复和升级方法 |
CN101145953A (zh) * | 2007-06-13 | 2008-03-19 | 中兴通讯股份有限公司 | 网络设备管理软件动态调试的方法和*** |
-
2008
- 2008-12-24 CN CN200810240828.9A patent/CN101430648B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688019A (zh) * | 2005-05-08 | 2005-10-26 | 薛萍 | 内置软硬件***的芯片及其制作方法 |
US20070038593A1 (en) * | 2005-08-10 | 2007-02-15 | Critchley Daniel S | Data Storage Control Apparatus And Method |
CN101021797A (zh) * | 2007-04-06 | 2007-08-22 | 中兴通讯股份有限公司 | 一种用于嵌入式***的软件修复和升级方法 |
CN101145953A (zh) * | 2007-06-13 | 2008-03-19 | 中兴通讯股份有限公司 | 网络设备管理软件动态调试的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN101430648B (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559052B (zh) | 固件更新的设备与方法 | |
CN101763279B (zh) | 一种BootLoader架构设计方法 | |
CN102402442B (zh) | 信息处理装置、启动控制方法 | |
EP2189902A1 (en) | Information processor | |
CN102999349B (zh) | 一种软件升级方法 | |
CN103309709A (zh) | 一种固件升级方法、装置及通信设备 | |
JP2002099441A (ja) | 通信端末装置及び通信端末装置の動作方法 | |
WO2018090528A1 (zh) | 一种镜像包制作、应用运行方法及*** | |
CN115658160A (zh) | 基于多核异构soc的多操作***升级方法、装置及*** | |
CN106528226B (zh) | 操作***的安装方法及装置 | |
CN106155713B (zh) | 启动信息管理方法及装置 | |
CN101667133A (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN102857817B (zh) | 一种可动态加载的机顶盒生产***及方法 | |
JPH07191835A (ja) | コンピュータシステム | |
CN101430648A (zh) | 一种固化、加载镜像的方法及装置 | |
US20070079279A1 (en) | Embedded device with software registry | |
KR101461319B1 (ko) | 셋탑박스의 펌웨어 업그레이드 방법 및 펌웨어 업그레이드 장치 | |
CN108628619B (zh) | 程序更新方法和装置 | |
CN111356982A (zh) | 程序处理方法、设备及存储介质 | |
CN104239497A (zh) | 升级文件的清理方法和装置 | |
CN101770468B (zh) | WinCE映像文件自修改方法 | |
CN112241340A (zh) | 一种面向在线升级的启动和加载区域数据备份方法 | |
CN101826062A (zh) | 计算机执行方法以及电子*** | |
WO2007096991A1 (ja) | 初期診断プログラムの管理装置、管理方法およびプログラム | |
CN113360955B (zh) | 一种Applet管理方法、装置和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210129 Address after: No. 602, 6th floor, shining building, 35 Xueyuan Road, Haidian District, Beijing 100083 Patentee after: BEIJING ZHONGXINGTIANSHI TECHNOLOGY Co.,Ltd. Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor Patentee before: Vimicro Corp. |