一种嵌入式系统启动方法及装置的制作方法

文档序号:6440007阅读:200来源:国知局
专利名称:一种嵌入式系统启动方法及装置的制作方法
技术领域
本发明涉及嵌入式系统,尤其涉及一种嵌入式系统启动方法及装置。
背景技术
嵌入式实时应用已成为IT行业当前最流行的开发技术。其所开发的系统应用软件与通用应用软件相比,需要有高实时性能的操作系统和开发环境支持。vxfforks操作系统是一种嵌入式强实时的操作系统,与Tornado集成开发环境一道,成为支持开发和调式基于vxWorks操作系统应用嵌入式软件的不可缺少的组成部分。 目前许多通信产品开发商都采用这种vxWorks操作系统+Tornado集成开发环境构成的开发平台,来开发自己的通信产品。支持vxWorks操作系统的CPU,通常只支持两次CPU启动引导的方式,这种两次启动引导方式分别是通过Bootrom image (启动镜像文件)和vxWorks image (vxfforks系统镜像文件)来实现的。其中Bootrom image主要是完成CPU上电,从ROM到RAM中引导, vxfforks image则完成连接二进制目标码vxWorks系统文件的加载启动引导。在 RAM (random access memory 随机存取存储器)中,Bootrom image 弓 | 导的起始地址为宏RAM_HIGH_ADRS (RAM高位地址)定义的地址,在Bootrom image启动引导将要结束的最后阶段,Bootrom将vxWorks image从存储介质中加载到RAM中宏RAM_LOW_ADRS (RAM 低位地址)定义的地址,并从该地址开始引导vxWorks image系统镜像。不管在Bootrom image 还是在 vxWorks image 中,宏 RAM_HIGH_ADRS 与 RAM_LOW_ADRS 的定义都是一样的。 这种支持CPU两次引导方式存在如下缺点(1)由于CPU支持跳转指令限制,RAM_HIGH_ADRS减去RAM_LOW_ADRS的大小加上 Bootrom image文件的大小不能够超过32M。(2)由于Bootrom image启动引导时,实现的功能比较复杂,一旦Bootrom image 过程出现故障而导致CPU无法进行启动引导时,则整个系统需要返回工厂进行维修,这给产品的整个技术支持阶段带来了巨大的成本压力。

发明内容
本发明实施例提供一种嵌入式系统启动方法及装置,以便于调整嵌入式系统启动过程。一种嵌入式系统启动方法,包括根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
一种嵌入式系统启动装置,包括基础启动单元,用于根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;扩展启动单元,用于根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;系统启动单元,用于根据所述系统镜像文件进行系统应用软件功能的加载和初始化。本发明实施例提供一种嵌入式系统启动方法及装置,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现,同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。


图1为本发明实施例提供的嵌入式系统启动方法流程图;图加为本发明实施例提供的嵌入式系统的基础启动空间分配示意图;图2b为本发明实施例提供的嵌入式系统的扩展启动空间分配示意图;图2c为本发明实施例提供的嵌入式系统的系统启动空间分配示意图;图3为本发明实施例提供的嵌入式系统启动装置结构示意图。
具体实施例方式本发明实施例提供一种嵌入式系统启动方法及装置,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现,同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。如图1所示,本发明实施例提供的嵌入式系统启动方法,包括步骤S101、根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,第一高位地址值减去第一低位地址值的差值大于扩展启动镜像文件的大小;步骤S102、根据扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;步骤S103、根据系统镜像文件进行系统应用软件功能的加载和初始化。其中,进行基础启动时,主要进行CPU上电启动引导从ROM到RAM启动等基本启动过程,这些过程较少进行改动,且较少出错。在基础启动结束后,再根据基础启动时加载的扩展启动镜像文件来进行扩展启动,通常在扩展启动中,需要完成CPU启动的相关配置并完成所有控制驱动的初始化功能。 如果在实际应用时,发现在这一步启动过程中有缺陷、故障时,或者发现该启动过程需要升级时,可以更新扩展启动镜像文件,并不需要返厂维修。在步骤S102中,需要从存储介质中加载系统镜像文件至第二低位地址,所以为了避免系统镜像文件和第一低位地址中的扩展启动镜像文件冲突,可以在设置时将第二低位地址值设置为大于或等于第一高位地址值,或者第二低位地址值与系统镜像文件大小之和小于第一低位地址值。并且,在步骤S103中,根据系统镜像文件进行启动引导时,需要跳转到系统镜像文件的位置进行启动引导,由于在RAM空间中,从地址值高的地址向地址值低的地址跳转时,会受到跳转范围的限制,该跳转范围通常是32M,而从地址值低的地址向地址值高的地址跳转时,则不受限制。所以,当第二低位地址值设置为大于或等于第一高位地址值时,可以避免受到跳转范围的限制导致启动失败。为便于实现从第一低位地址到第二低位地址的跳转,可以在进行加载系统镜像文件前,调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,其中,第二高位地址值大于第二低位地址值。这样,在加载系统镜像文件时,可以直接加载系统镜像文件至第一低位地址。通常,系统镜像文件在第二低位地址和第二高位地址之间,所以第二高位地址值减去第二低位地址值的差值应该大于系统镜像文件的大小。此时,当调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,并执行完扩展启动镜像文件后,即可直接跳转到新的第一低位地址处继续执行系统镜像文件,而不需要从第一低位地址强制跳转至第二低位地址。此时,步骤S103中,在进行系统应用软件功能的加载和初始化时,根据的系统镜像文件可以理解为第一低位地址的系统镜像文件,也可以理解为第二低位地址的系统镜像文件。下面以vxWorks系统为例,结合图2a_图2c对本发明实施例提供的嵌入式系统启动过程进行详细说明首先,如图加所示,在根据BaseBootrom image (基础启动镜像文件)进行基础启动时,宏RAM_L0W_ADRS (第一低位地址)定义为RAM中的一个地址值,宏RAM_HIGH_ ADRS(第一高位地址)定义为RAM中的另外一个地址值,其中RAM_HIGH_ADRS定义的值大于 RAM_L0W_ADRS 定义的值,并且 RAM_HIGH_ADRS 与 RAM_L0W_ADRS 的差值大于 MainBootrom image (扩展启动镜像文件)大小(MainBootrom image 一般不超过2M大小);BaseBootrom image主要完成CPU上电启动引导,并完成从ROM到RAM启动和从存储介质中加载MainBootrom到RAM_LOW_ADRS进行启动引导的过程。如图2b所示,在根据MainBootrom image进行扩展启动时,宏RAM_LOW_ADRS与 RAM_HIGH_ADRS定义的值与根据BaseBootrom image启动时的值相同,另外宏RAM_L0W_VX_ ADRS (第二低位地址)的值定义为RAM_HIGH_ADRS的值一样,宏RAM_HIGH_VX_ADRS (第二高位地址)定义为RAM内的一个地址值,并满足RAM_HIGH_VX_ADRS减去RAM_LOW_VX_ADRS的差值大于vxWorks image (vxfforks系统镜像文件)的大小;
MainBootrom主要完成CPU启动所有相关配置并完成所有控制驱动的初始化功能,以及加载vxWorks image到RAM_LOW_ADRS并从该处进行启动引导。在MainBootrom image引导启动将要结束并开始引导vxWorks image启动时,修改宏RAM_LOW_ADRS定义值为宏RAM_HIGH_VX_ADRS的值,并从存储介质中把vxWorks image 加载到RAM_LOW_ADRS制定的地址,启动vxWorks image系统镜像。如图2c所示,在根据vxWorks image进行系统启动时,宏RAM_HIGH_VX_ADRS和宏 RAM_LOff_VX_ADRS值均与根据MainBootrom image进行启动时的值相同,宏RAM_LOW_ADRS 的值与宏RAM_LOW_VX_ADRS的值相同,RAM_HIGH_ADRS的值与宏RAM_HIGH_VX_ADRS的值相同。VxWorks image启动过程完成了系统应用软件功能的加载和初始化。在三次启动的过程中,基础启动实现的功能最简单,基本上只要完成基本启动和对MainBootrom image系统的启动引导就可以了。因此,这大大降低了根据BaseBootrom image启动过程中出现故障导致系统无法启动的可能性。同时也可以通过软件系统升级 MainBootrom image,达到消除系统存在的BUG (故障),也降低了因为单板故障而需要返厂维修而导致的巨额成本。通过本发明实施例提供的嵌入式系统启动过程,简化了 BaseBootrom image启动引导过程的功能,降低了由于代码原因导致的CPU上电无法成功启动引导因素,从而降低了整个设备需要返厂维修所带来的巨大售后支持成本。通过三次启动,也降低了进行系统升级的风险,在传统的两次启动的系统中,系统升级需要同时升级Bootrom image和vxWorks image,一旦在升级Bootrom image过程出现异常或者升级后CPU无法上电启动引导,则整个系统需要返厂维修。该三次启动方案则使得BaseBootrom基本上可不需要进行维护,在系统升级时,只要升级MainBootrom和 vxWorks image即可,从而降低了系统升级带来的风险。并且,通过该启动方法,进行了两次跳转,第二次跳转时,可以为从地址值低的地址向地址值高的地址跳转,从而克服了 vxWorks image与BootRom image大小之和不能够超过32M的束缚。只要系统物理存储介绍足够,则vxWorks image的大小不受任何的限制和约束。该启动方法通过设计每次启动时的启动起始地址,使得本发明公开的通过两次跳转、三次启动来完成嵌入式系统启动,消除了对vxWorks镜像文件大小的限制。因此,通过本发明实施提供的嵌入式系统启动方法进行启动,受到各方面限制较小,便于调整嵌入式系统启动的过程。本发明实施例还提供一种嵌入式系统启动装置,如图3所示,该装置包括基础启动单元301,用于根据第一高位地址的基础启动镜像文件,进行基础启动, 并从存储介质中加载扩展启动镜像文件至第一低位地址,第一高位地址值减去第一低位地址值的差值大于扩展启动镜像文件的大小;扩展启动单元302,用于根据扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;系统启动单元303,用于根据系统镜像文件进行系统应用软件功能的加载和初始化。
其中,基础启动单元301进行的基础启动具体包括进行CPU上电启动引导,并完成从ROM到RAM启动。扩展启动单元302从存储介质中加载系统镜像文件时,将系统镜像文件加载到第二低位地址,为了避免系统镜像文件和第一低位地址中的扩展启动镜像文件冲突,且避免受到跳转范围的限制,第二低位地址值可设置为大于或等于第一高位地址值。为便于实现从第一低位地址到第二低位地址的跳转,扩展启动单元302从存储介质中加载系统镜像文件至第二低位地址,具体包括调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,第二高位地址值大于第二低位地址值;从存储介质中加载系统镜像文件至第一低位地址。此时,在进行系统应用软件功能的加载和初始化时,根据的系统镜像文件可以理解为第一低位地址的系统镜像文件,也可以理解为第二低位地址的系统镜像文件,当理解为第一低位地址的系统镜像文件时,系统启动单元303具体用于根据第一低位地址的系统镜像文件进行系统应用软件功能的加载和初始化。本发明实施例提供一种嵌入式系统启动方法及装置,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现,同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种嵌入式系统启动方法,其特征在于,包括根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
2.如权利要求1所述的方法,其特征在于,所述进行基础启动具体包括 进行CPU上电启动引导,并完成从ROM到RAM启动。
3.如权利要求1所述的方法,其特征在于,所述从存储介质中加载系统镜像文件,具体为从存储介质中系统镜像文件加载至第二低位地址,所述第二低位地址值大于或等于所述第一高位地址值。
4.如权利要求3所述的方法,其特征在于,所述从存储介质中加载系统镜像文件至第二低位地址,具体包括调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,所述第二高位地址值大于第二低位地址值;从存储介质中加载系统镜像文件至第一低位地址。
5.如权利要求4所述的方法,其特征在于,所述根据系统镜像文件进行系统应用软件功能的加载和初始化,具体为根据所述第一低位地址的系统镜像文件进行系统应用软件功能的加载和初始化。
6.一种嵌入式系统启动装置,其特征在于,包括基础启动单元,用于根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;扩展启动单元,用于根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;系统启动单元,用于根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
7.如权利要求6所述的装置,其特征在于,所述基础启动单元进行基础启动具体包括 进行CPU上电启动引导,并完成从ROM到RAM启动。
8.如权利要求6所述的装置,其特征在于,所述扩展启动单元具体用于根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件至第二低位地址,所述第二低位地址值大于或等于所述第一高位地址值。
9.如权利要求8所述的装置,其特征在于,所述扩展启动单元从存储介质中加载系统镜像文件至第二低位地址,具体包括调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,所述第二高位地址值大于第二低位地址值;从存储介质中加载系统镜像文件至第一低位地址。
10.如权利要求9所述的装置,其特征在于,所述系统启动单元具体用于根据所述第一低位地址的系统镜像文件进行系统应用软件功能的加载和初始化。
全文摘要
本发明公开了一种嵌入式系统启动方法及装置,涉及嵌入式系统,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现。同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。
文档编号G06F9/445GK102520992SQ20111039657
公开日2012年6月27日 申请日期2011年12月2日 优先权日2011年12月2日
发明者沈永坚 申请人:瑞斯康达科技发展股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1