CN101000551A - 嵌入式单板引导模块版本加载方法 - Google Patents
嵌入式单板引导模块版本加载方法 Download PDFInfo
- Publication number
- CN101000551A CN101000551A CN 200710000501 CN200710000501A CN101000551A CN 101000551 A CN101000551 A CN 101000551A CN 200710000501 CN200710000501 CN 200710000501 CN 200710000501 A CN200710000501 A CN 200710000501A CN 101000551 A CN101000551 A CN 101000551A
- Authority
- CN
- China
- Prior art keywords
- bootstrap module
- function
- module
- realizes
- verification
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式单板引导模块版本加载方法,包括以下步骤:第一步骤,单板上电启动,运行引导模块的头部分;第二步骤,通过检查加载的引导模块的功能实现部分以及上次运行加载的引导模块的功能实现部分,来决定将加载的引导模块的功能实现部分或烧结的引导模块的功能实现部分解压缩到RAM;以及第三步骤,运行RAM中经过解压缩的引导模块的功能实现部分,在预定时间之后,如果收到了加载命令,则进行引导模块加载,如果没有收到加载命令,则运行版本程序。通过使用本发明,可以节省更新单板BOOT的工程实施的时间和成本,提高单板BOOT的更新速度。
Description
技术领域
本发明涉及通信领域,并且特别地,涉及一种嵌入式单板引导模块(BOOT)版本加载方法。
背景技术
传统的引导模块(BOOT)程序都是通过编程器烧结可擦写闪存(FLASH)的方法来实现BOOT程序,随着技术的发展,单板元器件的更新速度日益加快,比如FLASH芯片更新的日益加快等等,单板BOOT程序也需要经常性的更新,尤其是一些BOOT程序和运行程序合一的系统,更是需要经常更新。而且随着FLASH的发展,BOOT FLASH也容量也逐步变大,而且基本都支持快速擦除和读写,这样就为BOOT自身的加载提出了要求。而现有技术中的BOOT程序存在自身不能够加载更新的缺陷。
发明内容
考虑到现有技术中的缺陷,本发明的主要目的在于提供一种嵌入式单板引导模块版本加载机制。
根据本发明的一个实施例,提供了一种嵌入式单板引导模块版本加载方法。
该方法包括以下步骤:第一步骤,单板上电启动,运行引导模块的头部分;第二步骤,通过检查加载的引导模块的功能实现部分以及上次运行加载的引导模块的功能实现部分,来决定将加载的引导模块的功能实现部分或烧结的引导模块的功能实现部分解压缩到RAM;以及第三步骤,运行RAM中经过解压缩的引导模块的功能实现部分,在预定时间之后,如果收到了加载命令,则进行引导模块加载,如果没有收到加载命令,则运行版本程序。
其中,引导模块包括:引导模块头部分,用于实现单板初始化;引导模块功能实现部分,用于实现单板初始化、FLASH的读写操作、引导模块程序加载、版本程序加载、以及版本加载需要的通讯;其中,引导模块头部分还用于实现引导模块功能实现部分的校验和解压缩。并且,引导模块头部分在引导模块闪存上运行,引导模块功能实现部分被引导模块头部分释放到内存中运行。
在该方法的第二步骤中进一步包括以下处理步骤:步骤A,在校验上次运行加载的引导模块的功能实现部分成功的情况下,将烧结的引导模块的功能实现部分解压缩到RAM;步骤B,在校验上次运行加载的引导模块的功能实现部分失败,且校验加载的引导模块的功能实现部分成功的情况下,将加载的引导模块的功能实现部分解压缩到RAM。其中,在上次运行加载的引导模块的功能实现部分不存在错误标记的情况下,才进行步骤A中的校验。并且,在上次运行加载的引导模块的功能实现部分存在错误标记的情况下,首先清除标记,然后进行到步骤B。另外,在校验加载的引导模块的功能实现部分失败的情况下,上报错误信息。
另外,在该方法的第三步骤中加载的引导模块存储在烧结的引导模块功能实现部分,其中,在校验烧结的引导模块功能实现部分成功的情况下,重新启动单板程序。并且,在校验烧结的引导模块功能实现部分失败的情况下,上报错误信息。
通过上述技术方案,本发明可以节省工程实施更新单板BOOT的时间和成本,提高单板BOOT的更新速度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的嵌入式单板引导模块版本加载方法的流程图;
图2是示出根据本发明实施例的BOOT程序的组成示意图;
图3是示出根据本发明实施例的BOOT程序在SST39VF020型BOOT FLASH中位置的示意图;
图4是根据本发明实施例的引导模块头部分的启动处理流程图;以及
图5是根据本发明实施例的引导模块功能实现部分的启动处理流程图。
具体实施方式
下面将参考附图详细说明本发明。
如图1所示,根据本发明实施例的嵌入式单板引导模块版本加载方法包括以下步骤:步骤S102,单板上电启动,运行引导模块的头部分;步骤S104,通过检查加载的引导模块的功能实现部分()以及上次运行加载的引导模块的功能实现部分,来决定将加载的引导模块的功能实现部分或烧结的引导模块的功能实现部分解压缩到RAM;以及步骤S106,运行RAM中经过解压缩的引导模块的功能实现部分,在预定时间之后,如果收到了加载命令,则进行引导模块加载,如果没有收到加载命令,则运行版本程序。
其中,如图2所示,引导模块包括:引导模块头部分(BOOT_HEAD),用于实现单板初始化;引导模块功能实现部分(BOOT_BODY),用于实现单板初始化、FLASH的读写操作、引导模块程序加载、版本程序加载、以及版本加载需要的通讯;其中,引导模块头部分还用于实现引导模块功能实现部分的校验和解压缩。并且,引导模块头部分在引导模块闪存上运行,引导模块功能实现部分被引导模块头部分释放到内存中运行。
以SST 39VF020为例,其大小为256K,图3示出了BOOT程序在其中的存放示意图。假定BOOT程序小于128K(在大约为128K的情况下可以选取SST39VF040),将BOOT程序分为图2所示的2个部分:BOOT头部分和BOOT实现部分。BOOT头部分实现单板内存初始化,BOOT实现部分的校验,以及实现部分的解压缩功能,主要负责将BOOT实现部分从FLASH解压缩后搬到内存中;BOOT实现部分主要负责实现单板基本硬件的初始化,定时器,单板通讯的实现,单板BOOT的FLASH操作和运行程序下载相关以及其他功能。BOOT_HEAD是在BOOT FLASH上运行的,BOOT_BODY是被BOOT_HEAD释放到内存中运行的。
步骤S104中进一步包括以下处理步骤:步骤A,在校验上次运行加载的引导模块的功能实现部分(BOOT_BODY2)成功的情况下,将加载的引导模块的功能实现部分(BOOT_BODY2)解压缩到RAM;步骤B,在校验上次运行加载的引导模块的功能实现部分(BOOT_BODY2)失败,且校验加载的引导模块的功能实现部分(BOOT_BODY1)成功的情况下,将烧结的引导模块的功能实现部分(BOOT_BODY1)解压缩到RAM。其中,在上次运行加载的引导模块的功能实现部分(BOOT_BODY2)不存在错误标记的情况下,才进行步骤A中的校验。并且,在上次运行加载的引导模块的功能实现部分(BOOT_BODY2)存在错误标记的情况下,首先清除标记,然后进行到步骤B。另外,在校验烧结的引导模块的功能实现部分(BOOT_BODY1)失败的情况下,上报错误信息。
将该启动处理应用到SST 39VF020中时,其处理流程如图4所示,包括以下步骤:
步骤401:单板在上电启动时,运行进入BOOT_HEAD;
步骤402:单板启动错误,红灯常亮提示;
步骤403:首先检查上次运行BOOT_BODY2错误标记,“是”则执行步骤404,“否”则执行步骤407;
步骤404:清除错误标记;
步骤405:校验BOOT_BODY1,“是”则执行步骤406,“否”则执行步骤402;
步骤406:解压缩BOOT_BODY1到内存中,倒转到内存运行BOOT_BODY;
步骤407:校验BOOT_BODY2,“是”则执行步骤408,“否”则执行步骤405;
步骤408:解压缩BOOT_BODY2到内存中,倒转到内存运行BOOT_BODY。
另外,在图1中的步骤S106中,加载的引导模块存储在烧结的引导模块功能实现部分,其中,在校验烧结的引导模块功能实现部分成功的情况下,重新启动单板程序。并且,在校验烧结的引导模块功能实现部分失败的情况下,上报错误信息。
该处理的详细流程如图5所示,如图所示,该处理包括以下步骤:
步骤501:运行进入BOOT_BODY;
步骤502:进行BOOT需要的基本硬件初始化;
步骤503:等待5秒时间,如果收到BOOT加载命令,则执行步骤506,否则执行步骤504;
步骤504:如果需要加载运行程序,则执行步骤507,否则执行步骤505;
步骤505:运行进入运行程序;
步骤506:执行引导模块程序加载,将其存放到BOOT_BODY2位置;
步骤507:进入运行程序加载流程,进行运行程序加载;
步骤508:校验BOOT_BODY2,成功则执行步骤510,失败则执行步骤509;
步骤509:上报引导模块程序加载错误信息;
步骤510:上报引导模块程序加载成功信息;
步骤511:复位单板,重新启动。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种嵌入式单板引导模块版本加载方法,其特征在于,包括以下步骤:
第一步骤,单板上电启动,运行引导模块的头部分;
第二步骤,通过检查加载的引导模块的功能实现部分以及上次运行加载的引导模块的功能实现部分,来决定将加载的引导模块的功能实现部分或烧结的引导模块的功能实现部分解压缩到RAM;以及
第三步骤,运行RAM中经过解压缩的所述引导模块的功能实现部分,在预定时间之后,如果收到了加载命令,则进行引导模块加载,如果没有收到加载命令,则运行版本程序。
2.根据权利要求1所述的方法,其特征在于,所述引导模块包括:
引导模块头部分,用于实现单板初始化;
引导模块功能实现部分,用于实现单板初始化、FLASH的读写操作、引导模块程序加载、版本程序加载、以及版本加载需要的通讯;
其中,所述引导模块头部分还用于实现所述引导模块功能实现部分的校验和解压缩。
3.根据权利要求2所述的方法,其特征在于,所述引导模块头部分在引导模块闪存上运行,所述引导模块功能实现部分被所述引导模块头部分释放到内存中运行。
4.根据权利要求1所述的方法,其特征在于,所述第二步骤进一步包括以下处理:
步骤A:在校验上次运行加载的引导模块的功能实现部分成功的情况下,将加载的引导模块的功能实现部分解压缩到RAM;
步骤B:在校验上次运行加载的引导模块的功能实现部分失败,且校验烧结的引导模块的功能实现部分成功的情况下,将烧结的引导模块的功能实现部分解压缩到RAM。
5.根据权利要求4所述的方法,其特征在于,在所述上次运行加载的引导模块的功能实现部分不存在错误标记的情况下,才进行所述步骤A中的校验。
6.根据权利要求4所述的方法,其特征在于,在所述上次运行加载的引导模块的功能实现部分存在错误标记的情况下,首先清除所述标记,然后进行到所述步骤B。
7.根据权利要求4所述的方法,其特征在于,在校验烧结的引导模块的功能实现部分失败的情况下,上报错误信息。
8.根据权利要求1所述的方法,其特征在于,在所述第三步骤中加载的所述引导模块存储在烧结的引导模块功能实现部分。
9.根据权利要求8所述的方法,其特征在于,在校验所述烧结的引导模块功能实现部分成功的情况下,重新启动单板程序。
10.根据权利要求8所述的方法,其特征在于,在校验所述烧结的引导模块功能实现部分失败的情况下,上报错误信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710000501 CN101000551A (zh) | 2007-01-05 | 2007-01-05 | 嵌入式单板引导模块版本加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710000501 CN101000551A (zh) | 2007-01-05 | 2007-01-05 | 嵌入式单板引导模块版本加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101000551A true CN101000551A (zh) | 2007-07-18 |
Family
ID=38692538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710000501 Pending CN101000551A (zh) | 2007-01-05 | 2007-01-05 | 嵌入式单板引导模块版本加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101000551A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902556A (zh) * | 2012-09-06 | 2013-01-30 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
CN102930184A (zh) * | 2012-10-19 | 2013-02-13 | 华为技术有限公司 | 一种功能组件加载方法及装置 |
CN103927196A (zh) * | 2013-01-11 | 2014-07-16 | 三星电子株式会社 | 用于引导的装置和方法 |
-
2007
- 2007-01-05 CN CN 200710000501 patent/CN101000551A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902556A (zh) * | 2012-09-06 | 2013-01-30 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
CN102902556B (zh) * | 2012-09-06 | 2016-06-01 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
CN102930184A (zh) * | 2012-10-19 | 2013-02-13 | 华为技术有限公司 | 一种功能组件加载方法及装置 |
CN102930184B (zh) * | 2012-10-19 | 2015-11-25 | 华为技术有限公司 | 一种功能组件加载方法及装置 |
CN103927196A (zh) * | 2013-01-11 | 2014-07-16 | 三星电子株式会社 | 用于引导的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103299276B (zh) | 嵌入式装置的软件更新过程 | |
CN101281469B (zh) | 嵌入式系统及其启动加载的方法 | |
US7774382B2 (en) | Method and apparatus for configuring a control device, and corresponding control device | |
US8136108B2 (en) | Updating firmware with multiple processors | |
CN102073517A (zh) | 一种嵌入式系统的升级、备份方法和装置 | |
US20100235617A1 (en) | System recovery method and embedded system with automatic recovery function | |
CN105760200A (zh) | 终端设备及其系统升级方法 | |
CN102141923B (zh) | 内存文件系统加载方法及装置 | |
CN105260205A (zh) | 一种嵌入式板上实现双操作系统启动的方法 | |
CN104461657A (zh) | 一种主备嵌入式引导程序的启动方法及装置 | |
CN102004657B (zh) | 一种电子设备及其升级方法 | |
CN101216789A (zh) | 数据更新方法、装置及系统 | |
CN100549959C (zh) | 引导程序在线升级方法 | |
CN102799452A (zh) | 系统软件升级方法和装置 | |
CN101000551A (zh) | 嵌入式单板引导模块版本加载方法 | |
CN1980447B (zh) | 一种通信系统软件版本的平滑升级方法 | |
CN105573796A (zh) | 用于fpga的功能切换的方法及装置 | |
CN105825126A (zh) | 一种文件保护方法及装置 | |
US20060206674A1 (en) | Optical disc drive and program code updating method thereof | |
US8019985B2 (en) | Data-processing arrangement for updating code in an auxiliary processor memory | |
US9311075B2 (en) | Electronic apparatus and BIOS updating apparatus thereof | |
EP1710697A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
CN106104474B (zh) | 用于更新低存储量装置上的固件的方法 | |
CN101482825A (zh) | 自启动模块及其实现方法,单板和单板自启动方法 | |
JP2008077474A (ja) | ファームウェア更新方法、電子機器、ファームウェア更新プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |