CN101482825A - 自启动模块及其实现方法,单板和单板自启动方法 - Google Patents
自启动模块及其实现方法,单板和单板自启动方法 Download PDFInfo
- Publication number
- CN101482825A CN101482825A CNA2009100091033A CN200910009103A CN101482825A CN 101482825 A CN101482825 A CN 101482825A CN A2009100091033 A CNA2009100091033 A CN A2009100091033A CN 200910009103 A CN200910009103 A CN 200910009103A CN 101482825 A CN101482825 A CN 101482825A
- Authority
- CN
- China
- Prior art keywords
- self
- driving
- bootrom
- starting
- drives
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种BootRom及其实现方法,还公开了一种单板和单板自启动方法。在单板CPU上电后执行以下步骤:调用自启动头单元,至少执行CPU初始化和内存初始化;调用解压缩接口单元,读取所述自启动压缩单元中的驱动并解压释放到单板内存中;执行解压后的其它驱动。通过本发明,节约了存储空间,降低了设备的硬件成本;同时,节约了单板开发工作量,降低了设备的软件成本。
Description
技术领域
本发明涉及自启动技术领域,尤其涉及一种自启动模块,一种自启动模块实现方法,一种单板和一种单板自启动方法。
背景技术
在现有技术中,通过将编译完成的启动运行文件烧结到存储介质中构成自启动模块(BootRom),CPU上电通过读取BootRom完成单板驱动。
一方面,出于节约成本和/或单板设计中存储介质空间分配的需求,要求BootRom尽量占用较小的空间;另一方面,单板功能的不断增加又要求自动运行文件能够支持更多的驱动种类,这必然导致BootRom需要占用更大的空间。
上述两方面的要求难以并存,也就是说,当需要节约存储空间时,就不得不剪裁BootRom的功能;而当BootRom被要求支持较多的单板功能时,就必然要在存储介质中占用更多的空间。
发明内容
本发明的实施例旨在克服上述现有技术中的缺陷,提供一种BootRom及其实现方案,其能够在不剪裁单板功能的同时,降低对存储空间的占用。
为实现上述目的,本发明的实施例提供了一种BootRom,设置于单板中,包括:
自启动头单元,用于烧结预设的基本驱动,其至少包括CPU驱动和内存驱动;
自启动压缩单元,用于以预设的压缩方式烧结所述基本驱动以外的其它驱动;
解压缩接口单元,用于在所述自启动头单元启动成功后,读取所述自启动压缩单元中的驱动并解压释放到单板内存中。
其中,基本驱动还可以包括串口驱动、Flash驱动、USB驱动、CF(Compact Flash)卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动之一或任意组合;其它驱动可以包括串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动之一或任意组合;其中,基本驱动和其它驱动不重合。
其中,所述自启动头单元、自启动压缩单元以及解压缩接口单元彼此独立。
其中,所述预设的压缩方式包括但不限于ARJ压缩、RAR压缩或7ZIP压缩。
本发明的实施例还提供了一种BootRom实现方法,包括以下步骤:
步骤S1:对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管理驱动、网口驱动、协议驱动如ftp/tftp……,也可以根据单板功能的增加,进一步对其它驱动加以扩充;
可以看出,自启动压缩单元实现功能较多也比较复杂,其未压缩前空间占用很大;但是,经过压缩后,其空间占用能够被有效降低;就ARJ压缩算法来说,压缩完成后的空间占用是压缩前28.3%,而就7ZIP压缩算法来说,压缩完成后的空间占用是压缩前18.7%;
显然,将空间占用较大的非基本驱动加以压缩烧结,可以极大的缓解存储介质空间紧张的问题;
有必要指出的是,自启动压缩单元所采用的压缩方式可以灵活选择,可以是上面提到的ARJ或7ZIP,也可以是RAR或者其他可能出现的任意压缩方式;
(3)解压缩接口单元,用于在所述自启动头单元启动成功后,读取所述自启动压缩单元中的驱动并解压释放到单板内存中;
具体来说,解压缩接口单元为自启动压缩单元提供了解压缩接口,实现压缩驱动的解压启动;
当然,解压缩接口单元所提供的解压缩方式必须能够适配自启动压缩单元中驱动的压缩方式;比如,如果自启动压缩单元采用ARJ对驱动进行压缩,那么解压缩接口单元可以采用只支持解压ARJ,或者可以采用支持包括ARJ在内的多种解压方式;如果自启动压缩单元采用7ZIP对驱动进行压缩,那么解压缩接口单元可以采用只支持解压7ZIP,或者可以采用支持包括7ZIP在内的多种解压方式;对于将来可能出现的新压缩方式,可以通过升级解压缩接口单元实现支持。
上述自启动头单元、解压缩接口单元和自启动压缩单元一起构成了BootRom。
可以看出,上述BootRom首先能够节约存储介质空间,降低单板硬件成本;为了形象的说明这一有益效果,下面将结合图2,对新旧BootRom的启动运行文件加以对比:
图2左侧显示了现有技术BootRom中的文件烧结情况,其作为一个完整的二进制文件烧结在存储介质中;
图2右侧则显示了本发明BootRom中的文件烧结情况,先存放自启动头单元的二进制文件A,后面接着存放解压缩接口单元的执行解压释放功能的文件B,最后存放自启动压缩单元的压缩文件C,上述自启动头单元、自启动压缩单元以及解压缩接口单元彼此独立;
由于部分驱动的压缩,因此空间占用显著降低。
进一步的,上述BootRom还能够节约单板开发时间,降低单板的软件成本;具体来说,在现有技术中,只要单板的功能发生任何一点变化,就需要针对整个BootRom进行重新开发和编译,由于很多单板往往只是部分功能存在差别,因此存在大量重复的工作;
而本发明所提供BootRom的三个部分是分别独立的,其自启动头单元能够适合于具有同款CPU和同款内存的不同单板:例如,对于采用同款CPU和同款内存的单板来说,其区别是其他可压缩驱动的不同导致的;这种情况下自启动头单元无需加以修改,只要重新开发自启动压缩单元即可。
上面的描述提供了本发明BootRom的一最佳实施例,但作为本发明BootRom一种可能的实施例,自启动头单元中可以不仅仅烧结CPU驱动和内存驱动,还可以包括串口驱动、Flash驱动、USB驱动、CF卡驱动、文件系统驱动、BootRom管理驱动、网口驱动、协议驱动如ftp/tftp等之一或任意组合;
本领域技术人员能够了解,自启动头单元中所包括的驱动越多,那么BootRom的空间占用就越大;
同时,有必要指出的是,基本驱动和其它进行压缩的驱动不重合,也就是说当把某一种驱动纳入到基本驱动中时,它就不会同时作为其他驱动被压缩。以自启动头单元包括CPU驱动和内存驱动为例,由自启动头单元执行单板初始化,而自启动压缩单元则直接执行串口程序的加载、FLASH的读写操作、引导程序的加载等即可,无需再次执行单板初始化;同样的,如果自启动头单元还包括有串口驱动,那么自启动压缩单元就无需执行串口程序的加载。
继续,下面对本发明提供的BootRom实现方法加以介绍,请结合图3,显示了一实施例的流程图,包括以下步骤:
步骤S1:对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等之一或任意组合,从而完成单板自启动。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (10)
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实现方法,其特征在于,包括以下步骤:
步骤S1:对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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100091033A CN101482825A (zh) | 2009-02-18 | 2009-02-18 | 自启动模块及其实现方法,单板和单板自启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100091033A CN101482825A (zh) | 2009-02-18 | 2009-02-18 | 自启动模块及其实现方法,单板和单板自启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101482825A true CN101482825A (zh) | 2009-07-15 |
Family
ID=40879951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100091033A Pending CN101482825A (zh) | 2009-02-18 | 2009-02-18 | 自启动模块及其实现方法,单板和单板自启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101482825A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017016297A1 (zh) * | 2015-07-27 | 2017-02-02 | 中兴通讯股份有限公司 | 一种单板 |
CN107301043A (zh) * | 2017-06-07 | 2017-10-27 | 武汉虹信通信技术有限责任公司 | 一种微基站及交换板网络芯片的自启动实现方法 |
CN108021405A (zh) * | 2016-10-28 | 2018-05-11 | 福州瑞芯微电子股份有限公司 | 一种soc系统启动过程中存储介质的驱动方法和装置 |
-
2009
- 2009-02-18 CN CNA2009100091033A patent/CN101482825A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017016297A1 (zh) * | 2015-07-27 | 2017-02-02 | 中兴通讯股份有限公司 | 一种单板 |
CN106406427A (zh) * | 2015-07-27 | 2017-02-15 | 中兴通讯股份有限公司 | 一种单板 |
CN108021405A (zh) * | 2016-10-28 | 2018-05-11 | 福州瑞芯微电子股份有限公司 | 一种soc系统启动过程中存储介质的驱动方法和装置 |
CN108021405B (zh) * | 2016-10-28 | 2020-11-06 | 瑞芯微电子股份有限公司 | 一种soc系统启动过程中存储介质的驱动方法和装置 |
CN107301043A (zh) * | 2017-06-07 | 2017-10-27 | 武汉虹信通信技术有限责任公司 | 一种微基站及交换板网络芯片的自启动实现方法 |
CN107301043B (zh) * | 2017-06-07 | 2020-10-30 | 武汉虹信通信技术有限责任公司 | 一种微基站及交换板网络芯片的自启动实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101467515B1 (ko) | 스냅샷 이미지를 이용한 부팅 장치 및 방법 | |
CN102708064A (zh) | 从休眠中多阶段恢复 | |
CN101334736A (zh) | 软件更新方法和便携式终端设备 | |
CN101771804B (zh) | 一种数字电视接收终端软件系统的备份还原方法 | |
CN101923473B (zh) | 嵌入式电子装置及更新其固件的方法 | |
CN102141923B (zh) | 内存文件系统加载方法及装置 | |
CN101287187A (zh) | 智能手机及其操作系统运行方法 | |
CN102831173A (zh) | 基于Android系统的内存扩展方法、装置及终端设备 | |
CN103631674A (zh) | 嵌入cpu的fpga及其启动方法 | |
CN102200916A (zh) | 电子设备、可配置的部件及该部件的配置信息存储方法 | |
CN105302663A (zh) | 一种镜像开机方法和终端设备 | |
CN104281528A (zh) | 一种数据存储方法及装置 | |
CN111880846B (zh) | 嵌入式系统快速启动方法、装置及设备 | |
CN101854426A (zh) | 一种移动终端开机启动的方法、系统及移动终端 | |
CN102799452A (zh) | 系统软件升级方法和装置 | |
CN103513956A (zh) | 一种处理器处理数据的方法以及装置 | |
CN101482825A (zh) | 自启动模块及其实现方法,单板和单板自启动方法 | |
CN101135978B (zh) | 压缩版应用程序生成、执行方法与装置及应用方法与系统 | |
CN111290848A (zh) | 一种内存优化方法、终端和计算机可读存储介质 | |
CN102360300B (zh) | 操作系统的启动方法及装置 | |
US20070283130A1 (en) | Compact Storage Of Program Code On Mobile Terminals | |
CN101989920A (zh) | 分布式通信设备版本升级的方法、装置和系统 | |
CN104516757A (zh) | 固件更新方法 | |
CN101256501A (zh) | 软件解压缩启动方法 | |
CN101489078A (zh) | 一种数字电视终端和基于中间件的内存扩展方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090715 |