启动芯片软件版本信息设置方法和装置的制作方法

文档序号:6609832阅读:263来源:国知局
专利名称:启动芯片软件版本信息设置方法和装置的制作方法
技术领域
本发明涉及嵌入式系统技术领域,特别是涉及一种启动芯片软件(bootrom)版本信息设置方法和装置。
背景技术
bootrom是嵌入式系统中运行实时操作系统的引导程序,类似于PC机主板上的基本输入输出系统(BIOS,Basic Input Output System)程序。bootrom一般完成系统硬件的初始化配置,并加载系统的应用程序到内存指定位置运行。此外,bootrom软件一般还具有设备上电自检、文件上传下载、应用程序版本升级等功能。一些嵌入式设备,例如在以太网交换机、路由器等设备内部的处理器上都内嵌有bootrom。
为了有利于嵌入式系统的更新和升级,便于bootrom的版本管理,通常在制作bootrom时会为其附加上一些版本信息,并将该版本信息也烧到boot芯片中。版本信息可以包括版本名称、版本号、编译时间和整个bootrom的校验和等,为bootrom的后续维护带来极大便利。嵌入式系统的开发维护人员可以依据版本信息确定嵌入式系统所采用的bootrom的版本,掌握不同版本bootrom之间的差异,配置优化的bootrom,bootrom的版本信息还有利于分析bootrom与应用程序的兼容性等。
作为嵌入式系统中的核心部件,嵌入式处理器的体系架构种类繁多,如PowerPC,ARM,MIPS,X86等,而各种体系架构下的嵌入式处理器种类则更是不胜枚举。bootrom作为系统引导程序的角色决定了其必须满足特定嵌入式处理器对bootrom的特定要求,例如bootrom的大小、bootrom地址空间中开始执行指令的起始地址、是否需要包含处理器缺省配置字等。
不同嵌入式处理器对bootrom的要求不同,特别是不同嵌入式处理器要求bootrom地址空间中开始执行指令的起始地址不同,给实现一种通用的bootrom版本信息的设置方法带来了困难。一些嵌入式处理器,上电后会从bootrom地址空间偏移地址0x100处开始执行指令;而有些嵌入式处理器,上电后从bootrom地址空间的偏移地址0开始执行指令;而有些嵌入式处理器,上电后从bootrom地址空间的最后0xFFFF_FFFC处开始执行指令。为了避免bootrom中的版本信息放置的地址与bootrom开始执行指令的起始地址发生冲突,现有的嵌入式处理器bootrom版本信息放置的地址大多取决于所使用的特定处理器,随着嵌入式处理器的不同,bootrom版本信息放置的地址也不一样。例如对于某些嵌入式处理器,将版本信息存放到bootrom地址空间的最后,而对于要求bootrom地址空间的最后部分存放指令或配置字的处理器,就将版本信息放到bootrom地址空间的前部或其他部分。
这种bootrom的版本信息的放置地址的差异,会增加bootrom后续维护工作的负担,如果不清楚嵌入式处理器的型号及其特定的bootrom版本信息存放位置,是无法正确获取bootrom的版本信息的,这样对于bootrom的升级、维护、调试工作都造成了困难。另外,因为版本信息的放置地址不确定,嵌入式系统的开发维护人员也很难以设计一种可以通用的bootrom开发调试管理装置,对各种嵌入式处理器的bootrom进行有效的调试、更新。

发明内容
有鉴于此,本发明的主要目的在于提供一种bootrom版本信息的设置方法,该方法能够解决现有技术的bootrom版本信息设置方法过度依赖于不同嵌入式处理器的问题。
为达到上述目的,本发明的技术方案是这样实现的一种启动芯片软件版本信息设置方法,该方法包括以下步骤在启动芯片软件的初始配置代码中的跳转指令地址和跳转目的地址之间预留存放启动芯片软件版本信息的空间;将启动芯片软件版本信息添加至该预留空间内。
其中,存放启动芯片软件版本信息的空间设置有前标记和后标记。
该方法的添加启动芯片软件信息步骤中,进一步包括对启动芯片软版本信息求校验和,将校验和也添加至所述预留空间内。其中,校验方式为循环冗余校验。
本发明的启动芯片软件版本信息设置方法中,预留存放空间的步骤和添加版本信息步骤之间进一步包括编译生成没有版本信息的启动芯片软件,在启动芯片软件地址空间内查找预留空间的前后标记,获得预留空间的具体位置。
本发明的启动芯片软件版本信息设置方法中,在添加版本信息步骤前进一步包括输入启动芯片软件版本信息,检验启动芯片软件版本信息的正确性。
一种启动芯片软件版本信息设置装置,所述装置包括预留空间获取模块,接受输入并检验模块,启动芯片软件版本信息添加模块,其中,预留空间获取模块用于从启动芯片软件中查找预留空间的前后标记,获得预留空间的具体位置;接受输入并检验模块用于接受输入的启动芯片软件版本信息,检验启动芯片软件版本信息的正确性;启动芯片软件版本信息添加模块用于向启动芯片软件中添加启动芯片软件的版本信息。
其中,所述装置还包括校验和生成模块,所述校验和生成模块用于生成启动芯片软件版本信息的校验和。
本发明的bootrom版本信息的设置方法,按照一种预定的方式设置bootrom的版本信息,可以使得bootrom版本信息存放地址与嵌入式处理器型号无关。降低了bootrom后续维护工作的负担。
另外,本发明的bootrom版本信息的设置装置,能够不考虑嵌入式处理器的型号,对所有按照本发明bootrom版本信息的设置方法设置的bootrom,均可以添加、更新其版本信息内容,使用方便。


图1为本发明中bootrom版本信息设置方法的流程图;图2为本发明中bootrom版本信息设置装置的结构简图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
如图1所示,本发明的bootrom版本信息的设置方法,包括以下步骤(101)预留存放bootrom版本信息的空间,为预留空间设置前后标记。
对于以bootrom作为引导程序的嵌入式系统而言,其上电后首先需要执行bootrom中的一段初始化指令,完成处理器及存储器等硬件器件的配置工作,然后再引导嵌入式操作系统及应用程序的执行。这段初始化指令通常源自以汇编语言文件形式存在的系统初始配置代码。例如对于VxWorks系统而言,其汇编文件romInit.s就含有系统的初始配置代码。
在系统初始配置代码中一般会含有跳转指令,使处理器跳转到bootrom地址空间中的一个特定地址处执行指令。例如在VxWorks系统中,对于PowerPC和ARM处理器,其上电后都会执行“bl label”或“b label”指令,其中label就是表示跳转目的地址,也就是跳转指令的下一条可执行代码的地址,这样就可以在跳转指令地址和跳转目的地址之间留出一个预留空间。可以利用编译器提供的伪指令,例如GNU C编译器中的.fill或.byte指令,在跳转指令之后开辟该预留空间,用来存放bootrom的版本信息。为了方便后续步骤中确定该预留空间的位置,可以为该预留空间设置前后标记,该标记可以是一个特定的字符,或者一个特定的数字。
(102)生成不含版本信息的bootrom。
bootrom的版本信息只是在最后bootrom确认完成的时候才需要添加进入,其余的过程中,并不需要时时都添加、更新该版本信息,所以,在bootrom的设置过程中,可以先只生成不含版本信息的bootrom,待bootrom的制作、更新确认完成之后,再根据版本和内容变动情况,添加合适的bootrom版本信息。
另外,为了方便bootrom的后续维护工作,可以利用本发明的设置bootrom版本信息的工具,该工具主要目的就是在需要的时候设置bootrom版本信息,因此,bootrom版本信息的设置工作也不需要在一开始就完成。
如果设置为每次都添加bootrom的版本信息,而不需要预先生成一个没有版本信息的bootrom的情况,本步骤可以省略。
(103)查找预留空间的前后标记,获得预留空间的具体位置。
对于一个已经编译生成的bootrom,由于处理器型号的差异,步骤101中的预留空间虽然相对地址已经固定,但其绝对物理地址仍需定位,这种定位的方法就是查找预留空间的前后标记,具体流程是在bootrom中查找版本信息预留空间前标记,如果找到该标记,则进一步判断是否有对应的预留空间后标记,如果成功则可以确认已经找到了预留空间。如果失败,则确认为bootrom文件有误。
(104)对版本信息求校验和,将版本信息和校验和添加入预留空间。
为bootrom版本信息求校验和,该校验方式可以是循环冗余校验(CRC,Cyclic Redundancy Check),也可以采用其他的校验方式,例如异或(XOR,eXclusive OR)校验或求和校验等,作为一个本发明的优选实施例,设置校验方式为CRC,该校验和有利于确认bootrom版本信息添加和读取的正确性。如果不需要确认bootrom版本信息添加和读取的正确性的话,也可以不对其求校验和。
然后将bootrom版本信息和版本信息的校验和添加至该预留空间内。
在bootrom的后续维护工作中,由于采用本发明的方法,bootrom的版本信息的地址相对于跳转指令的地址固定,只要直接查找跳转指令的地址以及跳转目的地址,就可以获得bootrom版本信息的存放地址。如果bootrom版本信息的预留空间设置了前后标记,就直接查找bootrom版本信息预留空间的前后标记,也能获得bootrom版本信息的存放地址。这样就可以做到bootrom的版本信息存放地址与嵌入式处理器型号无关,对任何bootrom都能准确获取版本信息。
为了方便上述bootrom版本信息的设置方法的实施,可以利用一种启动芯片软件版本信息设置装置,该装置以编译好的含有版本信息预留空间的bootrom为处理对象。如图2所示,该装置包括预留空间获取模块,接受输入并检验模块,bootrom版本信息添加模块,其中预留空间获取模块用于从bootrom地址空间中查找预留空间的前后标记,获得预留空间的具体位置。预留空间获取模块在初始bootrom文件中查找版本信息预留空间前标记,如果找到该标记,则进一步判断是否有对应的预留空间后标记,如果成功则可以确认已经找到了预留空间,否则,提示bootrom文件有误。
接受输入并检验模块用于接受输入的bootrom版本信息,检验bootrom版本信息的正确性。接受输入并检验模块提供一个人机交互界面,接受bootrom版本制作人员按照约定输入的bootrom版本信息,例如版本名称、版本号、编译时间等,并检查输入信息的正确性,如果输入的版本信息不是按照bootrom的约定方式或长度不正确,接受输入并检验模块将显示版本信息不合法,提示重新输入,直到输入信息正确为止。
bootrom版本信息添加模块用于向原有bootrom中添加bootrom的版本信息。
作为本发明的一个优选实施例,该装置还可以包括校验和生成模块,所述校验和生成模块用于计算输入的bootrom版本信息的校验和,该校验和将作为后续工作中查询bootrom版本信息时判断信息合法性的依据,并可被添加bootrom版本信息和校验和模块添加进入bootrom中。
以上所述,仅为本发明的较佳实施例而已,并非用来限定本发明的保护范围。本领域内技术人员应该能够联想到,设置预留空间不同的标记方式,对bootrom版本信息采用其他的校验方法,bootrom版本信息中填入其它更多的内容,都应该属于本发明的保护范围。
权利要求
1.一种启动芯片软件版本信息设置方法,其特征在于,该方法包括以下步骤A、在启动芯片软件的初始配置代码中的跳转指令地址和跳转目的地址之间预留存放启动芯片软件版本信息的空间;B、将启动芯片软件版本信息添加至该预留空间内。
2.根据权利要求1所述的启动芯片软件版本信息设置方法,其特征在于,所述步骤A的预留的存放启动芯片软件版本信息的空间设置有前标记和后标记。
3.根据权利要求1所述的启动芯片软件版本信息设置方法,其特征在于,所述步骤B中还进一步包括步骤对启动芯片软版本信息求校验和,将校验和也添加至所述预留空间内。
4.根据权利要求3所述的启动芯片软件版本信息设置方法,其特征在于,所述对启动芯片软版本信息求校验和的校验方式为循环冗余校验。
5.根据权利要求2所述的启动芯片软件版本信息设置方法,其特征在于,步骤A与步骤B之间进一步包括编译生成没有版本信息的启动芯片软件,在启动芯片软件地址空间内查找预留空间的前后标记,获得预留空间的具体位置。
6.根据权利要求1所述的启动芯片软件版本信息设置方法,其特征在于,所述步骤B之前进一步包括步骤输入启动芯片软件版本信息,检验启动芯片软件版本信息的正确性。
7.一种启动芯片软件版本信息设置装置,其特征在于所述装置包括预留空间获取模块,接受输入并检验模块,启动芯片软件版本信息添加模块,其中,预留空间获取模块用于从启动芯片软件中查找预留空间的前后标记,获得预留空间的具体位置;接受输入并检验模块用于接受输入的启动芯片软件版本信息,检验启动芯片软件版本信息的正确性;启动芯片软件版本信息添加模块用于向启动芯片软件中添加启动芯片软件的版本信息。
8.根据权利要求7所述的启动芯片软件版本信息设置装置,其特征在于,所述装置还包括校验和生成模块,所述校验和生成模块用于生成启动芯片软件版本信息的校验和。
全文摘要
本发明涉及一种启动芯片软件版本信息设置方法及装置,该方法包括以下步骤在启动芯片软件的初始配置代码中的跳转指令地址和跳转目的地址之间预留存放启动芯片软件版本信息的空间;将启动芯片软件版本信息添加至该预留空间内。通过在跳转指令地址和跳转目的地址之间的预留空间存放启动芯片软件的版本信息,本发明能够实现启动芯片软件版本信息存放地址与嵌入式处理器型号无关,降低了启动芯片软件后续维护工作的负担。
文档编号G06F9/445GK101067791SQ20071011247
公开日2007年11月7日 申请日期2007年6月28日 优先权日2007年6月28日
发明者刘一峰, 姬忠鹤, 高亚南 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1