CN1786913A - 嵌入式设备系统动态引导的方法 - Google Patents
嵌入式设备系统动态引导的方法 Download PDFInfo
- Publication number
- CN1786913A CN1786913A CN 200510045282 CN200510045282A CN1786913A CN 1786913 A CN1786913 A CN 1786913A CN 200510045282 CN200510045282 CN 200510045282 CN 200510045282 A CN200510045282 A CN 200510045282A CN 1786913 A CN1786913 A CN 1786913A
- Authority
- CN
- China
- Prior art keywords
- reorientation
- guidance unit
- main memory
- embedded device
- equipment system
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了嵌入式设备系统动态引导的方法,引导单元分为重定位引导单元A部分和重定位引导单元B部分,重定位引导单元A部分小于内部缓存器;把重定位引导单元A部分载入到内部缓存器中,完成主内存的初始化,并动态计算在主内存中重定位的地址;根据计算过的重定位地址,把整个重定位引导单元自身复制到主内存中;重定位引导单元B部分初始化嵌入式设备的相关外设,提供人机界面和容错机制,并把主程序复制到主内存中;系统引导过程结束,启动嵌入式设备的主程序,本发明把引导单元作为一个整体,能够突破了嵌入式设备的内部缓存大小或者硬件复制数目对于引导单元的限制。
Description
技术领域
本发明属于嵌入式设备的技术领域,更具体地说是涉及到嵌入式设备进行系统引导的实现方法。
背景技术
目前,包括移动电话在内的嵌入式设备的一大特点就是可以同时支持多种内存,由于嵌入式设备内部没有类似于计算机硬盘的存储设备,许多嵌入式设备通常采用非掉电易失性内存(主要指NAND FLASH闪存存储器)用来存储嵌入式程序。同时,嵌入式设备通常还具有一小块内部缓存或者无需进行复杂初始化的内存(RAM随机存储器),用来将存储在非掉电易失性内存中的引导单元复制过来,进行系统引导。
嵌入式设备在进行系统引导的时候,先由硬件自动控制,将存储在非掉电易失性内存中的引导单元复制到内部缓存中,由于嵌入式设备内部缓存的容量空间比较小,又进一步限定了可以复制的引导单元的大小,因为基本上硬件控制做得很简单,只能复制有限数目的程序,通常为一个块(BLOCK,适用于NAND FLASH内存)。
硬件复制完毕后,运行嵌入式设备内部缓存中的引导单元,将控制权交给引导单元,引导单元先初始化其它类型的主内存,例如SDRAM同步动态随机存储器,然后,将存储在非掉电易失性内存中的嵌入式设备的主程序复制到主内存中,复制结束后,做好主内存中相应的RW数据区域(初始值为非0的全局变量区)的初始化,最终启动主内存中的主程序,引导单元交出控制权。
上面描述的引导过程,通常不会给嵌入式设备用户以任何提示,直到控制权交付给主程序,才会通过屏幕或者其它指示方式进行提示。这是由于嵌入式设备的内部缓存器通常大小容量有限,或者硬件上电复制数目有限,没有办法做过多的初始化工作,也不能存放太多的数据用来提示用户目前的状态。
当前嵌入式设备的系统引导技术采用的是二阶引导方式,引导部分分为两个模块,首先由第一个模块来载第二个模块,由第二个模块来做较多的初始化工作,建立良好的人机界面以及容错机制,然后再由第二个模块载入主程序。
这样一来,整个程序的结构就变得复杂,主要是程序的模块数量增加,达到三个模块,包括引导模块1+引导模块2+主程序。嵌入式设备整个程序编译、链接与下载的工作量就会增加,并且对于版本的管理以及程序的一致性增加了管理上的难度,并且当前的二阶引导方式会增加许多重复的冗余工作。
发明内容
本发明的目的,就在于克服目前嵌入式设备的二阶引导方式导致整个程序模块数量增加,需要许多重复的冗余工作的缺点和不足,提供一种基于内存动态重定位的嵌入式设备系统引导方法,引导单元作为一个整体,在执行引导功能时分为两个部分来运行,而不需要实际地增加程序模块的数量,就可以完成系统引导的全部功能。
为了达到上述目的,本发明包括嵌入式设备的非掉电易失性内存,主内存,微处理器及其内部缓存器,还包括下述步骤:
重定位引导单元分为重定位引导单元A部分和重定位引导单元B部分,重定位引导单元A部分小于内部缓存器;
把重定位引导单元A部分载入到内部缓存器中,重定位引导单元A部分完成主内存的初始化,并动态计算在主内存中重定位的地址;
根据计算过的重定位地址,把整个重定位引导单元自身复制到主内存中;
重定位引导单元B部分初始化嵌入式设备的相关外设,提供人机界面和容错机制,并把主程序复制到主内存中;
系统引导过程结束,启动嵌入式设备的主程序。
非掉电易失性内存可以采用NAND FLASH闪存存储器,主内存可以采用SDRAM同步动态随机存储器,内部缓存可以采用SRAM同步随机存储器。
重定位引导单元A部分和B部分链接时形成特定的分区顺序的文件映像。
重定位引导单元A部分可以独立运行。重定位引导单元B部分在运行过程中能够引用重定位引导单元A部分。
应用本发明中的嵌入式设备系统的动态引导的方法,把引导单元作为一个整体,能够突破了嵌入式设备的内部缓存大小或者硬件复制数目对于引导单元的限制,在系统的引导过程中有良好的人机界面显示与外设的正常工作,更保证了引导过程的容错性。
附图说明
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明的硬件连接方框图;
图2为本发明的方法流程图;
图3为本发明中的重定位引导单元运行时刻的内存分布图;
图4为本发明中的重定位引导单元载入时刻的内存分布图。
具体实施方式
如图1所示,嵌入式设备总共具有三种类型的存储器,三种存储器分别为非掉电易失性内存、主内存和微处理器的内部缓存。其中非掉电易失性内存可以采用NAND FLASH闪存存储器,主内存可以采用SDRAM同步动态随机存储器,内部缓存可以采用SRAM同步随机存储器。大小与分布空间均不同,内部缓存的大小限制为64KB,硬件限定只复制头8KB的引导程序(包括初始值为非0的全局变量区RW数据区与初始值为0的全局变量区ZI数据区)。
由于程序不能在NAND FLASH存储器中直接运行,嵌入式设备的程序初始化时执行NAND FLASH到SDRAM的拷贝程序,包括主程序区和可读写数据区。
如图2所示,嵌入式设备系统动态引导的方法包括以下步骤:引导单元虚拟分为重定位引导单元A部分和重定位引导单元B部分,重定位引导单元A部分小于内部缓存器;把重定位引导单元A部分载入到内部缓存器中,重定位引导单元A部分完成主内存的初始化,并动态计算在主内存中重定位的地址;根据计算过的重定位地址,把整个重定位引导单元自身复制到主内存中;重定位引导单元B部分初始化嵌入式设备的相关外设,提供人机界面和容错机制,并把主程序复制到主内存中;系统引导过程结束,启动嵌入式设备的主程序。
把引导单元内部各个区域虚拟的分开,分为引导单元A部分与引导单元B部分,链接的时候,形成特定的分区顺序的程序映像。不需要考虑整个引导单元大小的限制,只考虑其功能。链接的时候生成任意大的程序二进制代码,通过下载,写入到嵌入式设备的内部的非掉电易失性内存(NANDFLASH)中。
嵌入式设备启动时,会将重定位引导单元的A部分,也就是内部缓存大小或者硬件复制最大数目的程序部分复制到内部缓存,然后开始运行。由于进行了精确内部分区,载入运行的引导部分A并不会因为缺少引导部分B而无法正常工作。
此时,运行中的重定位引导单元A部分开始初始化SDRAM/DDRAM,然后将整个重定位引导程序整体复制到主内存重定位后的地址去,完成后,调整程序运行的指针,将控制权交付给重定位引导单元的B部分,进行各种功能的初始化,显示人机界面,并完成主程序的复制。这样,就突破了内部缓存大小或使硬件复制数目对于引导单元的限制。
如图3所示,是重定位引导单元运行时刻内存分布状况,其中嵌入式设备内部缓存的大小为64KB,0xFFFF0000地址为嵌入式设备内部缓存的基地址,内部缓存结束于0xFFFFFFFF;主内存SDRAM/DDRAM的内存地址从0x0到0x4000000,大小为128MB,其中0x1??????为重定位引导单元A部分运行后将整个重定位引导单元复制到主内存的起始地址,由重定位引导单元A部分执行完毕后,根据引导单元A部分区域的大小,自动计算出来的动态重定位地址,指向的是复制重定位引导单元的目标地址。0x2000000为重定位引导单元B部分的入口地址。
图4是重定位引导单元载入时刻分布图。整个程序映像分成两部分,程序映像偏移值0x0处是重定位引导单元A部分的入口,紧跟着为引导单元A部分的RW/ZI区域,后面是引导单元B部分的入口,其偏移地址根据前面引导部分A而动态决定。
内部缓存中运行重定位引导单元时,通过计算引导单元A部分程序映像总的大小,把复制的0x2000000目标地址动态的减去引导单元A部分映像的大小,来获得重定位后的目标地址,把运行时入口地址为0x2000000的引导单元B部分准确的复制到目的地址。
Claims (5)
1.嵌入式设备系统动态引导的方法,包括嵌入式设备的非掉电易失性内存,主内存,微处理器及其内部缓存器,其特征在于包括以下步骤:
把重定位引导单元分为重定位引导单元A部分和重定位引导单元B部分,重定位引导单元A部分小于内部缓存器;
重定位引导单元A部分载入到内部缓存器中,重定位引导单元A部分完成主内存的初始化,并动态计算在主内存中重定位的地址;
根据计算过的重定位地址,把整个重定位引导单元自身复制到主内存中;
重定位引导单元B部分初始化嵌入式设备的相关外设,提供人机界面和容错机制,并把主程序复制到主内存中;
系统引导过程结束,启动嵌入式设备的主程序。
2.根据权利要求1所述的嵌入式设备系统动态引导的方法,其特征在于非掉电易失性内存是NAND FLASH闪存存储器,主内存是SDRAM同步动态随机存储器,内部缓存是SRAM同步随机存储器。
3.根据权利要求1所述的嵌入式设备系统动态引导的方法,其特征在于重定位引导单元A部分和B部分链接时形成特定的分区顺序的文件映像。
4.根据权利要求3所述的嵌入式设备系统动态引导的方法,其特征在于重定位引导单元A部分可以独立运行。
5.根据权利要求1至4任一项权利要求所述的嵌入式设备系统动态引导的方法,其特征在于重定位引导单元B部分在运行过程中能够引用重定位引导单元A部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100452828A CN100362472C (zh) | 2005-12-06 | 2005-12-06 | 嵌入式设备系统动态引导的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100452828A CN100362472C (zh) | 2005-12-06 | 2005-12-06 | 嵌入式设备系统动态引导的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1786913A true CN1786913A (zh) | 2006-06-14 |
CN100362472C CN100362472C (zh) | 2008-01-16 |
Family
ID=36784392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100452828A Expired - Fee Related CN100362472C (zh) | 2005-12-06 | 2005-12-06 | 嵌入式设备系统动态引导的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100362472C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008058469A1 (fr) * | 2006-11-17 | 2008-05-22 | Maipu (Sichuan) Communication Technology Co., Ltd. | Procédé pour démarrer un dispositif embarqué |
CN101950256A (zh) * | 2010-09-15 | 2011-01-19 | 中兴通讯股份有限公司 | 一种嵌入式系统及嵌入式系统重新启动的方法 |
CN101776986B (zh) * | 2010-02-03 | 2011-12-14 | 青岛海信移动通信技术股份有限公司 | 一种启动程序时等待信息的显示控制方法和装置 |
CN106708542A (zh) * | 2015-07-17 | 2017-05-24 | 中兴通讯股份有限公司 | 一种嵌入式操作系统代码加载的方法及装置 |
CN106776373A (zh) * | 2017-01-12 | 2017-05-31 | 合肥杰美电子科技有限公司 | 一种面向移动设备的基于闪存的高速缓存系统及方法 |
CN110716697A (zh) * | 2019-09-29 | 2020-01-21 | 联想(北京)有限公司 | 一种信息处理方法和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100402639B1 (ko) * | 2000-02-09 | 2003-10-22 | 인터내셔널 비지네스 머신즈 코포레이션 | 후속 부트 처리중에 탑재하기 위해 운용 시스템을 미리선택하기 위한 방법 및 시스템 |
US7165137B2 (en) * | 2001-08-06 | 2007-01-16 | Sandisk Corporation | System and method for booting from a non-volatile application and file storage device |
CN1214328C (zh) * | 2002-02-08 | 2005-08-10 | 华为技术有限公司 | 一种引导存储器的构建方法、引导存储器及驱动方法 |
TWI228220B (en) * | 2002-03-08 | 2005-02-21 | Samsung Electronics Co Ltd | System boot using NAND flash memory and method thereof |
KR100469669B1 (ko) * | 2002-09-24 | 2005-02-02 | 삼성전자주식회사 | 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 |
-
2005
- 2005-12-06 CN CNB2005100452828A patent/CN100362472C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008058469A1 (fr) * | 2006-11-17 | 2008-05-22 | Maipu (Sichuan) Communication Technology Co., Ltd. | Procédé pour démarrer un dispositif embarqué |
CN100442228C (zh) * | 2006-11-17 | 2008-12-10 | 迈普(四川)通信技术有限公司 | 嵌入式设备引导方法 |
CN101776986B (zh) * | 2010-02-03 | 2011-12-14 | 青岛海信移动通信技术股份有限公司 | 一种启动程序时等待信息的显示控制方法和装置 |
CN101950256A (zh) * | 2010-09-15 | 2011-01-19 | 中兴通讯股份有限公司 | 一种嵌入式系统及嵌入式系统重新启动的方法 |
CN106708542A (zh) * | 2015-07-17 | 2017-05-24 | 中兴通讯股份有限公司 | 一种嵌入式操作系统代码加载的方法及装置 |
CN106776373A (zh) * | 2017-01-12 | 2017-05-31 | 合肥杰美电子科技有限公司 | 一种面向移动设备的基于闪存的高速缓存系统及方法 |
CN106776373B (zh) * | 2017-01-12 | 2020-10-16 | 合肥速显微电子科技有限公司 | 一种面向移动设备的基于闪存的高速缓存系统及方法 |
CN110716697A (zh) * | 2019-09-29 | 2020-01-21 | 联想(北京)有限公司 | 一种信息处理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100362472C (zh) | 2008-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Scargall | Programming persistent memory: A comprehensive guide for developers | |
CN110851380B (zh) | 基于人工智能应用程序的数据储存的装置、系统和方法 | |
US11481121B2 (en) | Physical media aware spacially coupled journaling and replay | |
US10776267B2 (en) | Mirrored byte addressable storage | |
US7970804B2 (en) | Journaling FAT file system and accessing method thereof | |
JP4419884B2 (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
CN1786913A (zh) | 嵌入式设备系统动态引导的方法 | |
CN101840362A (zh) | 一种改进的写时拷贝快照的实现方法和装置 | |
CN112035294B (zh) | 安全日志文件系统及其实现方法和介质 | |
US10019331B2 (en) | Memory allocation and recovery strategies for byte-addressable non-volatile RAM (NVRAM) | |
Fernando et al. | Phoenix: Memory speed hpc i/o with nvm | |
CN113515412B (zh) | 非易失性内存检查点生成方法、装置和电子设备 | |
CN110502188A (zh) | 一种基于数据库读写性能的数据存储方法与装置 | |
CN111061652B (zh) | 一种基于mpi-io中间件的非易失内存管理方法与系统 | |
US20230259747A1 (en) | Accelerator system for training deep neural network model using nand flash memory and operating method thereof | |
US20210181977A1 (en) | Optimizing atomic writes to a storage device | |
Ryu et al. | In-memory write-ahead logging for mobile smart devices with NVRAM | |
US6591264B1 (en) | Method that allows I/O requests to run concurrently with a rollback from a snapshot in a drive array | |
Chen et al. | ZoneLife: How to Utilize Data Lifetime Semantics to Make SSDs Smarter | |
Chen et al. | A novel non-volatile memory update mechanism for 6g edge computing | |
CN109324929A (zh) | 一种快照创建方法、装置、设备及可读存储介质 | |
CN103838647A (zh) | 一种基于快照重映射的数据状态转换的方法及系统 | |
Katzburg et al. | Storage becomes first class memory | |
CN105426130B (zh) | 邮件快速处理方法 | |
CN105260261B (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 | ||
DD01 | Delivery of document by public notice |
Addressee: HISENSE Co.,Ltd. Document name: Notification to Pay the Fees |
|
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Du Wenjuan Document name: Notification of Termination of Patent Right |
|
DD01 | Delivery of document by public notice | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080116 Termination date: 20191206 |
|
CF01 | Termination of patent right due to non-payment of annual fee |