CN101256494A - 一种嵌入式系统从不同地址引导系统的方法 - Google Patents
一种嵌入式系统从不同地址引导系统的方法 Download PDFInfo
- Publication number
- CN101256494A CN101256494A CNA200810065507XA CN200810065507A CN101256494A CN 101256494 A CN101256494 A CN 101256494A CN A200810065507X A CNA200810065507X A CN A200810065507XA CN 200810065507 A CN200810065507 A CN 200810065507A CN 101256494 A CN101256494 A CN 101256494A
- Authority
- CN
- China
- Prior art keywords
- mdlb
- submodule
- address
- bootstrap module
- different
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式系统从不同地址引导系统的方法,包括如下步骤:a.在已有引导地址AddrA的基础上增加一个新引导地址AddrB,在新引导地址AddrB上增加一个引导模块MdlB;所述引导模块MdlB包含对本系统进行配置并使之满足正常启动需要的代码和数据,以及包含能拷贝至系统RAM中并执行的初始化代码和数据;b.当硬件系统使用不同的存储设备时,自动从存储设备默认的引导地址启动系统。本发明解决了使用不同存储器时需要从不同地址引导的问题,并且能保持对两种存储设备的兼容性,降低了硬件成本,降低了软件维护的工作量。
Description
技术领域
本发明属于嵌入式系统领域,尤其涉及一种由于硬件设计的原因导致嵌入式系统在存储器上的引导地址出现差异时,能从不同地址引导系统从而兼容这种差异的方法。
背景技术
嵌入式系统,特别是手机终端由于生产量比较大、市场要求紧迫,为防止出现物料供应短缺的情况,往往需要对关键部件进行兼容设计。而在针对存储器进行兼容的过程中,为满足对几个不同型号存储器的兼容要求,有的时候会出现系统加电时无法访问存储器部分地址范围内的代码和数据,因此需要从存储器不同地址进行引导的情况。
一般的设计是,针对不同的存储设备,通过增加外围电路,使系统在启动时在存储器上的引导地址都保持一致。但这样的做法,一是由于需要设计附加的电路因而增加了硬件成本;二是可能会需要占用芯片上额外的通用控制引脚(GPIO)来完成设计,这在GPIO资源本来就比较紧张的嵌入式系统上带来了很多不便。
发明内容
本发明的目的在于克服现有技术的不足,提供一种嵌入式系统从不同地址引导系统的方法。该方法应用于嵌入式系统中,是通过在存储器新出现的引导地址AddrB上增加另一个引导模块来实现的,而已有的引导地址AddrA上的引导模块保持不变,这能够最大限度减少硬件设计的复杂度,降低设计成本。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种嵌入式系统从不同地址引导系统的方法,包括如下步骤:
a.在已有引导地址AddrA的基础上增加一个新引导地址AddrB,在新引导地址AddrB上增加一个引导模块MdlB;所述引导模块MdlB包含对本系统进行配置并使之满足正常启动需要的代码和数据,以及包含能拷贝至系统RAM中并执行的初始化代码和数据;
b.当硬件系统使用不同的存储设备时,自动从存储设备默认的引导地址启动系统。
所述步骤a中引导模块MdlB由两个子模块子MdlB_A和MdlB_B先后连续放置而成,子模块MdlB_B包含对本系统进行配置并使之满足正常启动需要的代码和数据,子模块MdlB_A包含将子模块MdlB_B拷贝至系统RAM中并执行的初始化代码和数据。
所述步骤b中如果是从已有引导地址AddrA引导系统,则正常启动系统。
所述步骤b中如果是从新引导地址AddrB引导系统,则程序先执行引导模块MdlB中的子模块MdlB_A:把子模块MdlB_B拷贝到一段可用的系统RAM区中,然后跳转到子模块MdlB_B中执行系统配置程序,子模块MdlB_B完成系统配置后,跳转到已有引导地址AddrA上,按照正常的流程启动系统。
进一步地,所述步骤a中将引导模块MdlB放置在新引导地址AddrB上是在代码编译的时候通过设置编译器的链接选项把引导模块MdlB放置在新引导地址AddrB上。
进一步地,所述步骤a中引导模块MdlB的两个子模块MdlB_A和MdlB_B被先后连续放置是在代码编译的时候通过设置编译器的链接选项把子模块MdlB_A放在子模块MdlB_B之前。
使用本发明的嵌入式系统从不同地址引导系统的方法,具有以下有益效果:本发明可兼容不同存储器,当由于存储器的不同导致系统启动引导地址出现差异时,在存储器那个不同的引导地址上增加一个引导模块来完成系统配置和引导,解决了使用不同存储器时需要从不同地址引导的问题,并且能保持对两种存储设备的兼容性,降低了硬件成本,降低了软件维护的工作量。
附图说明
图1是本发明中各模块在存储器中的位置示意图;
图2是本发明从不同引导地址启动系统的流程图的一个具体实施例。
具体实施方式
为了更好地理解本发明,下面结合附图和具体实施例对本发明作进一步地描述,但不作为对本发明的限定。
在某型终端产品中,为兼容某新型号的Flash存储器,使用了原设计未使用的最高位地址线,而此地址线是与GPIO口复用的,且默认的引脚功能是GPIO口,加电默认状态为高。原本不使用此引脚时系统加电启动地址默认为0x0,当使用此新型号Flash后,由于高位地址线默认为高,导致加电时系统从地址0x800000开始引导。
请参阅图1,实现本发明所提出的从不同地址引导系统的方法,首先在0x8000000位置增加了一个引导模块MdlB(在已有引导地址AddrA及已有引导模块的基础上),且引导模块MdlB包含两个先后连续放置的子模块MdlB_A和MdlB_B,子模块MdlB_A实现对子模块MdlB_B的拷贝功能;子模块MdlB_B完成对最高位地址线引脚的配置,使此引脚的地址线功能处于激活状态。请结合参阅图1和图2,系统使用不同型号的Flash时执行以下步骤:
步骤201:系统加电,根据不同Flash的硬件连接自动从不同的引导地址开始执行引导程序,如果是正常启动,则执行步骤204;否则,执行步骤202;
步骤202:程序执行子模块MdlB_A,将子模块MdlB_B的内容拷贝到可用的系统RAM中,并跳转到RAM中的子模块MdlB_B;
步骤203:程序执行子模块MdlB_B,完成对高位地址线引脚的配置,使此引脚的地址线功能处于激活状态,并跳转到已有引导地址AddrA;
步骤204:执行正常系统引导代码;
步骤205:系统完成引导,开始系统初始化。
需要指出的是,由于高位地址线未正确配置,Flash的前一半区域在加电时是无法被系统访问到的,因此新增加的引导模块必须放在Flash的后一半可以被访问的区域里。
本发明所提出的从不同地址引导系统的方法可以在嵌入式系统中广泛使用。由于从存储器的两个引导位置都可以正确的引导系统,因此软件对于不同的存储器是兼容的,降低了软件维护的工作量。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,应当指出,对于本领域的普通技术人员来说,凡是本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种嵌入式系统从不同地址引导系统的方法,其特征在于,包括如下步骤:
a.在已有引导地址AddrA的基础上增加一个新引导地址AddrB,在新引导地址AddrB上增加一个引导模块MdlB;所述引导模块MdlB包含对本系统进行配置并使之满足正常启动需要的代码和数据,以及包含能拷贝至系统RAM中并执行的初始化代码和数据;
b.当硬件系统使用不同的存储设备时,自动从存储设备默认的引导地址启动系统。
2.根据权利要求1所述的嵌入式系统从不同地址引导系统的方法,其特征在于,所述步骤a中引导模块MdlB由两个子模块子MdlB_A和MdlB_B先后连续放置而成,子模块MdlB_B包含对本系统进行配置并使之满足正常启动需要的代码和数据,子模块MdlB_A包含将子模块MdlB_B拷贝至系统RAM中并执行的初始化代码和数据。
3.根据权利要求1或2所述的嵌入式系统从不同地址引导系统的方法,其特征在于,所述步骤b中,如果是从已有引导地址AddrA引导系统,则正常启动系统。
4.根据权利要求2所述的嵌入式系统从不同地址引导系统的方法,其特征在于,所述步骤b中,如果是从新引导地址AddrB引导系统,则程序先执行引导模块MdlB中的子模块MdlB_A:把子模块MdlB_B拷贝到一段可用的系统RAM区中,然后跳转到子模块MdlB_B中执行系统配置程序,子模块MdlB_B完成系统配置后,跳转到已有引导地址AddrA上,按照正常的流程启动系统。
5.根据权利要求1或2或4所述的嵌入式系统从不同地址引导系统的方法,其特征在于,所述步骤a中将引导模块MdlB放置在新引导地址AddrB上是在代码编译的时候通过设置编译器的链接选项把引导模块MdlB放置在新引导地址AddrB上。
6.根据权利要求2所述的嵌入式系统从不同地址引导系统的方法,其特征在于,所述步骤a中引导模块MdlB的两个子模块MdlB_A和MdlB_B被先后连续放置是在代码编译的时候通过设置编译器的链接选项把子模块MdlB_A放在子模块MdlB_B之前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810065507XA CN101256494B (zh) | 2008-03-07 | 2008-03-07 | 一种嵌入式系统从不同地址引导系统的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810065507XA CN101256494B (zh) | 2008-03-07 | 2008-03-07 | 一种嵌入式系统从不同地址引导系统的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101256494A true CN101256494A (zh) | 2008-09-03 |
CN101256494B CN101256494B (zh) | 2011-05-11 |
Family
ID=39891341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810065507XA Expired - Fee Related CN101256494B (zh) | 2008-03-07 | 2008-03-07 | 一种嵌入式系统从不同地址引导系统的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101256494B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
-
2008
- 2008-03-07 CN CN200810065507XA patent/CN101256494B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN103077056B (zh) * | 2012-12-31 | 2015-12-23 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101256494B (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102200916B (zh) | 电子设备、可配置的部件及该部件的配置信息存储方法 | |
US9710288B2 (en) | Method and device for loading application program | |
CN101699402B (zh) | 一种多模式启动的嵌入式系统 | |
CN102830996A (zh) | 一种手持设备的快速开机方法 | |
CN102063634B (zh) | 一种掩膜智能卡的功能扩展方法及智能卡 | |
CN101571807A (zh) | 具有固件的系统及其启动方法 | |
CN103729210A (zh) | 一种实现一个刷机包支持多种制式智能终端的方法及装置 | |
CN106201605B (zh) | 基于FPGA和PowerPC的FPGA启动加载FLASH升级系统及方法 | |
CN102314354A (zh) | 一种嵌入式系统启动方法及嵌入式装置 | |
CN103473102A (zh) | 多操作系统的系统启动引导方法和工具 | |
CN104199691A (zh) | 一种基于安卓平台的开机自启动apk的方法及终端 | |
CN103559910A (zh) | 应用于烧录器的实现智能切换烧录芯片时序的系统及方法 | |
CN1964525A (zh) | 一种智能加载手机硬件驱动程序的系统 | |
CN101901158A (zh) | 固件更新方法和装置 | |
CN102567028B (zh) | 分离式菜单显示控制方法、装置及终端 | |
CN105607901A (zh) | 系统内存的优化方法、装置及终端设备 | |
CN101256494B (zh) | 一种嵌入式系统从不同地址引导系统的方法 | |
CN100384122C (zh) | 网络终端产品的在线升级方法 | |
US10007529B2 (en) | Data terminal running mode switching method, device, and data terminal | |
CN103761118A (zh) | 一种智能卡及智能卡内部署应用的方法 | |
CN116719724A (zh) | eMMC多平台测试方法和装置、电子设备 | |
CN100458696C (zh) | 实现多cpu加载的系统及方法 | |
CN116302122A (zh) | 多核异构域控制器、外设适配方法以及存储介质 | |
CN103455342B (zh) | 一种主题调用的方法及装置 | |
CN104765626A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20210307 |
|
CF01 | Termination of patent right due to non-payment of annual fee |