CN102520992B - 一种嵌入式系统启动方法及装置 - Google Patents
一种嵌入式系统启动方法及装置 Download PDFInfo
- Publication number
- CN102520992B CN102520992B CN201110396575.6A CN201110396575A CN102520992B CN 102520992 B CN102520992 B CN 102520992B CN 201110396575 A CN201110396575 A CN 201110396575A CN 102520992 B CN102520992 B CN 102520992B
- Authority
- CN
- China
- Prior art keywords
- image file
- low order
- address value
- order address
- basis
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式系统启动方法及装置,涉及嵌入式系统,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现。同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。
Description
技术领域
本发明涉及嵌入式系统,尤其涉及一种嵌入式系统启动方法及装置。
背景技术
嵌入式实时应用已成为IT行业当前最流行的开发技术。其所开发的系统应用软件与通用应用软件相比,需要有高实时性能的操作系统和开发环境支持。
vxWorks操作系统是一种嵌入式强实时的操作系统,与Tornado集成开发环境一道,成为支持开发和调式基于vxWorks操作系统应用嵌入式软件的不可缺少的组成部分。目前许多通信产品开发商都采用这种vxWorks操作系统+Tornado集成开发环境构成的开发平台,来开发自己的通信产品。
支持vxWorks操作系统的CPU,通常只支持两次CPU启动引导的方式,这种两次启动引导方式分别是通过Bootrom image(启动镜像文件)和vxWorksimage(vxWorks系统镜像文件)来实现的。其中Bootrom image主要是完成CPU上电,从ROM到RAM中引导,vxWorks image则完成连接二进制目标码vxWorks系统文件的加载启动引导。
在RAM(random access memory随机存取存储器)中,Bootrom image引导的起始地址为宏RAM_HIGH_ADRS(RAM高位地址)定义的地址,在Bootromimage启动引导将要结束的最后阶段,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启动引导时,实现的功能比较复杂,一旦Bootromimage过程出现故障而导致CPU无法进行启动引导时,则整个系统需要返回工厂进行维修,这给产品的整个技术支持阶段带来了巨大的成本压力。
发明内容
本发明实施例提供一种嵌入式系统启动方法及装置,以便于调整嵌入式系统启动过程。
一种嵌入式系统启动方法,包括:
根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;
根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;
根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
一种嵌入式系统启动装置,包括:
基础启动单元,用于根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,所述第一高位地址值减去所述第一低位地址值的差值大于所述扩展启动镜像文件的大小;
扩展启动单元,用于根据所述扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;
系统启动单元,用于根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
本发明实施例提供一种嵌入式系统启动方法及装置,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现,同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。
附图说明
图1为本发明实施例提供的嵌入式系统启动方法流程图;
图2a为本发明实施例提供的嵌入式系统的基础启动空间分配示意图;
图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对本发明实施例提供的嵌入式系统启动过程进行详细说明:
首先,如图2a所示,在根据BaseBootrom image(基础启动镜像文件)进行基础启动时,宏RAM_LOW_ADRS(第一低位地址)定义为RAM中的一个地址值,宏RAM_HIGH_ADRS(第一高位地址)定义为RAM中的另外一个地址值,其中RAM_HIGH_ADRS定义的值大于RAM_LOW_ADRS定义的值,并且RAM_HIGH_ADRS与RAM_LOW_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_LOW_VX_ADRS(第二低位地址)的值定义为RAM_HIGH_ADRS的值一样,宏RAM_HIGH_VX_ADRS(第二高位地址)定义为RAM内的一个地址值,并满足RAM_HIGH_VX_ADRS减去RAM_LOW_VX_ADRS的差值大于vxWorks image(vxWorks系统镜像文件)的大小;
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_LOW_VX_ADRS值均与根据MainBootromimage进行启动时的值相同,宏RAM_LOW_ADRS的值与宏RAM_LOW_VX_ADRS的值相同,RAM_HIGH_ADRS的值与宏RAM_HIGH_VX_ADRS的值相同。
VxWorks image启动过程完成了系统应用软件功能的加载和初始化。
在三次启动的过程中,基础启动实现的功能最简单,基本上只要完成基本启动和对MainBootrom image系统的启动引导就可以了。因此,这大大降低了根据BaseBootrom image启动过程中出现故障导致系统无法启动的可能性。同时也可以通过软件系统升级MainBootrom image,达到消除系统存在的BUG(故障),也降低了因为单板故障而需要返厂维修而导致的巨额成本。
通过本发明实施例提供的嵌入式系统启动过程,简化了BaseBootromimage启动引导过程的功能,降低了由于代码原因导致的CPU上电无法成功启动引导因素,从而降低了整个设备需要返厂维修所带来的巨大售后支持成本。
通过三次启动,也降低了进行系统升级的风险,在传统的两次启动的系统中,系统升级需要同时升级Bootrom image和vxWorks image,一旦在升级Bootrom image过程出现异常或者升级后CPU无法上电启动引导,则整个系统需要返厂维修。该三次启动方案则使得BaseBootrom基本上可不需要进行维护,在系统升级时,只要升级MainBootrom和vxWorks image即可,从而降低了系统升级带来的风险。
并且,通过该启动方法,进行了两次跳转,第二次跳转时,可以为从地址值低的地址向地址值高的地址跳转,从而克服了vxWorks image与BootRomimage大小之和不能够超过32M的束缚。只要系统物理存储介绍足够,则vxWorks image的大小不受任何的限制和约束。
该启动方法通过设计每次启动时的启动起始地址,使得本发明公开的通过两次跳转、三次启动来完成嵌入式系统启动,消除了对vxWorks镜像文件大小的限制。因此,通过本发明实施提供的嵌入式系统启动方法进行启动,受到各方面限制较小,便于调整嵌入式系统启动的过程。
本发明实施例还提供一种嵌入式系统启动装置,如图3所示,该装置包括:
基础启动单元301,用于根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,第一高位地址值减去第一低位地址值的差值大于扩展启动镜像文件的大小;
扩展启动单元302,用于根据扩展启动镜像文件进行CPU配置和初始化,并从存储介质中加载系统镜像文件;
系统启动单元303,用于根据系统镜像文件进行系统应用软件功能的加载和初始化。
其中,基础启动单元301进行的基础启动具体包括:进行CPU上电启动引导,并完成从ROM到RAM启动。
扩展启动单元302从存储介质中加载系统镜像文件时,将系统镜像文件加载到第二低位地址,为了避免系统镜像文件和第一低位地址中的扩展启动镜像文件冲突,且避免受到跳转范围的限制,第二低位地址值可设置为大于或等于第一高位地址值。
为便于实现从第一低位地址到第二低位地址的跳转,扩展启动单元302从存储介质中加载系统镜像文件至第二低位地址,具体包括:
调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,第二高位地址值大于第二低位地址值;
从存储介质中加载系统镜像文件至第一低位地址。
此时,在进行系统应用软件功能的加载和初始化时,根据的系统镜像文件可以理解为第一低位地址的系统镜像文件,也可以理解为第二低位地址的系统镜像文件,当理解为第一低位地址的系统镜像文件时,系统启动单元303具体用于:
根据第一低位地址的系统镜像文件进行系统应用软件功能的加载和初始化。
本发明实施例提供一种嵌入式系统启动方法及装置,将Bootrom image引导过程分为两次引导进行,先根据基础启动镜像文件进行基础启动,并加载扩展启动镜像文件,然后再根据扩展启动镜像文件进行启动,完成Bootrom image引导,由于基础启动时加载扩展启动镜像文件,所以在需要修改Bootrom image过程时,可以通过修改扩展启动镜像文件实现,同时,通过两次跳转、三次启动来完成嵌入式系统启动,所以相对于仅进行一次跳转来讲,跳转距离较小,减小了跳转指令对镜像文件的限制。因此,通过本发明实施例提供的嵌入式系统启动方法进行启动时,受到各方面限制较小,便于调整嵌入式系统启动的过程。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (4)
1.一种嵌入式系统启动方法,其特征在于,包括:
根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,第一高位地址值减去第一低位地址值的差值大于所述扩展启动镜像文件的大小;根据所述扩展启动镜像文件进行CPU配置和初始化,并设置第二低位地址及第二高位地址,且第二低位地址值大于或等于基础启动时的第一高位地址值,第二高位地址值减去第二低位地址值的差值大于系统镜像文件的大小;
调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,并从存储介质中加载系统镜像文件至调整后的第一低位地址,根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
2.如权利要求1所述的方法,其特征在于,所述进行基础启动具体包括:
进行CPU上电启动引导,并完成从ROM到RAM启动。
3.一种嵌入式系统启动装置,其特征在于,包括:
基础启动单元,用于根据第一高位地址的基础启动镜像文件,进行基础启动,并从存储介质中加载扩展启动镜像文件至第一低位地址,第一高位地址值减去第一低位地址值的差值大于所述扩展启动镜像文件的大小;
扩展启动单元,用于根据所述扩展启动镜像文件进行CPU配置和初始化,并设置第二低位地址及第二高位地址,且第二低位地址值大于或等于基础启动时的第一高位地址值,第二高位地址值减去第二低位地址值的差值大于系统镜像文件的大小,调整第一低位地址值等于第二低位地址值,调整第一高位地址值等于第二高位地址值,并从存储介质中加载系统镜像文件至调整后的第一低位地址;
系统启动单元,用于根据所述系统镜像文件进行系统应用软件功能的加载和初始化。
4.如权利要求3所述的装置,其特征在于,所述基础启动单元进行基础启动具体包括:
进行CPU上电启动引导,并完成从ROM到RAM启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110396575.6A CN102520992B (zh) | 2011-12-02 | 2011-12-02 | 一种嵌入式系统启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110396575.6A CN102520992B (zh) | 2011-12-02 | 2011-12-02 | 一种嵌入式系统启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520992A CN102520992A (zh) | 2012-06-27 |
CN102520992B true CN102520992B (zh) | 2015-06-10 |
Family
ID=46291933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110396575.6A Active CN102520992B (zh) | 2011-12-02 | 2011-12-02 | 一种嵌入式系统启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520992B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298545B (zh) * | 2013-07-17 | 2019-08-16 | 上海斐讯数据通信技术有限公司 | 嵌入式系统的系统配置方法及嵌入式系统 |
CN103488514A (zh) * | 2013-09-30 | 2014-01-01 | 华为技术有限公司 | 启动方法与中央处理单元 |
CN106155752A (zh) * | 2016-08-03 | 2016-11-23 | 北京蛙视通信技术股份有限公司 | 一种嵌入式操作系统启动的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545028A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 使得Bootrom image和VxWorks image总能够正常编译和运行的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895427B2 (en) * | 2006-09-26 | 2011-02-22 | Freescale Semiconductor, Inc. | Method and system of executing a software application in highly constrained memory situation |
WO2009044416A1 (en) * | 2007-10-03 | 2009-04-09 | Power-One Italy S.P.A. | Method for reprogramming applications in embedded devices and related device |
CN101639786A (zh) * | 2009-09-08 | 2010-02-03 | 中兴通讯股份有限公司 | 引导嵌入式操作系统启动的方法和装置 |
-
2011
- 2011-12-02 CN CN201110396575.6A patent/CN102520992B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545028A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 使得Bootrom image和VxWorks image总能够正常编译和运行的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102520992A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11080066B2 (en) | Method for starting embedded apparatus, and apparatus | |
CN104598254A (zh) | 一种安卓系统快速开机的方法及装置 | |
CN109358887B (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN105590051B (zh) | 用于可信执行环境的可信应用生成及安装方法 | |
CN104754043A (zh) | 一种终端升级方法及装置 | |
US9747084B2 (en) | Offline shader compilation | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN102520992B (zh) | 一种嵌入式系统启动方法及装置 | |
CN101950254B (zh) | 一种软件更新方法和系统 | |
CN104765623A (zh) | 一种实现多操作系统的数据处理方法及终端设备 | |
CN102945176A (zh) | 终端设备开机、升级方法和设备 | |
CN105786542A (zh) | 智能设备及其系统升级方法 | |
CN105159738A (zh) | 一种热补丁实现方法及系统 | |
CN107305553A (zh) | 一种基于Hybrid App中动态跳转Hybrid页面的方法及系统 | |
EP2805233B1 (en) | Installation engine and package format for parallelizable, reliable installations | |
CN106020905A (zh) | 一种微控制器固件开发与更新的方法及系统 | |
CN105095767A (zh) | 基于文件数据块校验的安全启动系统与方法 | |
CN109688472A (zh) | 电视系统升级方法、装置、设备及存储介质 | |
CN103257869A (zh) | 一种ecu程序智能下载方法 | |
CN103729219B (zh) | 一种uefi bios架构方法及系统 | |
CN107168733B (zh) | 差分文件包的生成及应用程序的更新方法、装置和系统 | |
CN110908706B (zh) | 一种多版本软件的管理方法 | |
CN104504341A (zh) | 一种操作系统漏洞修复方法及装置 | |
CN102129385A (zh) | 一种虚拟机管理功能动态扩展的管理方法 | |
CN112433780A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |