驱动软件升级的方法及装置制造方法及图纸

技术编号:3856018 阅读:211 留言:0更新日期:2012-04-11 18:40
一种驱动软件升级的方法及装置,包括:首先,为需要进行驱动软件升级的设备对象设置驱动软件升级开始标识,所述驱动软件升级开始标识用于禁止应用程序调用所述设备对象对应的驱动对象管理的驱动函数;之后,对所述设备对象对应的驱动对象管理的驱动函数进行升级操作,即替换驱动函数;并在升级操作结束后,将所述驱动软件升级开始标识更新为驱动软件升级结束标识,所述驱动软件升级结束标识用于允许应用程序调用所述设备对象对应的驱动对象管理的驱动函数。本发明专利技术实施例实现了可以在不重新复位并初始化硬件的情况下完成相应的驱动软件的升级操作,即实现了不间断运行的驱动软件升级实现方案,从而降低了驱动软件升级过程对系统运行的影响。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种驱动软件升级的方法及装置
技术介绍
在嵌入式系统等计算机处理系统中,驱动软件是处于硬件和应用软件之 间的功能软件,其用于提供应用软件访问硬件的接口。同时,为满足应用等 方面的需求,还会对相应的驱动软件进行升级操作。目前,通常采用的驱动软件升级方式主要包括当需要升级驱动软件的 时候,首先,通知应用软件停止使用驱动软件,再卸载驱动软件,然后重新 加载新版本的驱动软件;接着,并升级后的新版本驱动软件对硬件进行复位 和重新初始化;最后,应用软件便可以使用新版本的驱动软件重新开始工 作。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题 在对驱动软件进行升级的过程中,对应的硬件需要重新复位并初始化,导致相应的系统运行过程也会被中断。这样,对于可靠性要求高的系统来说,中断运行则意味着可靠性降低。
技术实现思路
本专利技术的实施例提供了 一种驱动软件升级的方法及装置,以降低驱动软 件升级过程对系统运行的影响。一种驱动软件升级的方法,包括为需要进行驱动软件升级的设备对象设置驱动软件升级开始标识,所述 驱动软件升级开始标识用于指示禁止应用程序调用所述设备对象对应的驱动对象管理的驱动函数;对所述设备对象对应的驱动对象管理的驱动函数进行升级操作; 在升级操作结束后,将所述驱动软件升级开始标识更新为驱动软件升级结束标识,所述驱动软件升级结束标识用于指示允许应用程序调用所述设备对象对应的驱动对象管理的驱动函数。 一种驱动软件升级的装置,包括第一设置单元,用于为需要进行驱动软件升级的设备对象设置驱动软件 升级开始标识,所述驱动软件升级开始标识用于禁止调用所述设备对象对应 的驱动对象管理的驱动函数;升级操作单元,用于在所述第一标识设置单元设置所述驱动软件升级开始标识后,对所述设备对象对应的驱动函数进行升级操作;第二置单元,用于在所述升级操作单元执行的升级操作结束后,将所述 驱动软件升级开始标识更新为驱动软件升级结束标识,所述驱动软件升级结 束标识用于允许应用程序调用所述设备对象对应的驱动对象管理的驱动函数。由上述本专利技术的实施例提供的技术方案可以看出,其通过相应的驱动软 件升级开始标识和驱动软件升级结束标识将待升级的驱动软件与设备对象隔 离开,从而实现了可以在不重新复位设备的情况下完成相应的驱动软件的升 级操作,进而实现了不间断运行的驱动软件升级实现方案,降低了驱动软件 升级过程对系统运行的影响。附图说明6为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前 提下,还可以才艮据这些附图获得其他的附图。图1为本专利技术实施例提供的驱动软件升级过程示意图2为本专利技术实施例中相应的驱动软件框架示意图; 图3为本专利技术实施例提供的驱动软件升级方案的具体实现过程示意图; 图4为本专利技术实施例的应用实例示意图; 图5为本专利技术实施例提供的装置的结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而 不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例是在驱动软件被加载到内存中时,使用驱动对象的数据结 构管理相应的驱动函数,使用设备对象的数据结构管理应用程序在调用驱动 函数时使用的各种数据,同时设备对象与驱动对象之间可以存在多对一的关 系。具体地,在对驱动软件升级的时候,本专利技术实施例提供的驱动软件升级 的实现方案中,如图1所示,可以包括以下处理步骤步骤11 ,为需要进行驱动软件升级的设备对象设置驱动软件升级开始标 识,通过驱动软件升级开始标识禁止调用该设备对象对应的驱动对象管理的 驱动函凄t。步骤12,对相应的设备对象对应的驱动对象管理的驱动函数进行升级操7作,即使用升级后的驱动函数替代升级前的驱动函数。具体地,该步骤中,可以将该(上述/需要进行升级操作的)驱动函数对 应的部分或全部驱动代码更新为升级后的驱动函数对应的部分或全部驱动代 码。步骤13,在升级操作结束后,将相应的驱动软件升级开始标识更新为驱 动软件升级结束标识,以通过驱动软件升级结束标识允许应用程序调用所述 设备对象对应的驱动对象管理的驱动函数。进一 步地,若在对所述设备对象对应的驱动软件进行升级操作的过程 中,相应的设备对象中的私有数据需要被更新,则还更新该设备对象中的数 据,以便于可以使得可以通过更新后的数据指示调度该设备对象对应的驱动 对象管理的驱动函数时使用的参数。本专利技术实施例中,还提供了针对驱动升级过程中的中断及阻塞的驱动函 数的处理,具体可以在对所述设备对象对应的驱动对象管理的驱动函数进行 升级操作之前,调用驱动软件对应的驱动升级开始回调函数,以通过所述驱 动升级开始回调函数关闭中断,并令当前阻塞的驱动函数调用结束。并且, 在对所述设备对象对应的驱动对象管理的驱动函数进行升级操作之后,调用 驱动对象管理的驱动升级结束回调函数,以通过所述驱动升级结束回调函数 重新挂接中断处理函数。通过上述本专利技术实施例的实现,使得在驱动软件升级的过程中,可以保 证系统不间断运行,即升级驱动软件的过程中硬件不用中断运行,上层软件 不用感知驱动软件的升级。而且,通过本专利技术实施例提供的技术方案,可以打补丁方式进行驱动软件升级。为便于对本专利技术实施例的理解,下面将结合具体的应用对本专利技术实施例 的实现过程进行详细说明。本专利技术实施例中,为了能够方便对驱动软件进行运行时升级,具体可以使用对象化的思想对驱动软件进行管理,以形成标准的驱动软件框架,并基于该标准的驱动软件框架实现相应的驱动升级操作。为了便于理解本专利技术实施例提供的驱动软件升级实现方案,下面将对相应的标准的驱动软件框架进行说明。如图2所示,相应的标准的驱动软件框架具体可以包括驱动模块对象,用于管理驱动模块,具体用于管理驱动模块对应的驱动函数, 一个驱动代码编译后形成的载体便为相应的一个驱动模块,每个驱动模块对象对应一组驱动函数, 一个驱动模块被加载后生成一个驱动模块对象。驱动程序对象,用于管理驱动代码,具体用于管理的驱动函数,每个驱动程序对象对应一组驱动函数,驱动代码被加载后便会生成一个或多个驱动程序对象;设备对象,用于管理设备资源,对应具体的设备,在设备初始化时会生成相应的设备对象, 一个或多个设备对象对应一个驱动程序对象;文件对象,用于管理会话,用户操作设备时打开设备获得设备句柄,每个句柄索引 一个文件对象, 一个或多个文件对象对应一个设备对象。上述驱动模块对象和驱动程序对象即为相应的驱动软件中的驱动对象。若采用图2所示的驱动软件框架对驱动进行管理,则相应的驱动软件(即驱动代码)与设备对象中的数据是分离的,这样,便可以实现针对嵌入式等计算机系统的不间断运行升级驱动软件,即在升级驱动软件时,仅替换驱动代码,以通过替换后的驱动代码生成新的驱动模块对象和驱动程序对象。在整个驱动软件升级过程中,不删除设备对象,不复位硬件。为实现不间断运行升级驱动软件,本专利技术实施例中,还针对每个本文档来自技高网...

【技术保护点】
一种驱动软件升级的方法,其特征在于,包括: 为需要进行驱动软件升级的设备对象设置驱动软件升级开始标识,所述驱动软件升级开始标识用于禁止应用程序调用所述设备对象对应的驱动对象管理的驱动函数; 对所述设备对象对应的驱动对象管理的驱动 函数进行升级操作; 在所述升级操作结束后,将所述驱动软件升级开始标识更新为驱动软件升级结束标识,所述驱动软件升级结束标识用于允许应用程序调用所述设备对象对应的驱动对象管理的驱动函数。

【技术特征摘要】

【专利技术属性】
技术研发人员:薛维
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1