专利名称:一种单板驱动的加载方法和通信设备的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种单板驱动的加载方法和通信设备。
背景技术:
目前,通信领域部分设备的单板上仅集成了用于加载映像程序的启动加载BOOT 程序,上述映像程序一般都存放于外部存储设备中,比如外部硬盘、操作管理(Operate and Management, 0M)服务器等。而现有技术中上述映像程序是由“操作系统”、“应用软件”、以及“驱动软件”三者共同编译链接而生成的。但是目前单板上硬件的变化日新月异,比如某种器件的停产,或者降低成本的改造等都会造成单板的升级。由于单板硬件的升级必然会导致上述“驱动软件”的对应升级, 这就导致了每次单板硬件的升级都需要重新编译和发布映像程序,这不仅会增加研发成本,而且需要客户进行频繁的对映像程序进行升级,给客户带来了不便。
发明内容
本发明实施例提供了一种单板驱动的加载方法和通信设备,使得单板硬件升级时不必更新映像程序,降低研发成本。一方面,本发明实施例提出了一种单板驱动的加载方法,该方法包括加载外设驱动,所述外设驱动位于所述单板的本地存储单元;加载需要链接的操作系统程序,所述操作系统程序位于所述单板的非本地存储单元;根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。另一方面,本发明实施例还提出了一种通信设备,包括,系统单板,所述系统单板包括本地存储单元,用于存储外设驱动;控制处理器,用于加载需要链接的操作系统程序及所述外设驱动,所述操作系统程序位于所述单板的非本地存储单元;根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。本发明实施例中单板内外设的驱动都存储在单板的存储单元中,使得单板上外设升级时,只需要将存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行编译,即映像程序不再需要进行改动。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种单板的加载方法的流程示意图;图2为本发明实施例提供的另一种单板的加载方法的流程示意图;图3为本发明实施例提供的一种硬件配置文件的构成示意图4为本发明实施例提供的一种通信设备的结构示意图;图5为本发明实施例提供的另一种通信设备的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示为本发明实施例提供的一种单板驱动的加载方法的流程示意图,本实施例是从单板侧对本发明进行的说明,该方法包括如下步骤SlOl 加载外设驱动,该外设驱动位于单板的本地存储单元之内;在本发明实施例中的单板可以是通信领域的单板(如各种业务板、管理板等),也可以是PC领域的单板(如PC机的主板)。这里的外设是指位于单板上的各种芯片,当该单板为电信领域内的框式设备中的一块单板时,这些外设比如可以为业务网口芯片、局域网交换(Lanswitcti)芯片、异步传输模式(Asynchronous Transfer Mode, ATM)芯片等;而当该单板为PC内的主板时,这些外设比如可以为显卡、网卡、南桥控制器、北桥控制器等。上述芯片的驱动程序都位于单板的本地存储单元之内,本地存储单元是指与单板位于同一物理板上的存储单元,该本地存储单元可以采用非易失性存储单元,比如闪存 (FLASH)、非易失性随机访问存储器(Non-VolatileRandom Access Memory, NVRAM)等。S102:加载需要链接的操作系统程序,所述操作系统程序位于所述单板的非本地存储单元;在本实施例中非本地存储单元是指与单板有联系,但不在同一物理板之上的存储设备,比如当该单板为电信领域内的框式设备中的一块单板时,该非本地存储单元可以位于文件服务器中、或者位于主控单板之上;而当该单板为个人电脑(Personal Computer, PC)内的主板时,该非本地存储单元可以为PC内的硬盘。操作系统程序以映像程序的形式存储在非本地存储单元之中,为了说明方便,在本实施例中用操作系统来表示映像程序,在实际应用中,映像程序中还可以包括各种应用程序,由于这些应用程序都依赖于操作系统,因此,在某种程度上也可以将其看成是操作系统的一部分,在此并不严格区分。需要指出的是,本发明实施例并不限定上述步骤SlOl和步骤S102的执行顺序,可以先加载外设驱动或者先加载操作系统程序。S103 根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。由于外设驱动和操作系统程序分别存储在不同的存储单元内,因此它们之间并未进行链接,因此需要通过本步骤来完成外设驱动和操作系统程序间的链接。本发明实施例中单板内外设的驱动都存储在单板的本地存储单元中,使得单板上的外设升级时,只需要将本地存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行重新编译链接,即映像程序不再需要进行改动。另外,应用了本发明实施例所述方法的PC机,如果用户更换其他型号的单板,也不再需要重新安装操作系统了,而现有技术中一般如果PC机用户更换其他型号的主板是需要重新安装操作系统的。如图2所示为本发明实施例提供的另一种单板驱动的加载方法的流程示意图,该方法包括如下步骤S201 加载并运行单板的本地存储单元内的BIOS程序来初始化基本输入输出系统;在本实施例中,先将单板的本地存储单元内的BIOS程序加载到内存,然后运行。 单板上的本地存储单元可以是一个物理存储设备,也可以由多个独立的物理存储设备构成。上述基本输入输出系统的初始化可以包括初始化中央处理器 (CentralProcessing Unit, CPU)的寄存器配置、内存控制器配置、高速缓冲存储器 (Cache)、中断、调试串口、调试网口等。S202 根据所述单板的本地存储单元内的硬件配置文件来加载位于所述本地存储单元内的外设驱动;为了方便从单板存储单元内加载外设驱动,以及方便用户查询外设的相关数据, 可以先生成一份硬件配置文件,来记录单板中外设的芯片种类、数量、驱动名称和位置等信息,然后将该硬件配置文件存储于单板存储单元内。如图3所示为本发明实施例提供的一种硬件配置文件的构成示意图,该硬件配置文件中包括了基本输入输出系统配置数据和外设芯片配置数据,其中基本输入输出系统配置数据包括CPU寄存器配置和内存片选配置数据;外设芯片配置数据包括芯片a、b、c的配置数据,当然,本发明实施例并不限于上述配置数据。这种模块化的配置,有利于本地存储单元内数据的管理。作为本发明的一个实施例,上述关于外设的硬件配置文件可以包括外设名称、驱动名称、驱动存放位置和芯片初始化参数等数据,当然,上述数据并不都是必需的,本发明实施例也并不限定硬件配置文件仅包括上述数据,其他用来描述外设的相关数据也可以放入硬件配置文件中。在本实施例中,单板的本地存储单元内除了上述的BIOS程序,还包括硬件配置文件和外设驱动,而这些BIOS程序、硬件配置文件和外设驱动可以位于本地存储单元内的一个物理存储设备内,也可以位于不同的物理存储设备内。作为本发明的一个实施例,可以将上述BIOS程序编译成一个软件包存储在本地存储单元内,而将各个外设驱动独立编译成若干个软件包;也可以将两个或两个以上具有功能相关性的外设驱动编译成一个软件包。在本实施例中把BIOS与外设驱动独立编译,有利于BIOS本身的稳定性和重用性。譬如,外设变化时,可以不用重新编译BIOS,只需要重新编译外设驱动即可。S203:加载需要链接的操作系统程序,所述操作系统程序位于所述单板的非本地存储单元;该步骤和步骤S102相类似,在此不再进行赘述。需要指出的是,本发明实施例并不限定上述步骤S202和步骤S203的执行顺序,可以先加载外设驱动或者先加载操作系统程序。S204 根据操作系统程序对外设驱动进行链接,使得所述外设驱动能够正常运行;
作为本发明的一个实施例,可以利用动态链接技术或二次链接技术来对所述操作系统程序和所述外设驱动进行链接。动态链接技术是指先将驱动程序预编译成Obj或ddl库,在这种方式下,驱动程序内部已经完成了链接,但是驱动程序引用操作系统程序的函数或者变量没有完成链接。在加载obj或ddl库时,通过动态链接技术完成obj或ddl库对操作系统程序引用函数或者变量的查找和链接。二次链接技术可以包括如下步骤a、将外设驱动程序和操作系统程序各自编译成二进制文件,比如bin文件;b、在外设驱动程序bin文件中提供一虚拟程序来对外设驱动程序bin文件中引用操作系统程序bin文件的函数和变量进行虚拟链接;C、将所述虚拟程序链接至所述操作系统程序bin文件中的函数或变量实体中。需要指出的是,步骤a和b是预先完成的,在本步骤中,如果利用二次链接技术进行链接,则只需执行步骤c即可。S205 初始化与操作系统内核无关的外设;在本实施例中,上述与操作系统内核无关的外设比如可以包括输入/输出 (Input/Output, I/O)控制芯片、逻辑芯片等。S206 初始化操作系统程序中的操作系统内核;S207 初始化与操作系统内核相关的外设;由于上述与操作系统内核相关的外设的驱动会调用到操作系统提供的内存管理、 互斥等服务,因此这部分外设需要在操作系统内核初始化后才能开始初始化。在本实施例中,上述与操作系统内核相关的外设比如可以包括业务网口、Lanswitch芯片、硬盘等。S208 初始化操作系统的扩展服务。在本实施例中,上述操作系统的扩展服务可以包括哈希(HASH)库、监控、协议栈、调试工、网络文件系统、数据库等。上述步骤S205-S208中对于外设的初始化采用了分类初始化的方法,而现有技术中对于外设的初始化一般是在操作系统初始化之后才开始进行的,比如在操作系统的内核及扩展服务全部初始化后再进行外设的初始化。采用本发明实施例的分类初始化的方法, 可以解决部分外设需要在操作系统启动前完成初始化的特殊需求。譬如,某些特殊硬件安全芯片,需要在操作系统初始化前完成初始化,用于控制系统的安全性。本发明实施例中单板内外设的驱动都存储在单板的本地存储单元中,使得单板上的外设升级时,只需要将本地存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行重新编译链接,即映像程序不再需要进行改动。另外,应用了本发明实施例所述方法的PC机,如果用户更换其他型号的单板,也不再需要重新安装操作系统了,而现有技术中一般如果PC机用户更换其他型号的主板是需要重新安装操作系统的。如图4所示为本发明实施例提供的一种通信设备的结构示意图,该通信设备至少包括系统单板410和非本地存储单元420,而系统单板410又包括本地存储单元411和控制处理器412,其中本地存储单元411是指与系统单板位于同一单板的存储单元,用于存储外设驱动,该本地存储单元可以采用非易失性存储单元,比如FLASH、NVRAM等。这里的外设是指位于系统单板410上的各种芯片,这些外设比如可以为业务网口芯片、Lanswitch芯片、ATM芯
Jn寸。控制处理器412用于加载需要链接的操作系统程序及外设驱动,该操作系统程序位于非本地存储单元420 ;控制处理器412还用于根据该操作系统程序对外设驱动进行链接,使得外设驱动能够正常运行。在本实施例中非本地存储单元420是指与系统单板410有联系,但不在系统单板 410之上的存储设备,比如可以为网络服务器,硬盘等。控制处理器412所加载的操作系统程序可以映像程序的形式存储在非本地存储单元420之中,与现有技术不同的是,在本实施例中位于上述非本地存储单元420内的映像程序仅包括操作系统程序,当然,在本实施例中映像程序中还可以包括各种应用程序。由于外设驱动和操作系统程序分别存储在不同的存储单元内,因此它们之间并未进行链接,因此需要控制处理器412来完成外设驱动和操作系统程序间的链接。本发明实施例中单板内外设的驱动都存储在单板的本地存储单元中,使得单板上的外设升级时,只需要将本地存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行重新编译链接,即映像程序不再需要进行改动。另外,应用了本发明实施例所述方法的PC机,如果用户更换其他型号的主板,也不再需要重新安装操作系统了,而现有技术中一般如果PC机用户更换其他型号的主板是需要重新安装操作系统的。如图5所示为本发明实施例提供的另一种通信设备的结构示意图,该通信设备至少包括系统单板510和非本地存储单元520,系统单板510又包括本地存储单元511、控制处理器512、内存控制器、网口、串口和多个外设,其中本地存储单元511、内存控制器、网口、串口和多个外设都分别和控制处理器512相连。在本实施例中,非本地存储单元520用于存储操作系统程序,本地存储单元511用于存储BIOS程序、对应各个外设的外设驱动以及硬件配置信息,该硬件配置信息可以包括外设名称、驱动名称、驱动存放位置和芯片初始化参数,具体可以参见对图3的描述。上述非本地存储单元520比如可以为网络服务器、硬盘等,而本地存储单元511可以包括一个或多个物理存储设备,该物理存储设备比如可以采用FLASH、NVRAM等。作为本发明的一个实施例,可以将上述BIOS程序编译成一个软件包存储在本地存储单元511内,而将各个外设驱动独立编译成若干个软件包;也可以将两个或两个以上具有功能相关性的外设驱动编译成一个软件包。在本实施例中把BIOS与外设驱动独立编译,有利于BIOS本身的稳定性和重用性。譬如,外设变化时,可以不用重新编译BIOS,只需要重新编译外设驱动即可。在该通信设备上电后,控制处理器512用于从本地存储单元511内加载BIOS程序,并运行该BIOS程序来初始化基本输入输出系统,比如初始化内存控制器配置、调试串口、调试网口等。控制处理器512还用于从非本地存储单元520内加载操作系统程序以及从本地存储单元511内加载外设驱动,当控制处理器512用于从本地存储单元511内加载外设驱动时,其会根据本地存储单元511内的硬件配置文件来加载外设驱动。当控制处理器512加载完操作系统程序以及外设驱动后,其还用于根据该操作系统程序外设驱动进行链接,使得外设驱动能够正常运行。这里控制处理器可以利用动态链接技术或者二次链接技术来完成上述链接,具体链接方法请参见前述实施例。作为本发明的一个实施例,控制处理器512还用于初始化与所述操作系统程序中的操作系统内核无关的外设;初始化所述操作系统内核;初始化与所述操作系统内核相关的外设。控制处理器512采用本发明实施例的分类初始化的方法,可以解决部分外设需要在操作系统启动前完成初始化的特殊需求。本发明实施例中单板内外设的驱动都存储在单板的本地存储单元中,使得单板上的外设升级时,只需要将本地存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行重新编译链接,即映像程序不再需要进行改动。另外,应用了本发明实施例所述方法的PC机,如果用户更换其他型号的单板,也不再需要重新安装操作系统了,而现有技术中一般如果PC机用户更换其他型号的主板是需要重新安装操作系统的。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种单板驱动的加载方法,其特征在于,所述方法包括 加载外设驱动,所述外设驱动位于所述单板的本地存储单元;加载需要链接的操作系统程序,所述操作系统程序位于所述单板的非本地存储单元; 根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。
2.如权利要求1所述的方法,其特征在于,所述根据所述操作系统程序对所述外设驱动进行链接包括利用动态链接技术对所述操作系统程序和所述外设驱动进行链接; 或者,利用二次链接技术来对所述操作系统程序和所述外设驱动进行链接,所述二次链接技术包括将外设驱动程序和操作系统程序各自编译成二进制文件;在外设驱动程序二进制文件中提供一虚拟程序来对外设驱动程序二进制文件中引用操作系统程序二进制文件的函数和变量进行虚拟链接;将所述虚拟程序链接至所述操作系统程序二进制文件中的函数或变量实体中。
3.如权利要求1所述的方法,其特征在于,所述加载外设驱动之前还包括加载并运行所述单板的本地存储单元内的BIOS程序来初始化基本输入输出系统。
4.如权利要求1所述的方法,其特征在于,所述加载外设驱动包括根据所述单板的本地存储单元内的硬件配置文件来加载位于所述本地存储单元内的外设驱动,所述硬件配置文件包括外设名称、驱动名称、驱动存放位置和芯片初始化参数。
5.如权利要求1所述的方法,其特征在于,所述根据所述操作系统程序对所述外设驱动进行链接之后,还包括初始化所述操作系统程序中的操作系统内核。
6.如权利要求5所述的方法,其特征在于,还包括在初始化所述操作系统程序中的操作系统内核之前,初始化与所述操作系统内核无关的外设;在初始化所述操作系统程序中的操作系统内核之后,初始化与所述操作系统内核相关的外设。
7.一种通信设备,其特征在于,包括,系统单板,所述系统单板包括 本地存储单元,用于存储外设驱动;控制处理器,用于加载需要链接的操作系统程序及所述外设驱动,所述操作系统程序位于所述单板的非本地存储单元;根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。
8.如权利要求7所述的通信设备,其特征在于, 所述本地存储单元还用于存储BIOS程序;所述控制处理器还用于加载所述BIOS程序来初始化基本输入输出系统。
9.如权利要求7所述的通信设备,其特征在于,所述本地存储单元还用于存储硬件配置文件,所述硬件配置文件包括外设名称、驱动名称、驱动存放位置和芯片初始化参数;所述控制处理器具体用于根据所述本地存储单元内的硬件配置文件来加载外设驱动。
10.如权利要求7所述的通信设备,其特征在于,所述控制处理器还用于 初始化与所述操作系统程序中的操作系统内核无关的外设; 初始化所述操作系统内核; 初始化与所述操作系统内核相关的外设。
全文摘要
本发明实施例提供了一种单板驱动的加载方法和通信设备,该方法包括加载外设驱动,所述外设驱动位于所述单板的本地存储单元;加载需要链接的操作系统程序,所述操作系统程序位于所述单板的非本地存储单元;根据所述操作系统程序对所述外设驱动进行链接,使得所述外设驱动能够正常运行。本发明实施例中单板内外设的驱动都存储在单板的本地存储单元中,使得单板上外设升级时,只需要将本地存储单元中对应的外设驱动进行升级即可,而不再需要对升级后的外设驱动、应用程序和操作系统一起进行编译,即映像程序不再需要进行改动。
文档编号G06F9/445GK102193804SQ20101011849
公开日2011年9月21日 申请日期2010年3月3日 优先权日2010年3月3日
发明者刘道根, 易非, 王伟, 邓鹏 申请人:华为技术有限公司