自启动模块及其实现方法,单板和单板自启动方法

文档序号:6480926阅读:208来源:国知局
专利名称:自启动模块及其实现方法,单板和单板自启动方法
技术领域
本发明涉及自启动技术领域,尤其涉及一种自启动模块, 一种自启动模 块实现方法, 一种单板和一种单板自启动方法。
背景技术
在现有技术中,通过将编译完成的启动运行文件烧结到存储介质中构成
自启动模块(BootRom) , CPU上电通过读取BootRom完成单板驱动。 一方面,出于节约成本和/或单板设计中存储介质空间分配的需求,
要求BootRom尽量占用较小的空间;另一方面,单板功能的不断增加又
要求自动运行文件能够支持更多的驱动种类,这必然导致BootRom需要
占用更大的空间。
上述两方面的要求难以并存,也就是说,当需要节约存储空间时,
就不得不剪裁BootRom的功能;而当BootRom被要求支持较多的单板功
能时,就必然要在存储介质中占用更多的空间。

发明内容
本发明的实施例旨在克服上述现有技术中的缺陷,提供一种BootRom及 其实现方案,其能够在不剪裁单板功能的同时,降低对存储空间的占用。
为实现上述目的,本发明的实施例提供了一种BootRom,设置于单板中, 包括
自启动头单元,用于烧结预设的基本驱动,其至少包括CPU驱动和 内存驱动;
自启动压縮单元,用于以预设的压縮方式烧结所述基本驱动以外的 其它驱动;
解压縮接口单元,用于在所述自启动头单元启动成功后,读取所述 自启动压縮单元中的驱动并解压释放到单板内存中。其中,基本驱动还可以包括串口驱动、Flash驱动、USB驱动、CF (CompactFlash)卡驱动、文件系统驱动、BootRom管理驱动、网口驱 动、协议驱动之一或任意组合;其它驱动可以包括串口驱动、Flash驱动、 USB驱动、CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、 协议驱动之一或任意组合;其中,基本驱动和其它驱动不重合。
其中,所述自启动头单元、自启动压縮单元以及解压縮接口单元彼 此独立。
其中,所述预设的压縮方式包括但不限于ARJ压縮、RAR压縮或7ZIP压縮。
本发明的实施例还提供了一种BootRom实现方法,包括以下步骤 步骤Sl:对BootRom中的驱动进行分类,其中基本驱动至少包括
CPU驱动和内存驱动;
步骤S2:以预设的压縮方式对所述基本驱动以外的其它驱动进行压
縮;
步骤S3:将所述基本驱动烧结在单板存储介质中构成自启动头单元, 将所述压縮后的驱动烧结在单板存储介质中构成自启动压縮单元,以及, 提供与所述压縮方式相匹配的解压縮接口并烧结在单板存储介质中构成 解压縮接口单元;
步骤S4:关联上述单板存储介质中的自启动头单元、自启动压縮单
元和解压縮接口单元构成BootRom,使所述自启动头单元启动成功后,
触发所述解压縮接口单元读取所述自启动压縮单元中的驱动并解压释放
到单板内存中。
其中,所述基本驱动还可以包括串口驱动、Flash驱动、USB驱动、 CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动之 一或任意组合;其它驱动可以包括串口驱动、Flash驱动、USB驱动、CF 卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动之一 或任意组合;其中,基本驱动和其它驱动不重合。
其中,所述预设的压縮方式包括但不限于ARJ压縮、RAR压縮或7ZIP压縮。
本发明的实施例还提供了一种设有上述BootRom的单板。
本发明的实施例还提供了一种设有上述BootRom的单板自启动方 法,在单板CPU上电后执行以下步骤
步骤Sa:调用自启动头单元,至少执行CPU初始化和内存初始化;
步骤Sb:调用解压縮接口单元,读取所述自启动压縮单元中的驱动
并解压释放到单板内存中;
步骤Sc:执行解压后的其它驱动。
其中,所述步骤Sc之前还包括识别解压后文件中是否包括全局偏移
表GOT,是则以所述GOT更新单板内存中原有的GOT并执行步骤Sc;否 则直接执行步骤Sc。
其中,所述步骤Sc包括执行串口驱动、Flash驱动、USB驱动、 CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动之
一或任意组合。
由上述技术方案可知,本发明的实施例通过对BootRom所支持功能加以 分类,对部分功能采用压縮解压启动,具有以下有益效果
1、 节约了存储空间,降低了设备的硬件成本;
2、 BootRom功能的分离使BootRom的局部更新成为可能,从而节约了 单板开发工作量,降低了设备的软件成本。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、 特征和优点将更加明显。


图1为本发明提供的BootRom—实施例的框图2为图1所示BootRom与现有BootRom所烧结文件的比较示意图; 图3为本发明提供的BootRom实现方法一实施例的流程图;图4为本发明提供的单板自启动方法一实施例的流程图。
具体实施例方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只 用于举例说明,并不用于限制本发明。
本发明的主要构思在于压縮BootRom的部分驱动,来解决BootRom 空间占用和驱动功能难以同时满足的问题。下面将详细介绍本发明所提 供的技术方案。
首先,对本发明提供的BootRom加以说明,请结合图1,显示了一 BootRom实施例的框图。
该BootRom设置于单板中,用于实现单板的自启动; 一般来说,该 单板为嵌入式单板,可以应用于路由器、交换机和智能手机,等等。
该BootRom包括
(1) 自启动头单元,用于烧结预设的基本驱动,其至少包括CPU 驱动和内存驱动(包括内存硬件驱动和内存空间映射管理);
需要指出,CPU驱动和内存驱动这两部分内容是不能够被压縮的, 因为单板CPU上电之初,如果没有进行初始化,是不能够执行任何其他 操作的,自然也就无法识别解压縮接口单元;而内存如果不初始化,就 无法提供解压縮所需要的内存空间,那么BootRom同样无法启动;
但是在CPU驱动和内存驱动这两部分内容以外,可以根据BootRom 空间的情况,对自启动头单元的内容加以扩充,例如把串口驱动放入来 自启动头单元等等,具体的设置可以由工程人员根据实际需要确定;
可以看出,在仅包括CPU驱动和内存驱动的情况下,自启动头单元 实现功能较少,其空间占用很小;
(2) 自启动压縮单元,用于以预设的压縮方式烧结所述基本驱动以 外的其它驱动;
具体来说,其它驱动可以包括串口驱动、Flash驱动、USB驱动、CF 卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动如
7ftp/tftp……,也可以根据单板功能的增加,进一步对其它驱动加以扩充;
可以看出,自启动压縮单元实现功能较多也比较复杂,其未压縮前
空间占用很大;但是,经过压縮后,其空间占用能够被有效降低;就ARJ 压縮算法来说,压縮完成后的空间占用是压縮前28.3%,而就7ZIP压縮 算法来说,压縮完成后的空间占用是压縮前18.7%;
显然,将空间占用较大的非基本驱动加以压縮烧结,可以极大的缓 解存储介质空间紧张的问题;
有必要指出的是,自启动压縮单元所采用的压縮方式可以灵活选择, 可以是上面提到的ARJ或7ZIP,也可以是RAR或者其他可能出现的任 意压縮方式;
(3)解压縮接口单元,用于在所述自启动头单元启动成功后,读取 所述自启动压縮单元中的驱动并解压释放到单板内存中;
具体来说,解压縮接口单元为自启动压縮单元提供了解压縮接口, 实现压縮驱动的解压启动;
当然,解压縮接口单元所提供的解压縮方式必须能够适配自启动压 縮单元中驱动的压縮方式;比如,如果自启动压縮单元采用ARJ对驱动 进行压縮,那么解压縮接口单元可以采用只支持解压ARJ,或者可以采 用支持包括ARJ在内的多种解压方式;如果自启动压縮单元采用7ZIP 对驱动进行压縮,那么解压縮接口单元可以采用只支持解压7ZIP,或者 可以采用支持包括7ZIP在内的多种解压方式;对于将来可能出现的新压 縮方式,可以通过升级解压縮接口单元实现支持。
上述自启动头单元、解压縮接口单元和自启动压縮单元一起构成了 BootRomo
可以看出,上述BootRom首先能够节约存储介质空间,降低单板硬 件成本;为了形象的说明这一有益效果,下面将结合图2,对新旧BootRom 的启动运行文件加以对比
图2左侧显示了现有技术BootRom中的文件烧结情况,其作为一个 完整的二进制文件烧结在存储介质中;
图2右侧则显示了本发明BootRom中的文件烧结情况,先存放自启动头单元的二进制文件A,后面接着存放解压縮接口单元的执行解压释 放功能的文件B,最后存放自启动压縮单元的压縮文件C,上述自启动头
单元、自启动压縮单元以及解压縮接口单元彼此独立; 由于部分驱动的压縮,因此空间占用显著降低。
进一步的,上述BootRom还能够节约单板开发时间,降低单板的软 件成本;具体来说,在现有技术中,只要单板的功能发生任何一点变化, 就需要针对整个BootRom进行重新开发和编译,由于很多单板往往只是 部分功能存在差别,因此存在大量重复的工作;
而本发明所提供BootRom的三个部分是分别独立的,其自启动头单 元能够适合于具有同款CPU和同款内存的不同单板例如,对于采用同 款CPU和同款内存的单板来说,其区别是其他可压縮驱动的不同导致的; 这种情况下自启动头单元无需加以修改,只要重新开发自启动压縮单元 即可。
上面的描述提供了本发明BootRom的一最佳实施例,但作为本发明 B o otRom —种可能的实施例,自启动头单元中可以不仅仅烧结CPU驱动 和内存驱动,还可以包括串口驱动、Flash驱动、USB驱动、CF卡驱动、 文件系统驱动、BootRom管理驱动、网口驱动、协议驱动如ftp/tftp等之 一或任意组合;
本领域技术人员能够了解,自启动头单元中所包括的驱动越多,那 么BootRom的空间占用就越大;
同时,有必要指出的是,基本驱动和其它进行压縮的驱动不重合, 也就是说当把某一种驱动纳入到基本驱动中时,它就不会同时作为其他 驱动被压縮。以自启动头单元包括CPU驱动和内存驱动为例,由自启动 头单元执行单板初始化,而自启动压縮单元则直接执行串口程序的加载、 FLASH的读写操作、引导程序的加载等即可,无需再次执行单板初始化; 同样的,如果自启动头单元还包括有串口驱动,那么自启动压縮单元就 无需执行串口程序的加载。继续,下面对本发明提供的BootRom实现方法加以介绍,请结合图 3,显示了一实施例的流程图,包括以下步骤
步骤Sl:对BootRom中的驱动进行分类,其中基本驱动至少包括 CPU驱动和内存驱动;
其中,也可以根据实际情况将一些其他的驱动划归到基本驱动中, 比如,串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、 BootRom管理驱动、网口驱动、协议驱动如ftp/tftp等之一或任意组合;
步骤S2:以预设的压縮方式对所述基本驱动以外的其它驱动进行压
縮;
其中,上述其他驱动可以包括串口驱动、Flash驱动、USB驱动、CF 卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动如ftp/tftp 等之一或任意组合;特别注意的是,其他驱动和基本驱动不重合;
以及,压縮方式可以灵活选择,比如,ARJ压縮、RAR压縮或7ZIP 压縮;
步骤S3:将所述基本驱动烧结在单板存储介质中构成自启动头单元, 将所述压縮后的驱动烧结在单板存储介质中构成自启动压縮单元,以及, 提供与所述压縮方式相匹配的解压縮接口并烧结在单板存储介质中构成 解压縮接口单元;
步骤S4:关联上述单板存储介质中的自启动头单元、自启动压縮单 元和解压縮接口单元构成BootRom,使所述自启动头单元启动成功后, 触发所述解压縮接口单元读取所述自启动压缩单元中的驱动并解压释放 到单板内存中。
通过上述步骤S1 S4可以看出,本发明提供的BootRom实现方法, 能够通过部分驱动的压縮节约BootRom存储空间,从而降低单板硬件成 本;同时,驱动的分类和彼此独立使驱动的部分更新成为可能,从而节 约单板开发工作量,降低单板软件成本。
继续,本发明还提供了一种单板,其设有上述的BootRom。
同时,本发明还提供了设有上述BootRom单板的自启动方法,请参见图4,显示了一实施例的流程图,在单板CPU上电后执行以下步骤 步骤Sa:调用自启动头单元,至少执行CPU初始化和内存初始化;
当然,如果自启动头单元还包括其它的驱动,也在此步骤一并执行;
步骤Sb:调用解压縮接口单元,读取所述自启动压縮单元中的驱动
并解压释放到单板内存中;
其中,自启动压縮单元中的驱动与基本驱动不重合,可以包括串口
驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、BootRom管 理驱动、网口驱动、协议驱动如ftp/tftp等之一或任意组合;
较佳的,如果释放到单板内存中的解压文件包括全局偏移表GOT, 则以所述GOT更新单板内存中原有的GOT,然后继续执行步骤Sc;否 则直接执行步骤Sc;
步骤Sc:执行解压后的其它驱动,即执行串口驱动、Flash驱动、 USB驱动、CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、 协议驱动如ftp/tftp等之一或任意组合,从而完成单板自启动。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是 说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而 不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细 节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利 要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
ii
权利要求
1. 一种自启动模块BootRom,设置于单板中,其特征在于,包括自启动头单元,用于烧结预设的基本驱动,其至少包括CPU驱动和内存驱动;自启动压缩单元,用于以预设的压缩方式烧结所述基本驱动以外的其它驱动;解压缩接口单元,用于在所述自启动头单元启动成功后,读取所述自启动压缩单元中的驱动并解压释放到单板内存中。
2. 根据权利要求1所述的BootRom,其特征在于,所述基本驱动还 包括串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、BootRom 管理驱动、网口驱动、协议驱动之一或任意组合;其它驱动包括串口驱 动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、BootRom管理 驱动、网口驱动、协议驱动之一或任意组合;其中,基本驱动和其它驱 动不重合。
3. 根据权利1或2所述的BootRom,其特征在于,所述自启动头单 元、自启动压縮单元以及解压縮接口单元彼此独立。
4. 根据权利要求1或2所述的BootRom,其特征在于,所述预设的 压縮方式包括ARJ压縮、RAR压縮或7ZIP压縮。
5. —种自启动模块BootRom实现方法,其特征在于,包括以下步骤 步骤Sl:对BootRom中的驱动进行分类,其中基本驱动至少包括CPU驱动和内存驱动;步骤S2:以预设的压縮方式对所述基本驱动以外的其它驱动进行压縮;步骤S3:将所述基本驱动烧结在单板存储介质中构成自启动头单元, 将所述压縮后的驱动烧结在单板存储介质中构成自启动压縮单元,以及, 提供与所述压縮方式相匹配的解压縮接口并烧结在单板存储介质中构成 解压縮接口单元;步骤S4:关联上述单板存储介质中的自启动头单元、自启动压縮单元和解压縮接口单元构成BootRom,使所述自启动头单元启动成功后, 触发所述解压縮接口单元读取所述自启动压縮单元中的驱动并解压释放 到单板内存中。
6. 根据权利要求5所述的BootRom实现方法,其特征在于,所述基 本驱动还包括串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统 驱动、BootRom管理驱动、网口驱动、协议驱动之一或任意组合;其它 驱动包括串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、 BootRom管理驱动、网口驱动、协议驱动之一或任意组合;其中,基本 驱动和其它驱动不重合。
7. 根据权利要求5或6所述的BootRom实现方法,其特征在于,所 述预设的压縮方式包括ARJ压縮、RAR压縮或7ZIP压縮。
8. —种设有权利要求1-4任一所述BootRom的单板。
9. 一种设有权利要求1-4任一所述BootRom的单板自启动方法,其 特征在于,在单板CPU上电后执行以下步骤步骤Sa:调用自启动头单元,至少执行CPU初始化和内存初始化;歩骤Sb:调用解压縮接口单元,读取所述自启动压縮单元中的驱动 并解压释放到单板内存中;步骤SC:执行解压后的其它驱动。
10. 根据权利要求9所述的单板自启动方法,其特征在于,所述步骤 Sc之前还包括识别解压后文件中是否包括全局偏移表GOT,是则以所 述GOT更新单板内存中原有的GOT并执行步骤Sc;否则直接执行步骤 Sc。
全文摘要
本发明公开了一种BootRom及其实现方法,还公开了一种单板和单板自启动方法。在单板CPU上电后执行以下步骤调用自启动头单元,至少执行CPU初始化和内存初始化;调用解压缩接口单元,读取所述自启动压缩单元中的驱动并解压释放到单板内存中;执行解压后的其它驱动。通过本发明,节约了存储空间,降低了设备的硬件成本;同时,节约了单板开发工作量,降低了设备的软件成本。
文档编号G06F9/445GK101482825SQ20091000910
公开日2009年7月15日 申请日期2009年2月18日 优先权日2009年2月18日
发明者悦 刘 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1