公开/公告号CN1506822A
专利类型发明专利
公开/公告日2004-06-23
原文格式PDF
申请/专利权人 联想(北京)有限公司;
申请/专利号CN03109370.1
发明设计人 陈卫华;
申请日2003-04-08
分类号G06F11/00;G06F9/445;
代理机构11100 北京北新智诚知识产权代理有限公司;
代理人张卫华
地址 100085 北京市海淀区上地创业路6号
入库时间 2023-12-17 15:22:13
法律状态公告日
法律状态信息
法律状态
2023-04-25
专利权有效期届满 IPC(主分类):G06F11/00 专利号:ZL031093701 申请日:20030408 授权公告日:20080702
专利权的终止
2008-07-02
授权
授权
2005-10-26
实质审查的生效
实质审查的生效
2004-06-23
公开
公开
技术领域
本发明属于程序控制技术领域,具体地说是一种基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法。
背景技术
嵌入式系统因为考虑到稳定性、可靠性,一般都是封闭的系统,一旦需要更新硬件或应用软件就需要重新建立整个软件系统。陈卫华等在公开的嵌入式操作系统半自动升级方案中采用了每次硬件改动就从外部写入硬件驱动和升级标记,然后由系统完成升级的方法,但是很多时候可能只是有限几种硬件的更换,每次用外部程序写入更新信息完全没有必要,而且作为嵌入式操作系统应当尽量减少以外挂方式向系统写入数据,以保证系统的安全性。
发明内容
为克服上述不足,本发明的目的是提供一种基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法,当发生硬件或软件更新时,它可以尽可能少地从外界获取升级信息,尽量在封闭的环境中完成相应的硬件驱动更新和软件更新。
为完成上述目的,本发明采用的技术方案为:基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法,其步骤包括:
(a)在嵌入式系统中划出一专门区域做升级保留区,在升级保留区中保留一张已初始化的可扩充的备选驱动表;
(b)在升级保留区存放可升级硬件的驱动信息和说明信息、可升级应用程序的版本;
(c)在系统内集成一个专门用于升级的能挂接升级保留区的可执行升级程序;
(d)当需要更新硬件或软件时,用户使用该升级程序对用户所选择的硬件或软件进行更新,如果要更新的硬件是备选驱动表中没有的,则退出系统,直接向系统升级保留区写入全新的驱动文件,同时扩充备选驱动表。
需要更新的硬件驱动和软件必须在其加载前进行升级。
升级程序按以下步骤进行升级:
(a)进行身份校验;
(b)若校验通过,则挂接升级保留区并读取备选驱动表,否则重启动系统;
(c)询问是否升级并显示结果供选择,若升级则按用户选择的结果安装升级包,并按需要进行必要配置文件修改,若不升级则继续下一步骤;
(d)卸载升级保留区;
(e)完成升级,重启动系统。
本发明使用一套软件平台,经过简单选择配置即可适应多个不同的硬件平台,它增强了系统的可重用性,在备选驱动表建立比较充分的情况下,所有操作只是在系统内部完成,无需任何外部数据支持,具有较高的安全保证,同时,备选驱动表的可扩展性使得系统拥有对未知硬件的扩展接口。
附图说明
图1是本发明备选驱动表的分区结构图;
图2是本发明的升级程序的流程图;
图3是实施例操作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
以X86嵌入式系统实现个人电脑家电化,硬件平台基本元素是普通个人电脑的硬件,但同种类硬件拥有几个不同的型号或者类型,这样排列组合的结果有数十种,如果针对每和组合都设计一套软件平台,显然开发和维护成本过高。
参阅图1,本发明在该嵌入式系统中设有一个分区做升级保留区,该升级保留区在默认情况下不挂接。升级保留区中保留一张已初始化的可扩充的备选驱动表,并存放了可升级硬件的驱动信息和说明信息、可升级应用程序的版本。
在系统内集成一个专门用于升级的能挂接升级保留区的可执行升级程序,当需要更新硬件或软件时,用户使用该升级程序对用户所选择的硬件或软件进行更新,如果要更新的硬件是备选驱动表中没有的,则退出系统,直接向系统升级保留区写入全新的驱动文件,同时扩充备选驱动表。
驱动升级程序为一字符界面程序,在内核启动后即可以用转换键加U键呼出。所有需要更新的驱动必须在其加载前进行升级。以更新显卡驱动为例,我们通过启动时发送键码在系统启动时预置了两种方式:一种是直接启动到操作系统,此种显卡驱动已加载,不能进行更新,正常运行时都是这种情况,高级用户可以启动到字符界面然后手动启动操作系统,对显卡驱动的更新需要在这种情况下才能进行。同样的,对任何其他硬件驱动模块也需要在加载前更新。另一种是呼出驱动升级程序,该程序在高级用户模式下自动挂接上升级保留区,然后它按照备选驱动表的结构分别读取出当前可获得的备选驱动列表并列表显示给用户。
一个可能的界面为:当前显卡和要用的显卡,想换个驱动的方法是:首先定义驱动的名称、路径等,安装当前显卡驱动包,运行附加升级程序,某些硬件需要对相应的配置文件进行一些关键字的修改,升级驱动程序以当前显卡为参数,修改显卡驱动配置说明,包括添加段和修改当前使用驱动为要用显卡等,具体硬件各不相同,需要分别给出附加升级程序,完成功能和手工修改配置文件相同。
系统重启后默认进入正常应用中,驱动更新完成。需要注意的是,所有的驱动包应该在实验平台验证无误后再使用。
如图2所示,升级程序作为隐藏的应用集成在系统中可以由转换键加B键呼出,其操作流程是:先进行身份校验,若校验通过,则挂接升级保留区并读取备选驱动表,询问是否升级,然后按用户选择安装升级包,并按需要进行必要配置文件修改,卸载升级保留区,最后完成升级,重启动系统。若身份校验通不过,则直接启动系统。
下面是一个实例:
1.在X86嵌入式系统中设立一个升级保留分区hda18,其结构如下:
Tnt2_nv.rpm是驱动程序包,tnt2_nv.txt是驱动版本说明。
Application1.exe是一个应用程序。 《备选驱动表》BackupDriverList.tab的单元结构如下:Typedef struct HWInfoUnit{
int HWType; //硬件类型 如LX_VGA或APPLICATION
char HWName[80]; //硬件名称 如tnt2_nv或applicationl
char HWDriverLocat[256];
//升级包或程序的位置如/Driver/LX_VGA/tnt2_nv.rpm
或/Exe/Application1.exe};
2.升级程序Update.exe作为隐藏的应用集成在系统中,其操作流程如图3:
(a)进行身份校验;
(b)若校验通过,则挂接升级保留区并读取备选驱动表,否则重启动系统;
(c)询问是否升级并显示结果供选择,若升级则按用户选择的结果安装升级包,并按需
要进行必要配置文件修改,若不升级则继续下一步骤;
(d)卸载升级保留区;
(e)完成升级,重启动系统。
机译: 推荐基于非结构化数据的表单字段扩充
机译: 车辆诊断软件和/或待处理的机动车检查工作通知更新方法,例如用于乘用车,涉及基于与情况有关的参数,例如基于参数的更新软件和/或通知。车速
机译: 可快速更新软件的嵌入式系统及用于快速更新嵌入式系统软件的方法