CN102662715B - 一种嵌入式操作系统启动方法 - Google Patents

一种嵌入式操作系统启动方法 Download PDF

Info

Publication number
CN102662715B
CN102662715B CN201210120143.7A CN201210120143A CN102662715B CN 102662715 B CN102662715 B CN 102662715B CN 201210120143 A CN201210120143 A CN 201210120143A CN 102662715 B CN102662715 B CN 102662715B
Authority
CN
China
Prior art keywords
data
boot
correct
starting method
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.)
Active
Application number
CN201210120143.7A
Other languages
English (en)
Other versions
CN102662715A (zh
Inventor
王尤巧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XY AUTO ELECTRONIC CO Ltd
Original Assignee
XY AUTO ELECTRONIC CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XY AUTO ELECTRONIC CO Ltd filed Critical XY AUTO ELECTRONIC CO Ltd
Priority to CN201210120143.7A priority Critical patent/CN102662715B/zh
Publication of CN102662715A publication Critical patent/CN102662715A/zh
Application granted granted Critical
Publication of CN102662715B publication Critical patent/CN102662715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种嵌入式操作系统启动方法,包括:101)BOOT启动;102)检验并判断第一BOOT数据是否正确,是进入下一步,否则将校验正确的第二BOOT数据覆盖第一BOOT数据进入步骤105);105)加载校验正确的BOOT数据;106)检验并判断第一OS数据是否正确,是进入下一步,否则将校验正确的第二OS数据覆盖第一OS数据进入步骤109);109)加载校验正确的OS数据;110)引导结束,正常开机。这种方法能克服或大大降低无法开机、停留在开机画面和机器运行速度慢等问题且没有额外生产成本。

Description

一种嵌入式操作系统启动方法
技术领域
本发明涉及智能电子产品软件系统,具体涉及一种嵌入式操作系统启动方法。
背景技术
嵌入式操作系统在电子产品上电或复位后,在操作系统(OS)内核运行之前,须经过引导加载启动过程。系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。比如,基于型号为ARM7TDMIcore的CPU在上电或复位时通常都从地址0x00000000取它的第一条指令。而基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备,比如:只读存储器(ROM)、电可擦除程序存储器(EEPROM)或闪存(FLASH)等,被映射到这个预先安排的地址上。因此在系统上电后,CPU将首先执行引导加载启动过程,使用固态存储设备中嵌入式引导程序(BOOT)数据和OS数据。但是固态存储设备,如FLASH随着不断读写次数的增多,会产生一定数量的坏块,假如BOOT或OS恰好存储在这一块上,则机器会产生掉BOOT/OS数据、无法开机,停留在开机画面,机器运行速度慢等问题。而目前业内防止掉BOOT/OS数据的技术为尽量减少写flash的次数,使用质量稍好的FLASH,这样不可避免地造成以下技术问题:
1、整机成本增加;
2、还存在掉BOOT/OS数据,导致机器无法开机,停留在开机画面,机器运行速度慢等机器的比率仍然很高;
3:将终端用户操作机器步骤复杂化。
发明内容
本发明需要解决的技术问题是,如何提供一种嵌入式操作系统启动方法,能克服或大大降低无法开机、停留在开机画面和机器运行速度慢等问题,进一步没有额外生产成本。
本发明的上述技术问题这样解决:构建一种嵌入式操作系统启动方法,利用复数份BOOT数据和OS数据以及对应数据校验码,包括以下具体步骤:
101)启动,进入系统引导加载;
102)检验并判断第一BOOT数据是否正确?是进入下一步,否则将校验正确的第二BOOT数据覆盖第一BOOT数据进入步骤105);
105)加载校验正确的BOOT数据;
106)检验并判断第一OS数据是否正确?是进入下一步,否则将校验正确的第二OS数据覆盖第一OS数据进入步骤109);
109)加载校验正确的OS数据;
110)引导结束,正常开机。
按照本发明提供的启动方法,该启动方法还包括以下步骤:
103)检验并判断第二BOOT数据是否正确?否进入下一步,是则进入步骤10);
104)将第一BOOT数据覆盖第二BOOT数据;
该启动方法还包括以下步骤:
107)检验并判断第二OS数据是否正确?否进入下一步,是则进入步骤110;
108)将第一OS数据覆盖第二OS数据。
步骤103-104)、107-108)可以每次启动都进行,也可以选择适当频率或时机进行,在极端情况也可以不执行。
按照本发明提供的启动方法,所述BOOT数据和OS数据包括但但不限制于都是二份,优选都是二份。
按照本发明提供的启动方法,该启动方法包括但不限制于以下优选的存储方式:在第一次BOOT升级时将固化存储器进行分区,并将复数份BOOT数据保存在其中一个分区内,而将复数份OS数据保存在另一个分区内。也可以选择二块固化存储器但成本高。
按照本发明提供的启动方法,该启动方法还包括在所述保存过程中包括校验判断和将校验判断错误的保存数据重新写入。
按照本发明提供的启动方法,该启动方法还包括在第N次BOOT升级时将复数份BOOT数据和复数份OS数据覆盖保存至固化存储器中,N是大于1的自然数。
按照本发明提供的启动方法,用于保存复数份BOOT数据和OS数据的固化存储器是FLASH、EEPROM或INAND。
按照本发明提供的启动方法,该启动方法还包括:
步骤102)内将校验正确的第二BOOT数据覆盖第一BOOT数据具体包括:检验并判断第二BOOT数据是否正确?是将校验正确的第二BOOT数据覆盖第一BOOT数据,否则中断启动或尝试选择加载一个BOOT数据进入步骤106);
步骤106)内将校验正确的第二OS数据覆盖第一OS数据具体包括:包括检验并判断第二OS数据是否正确?是将校验正确的第二OS数据覆盖第一OS数据,否则中断启动或尝试选择加载一个OS数据进入步骤110)。
按照本发明提供的启动方法,该启动方法在所述中断启动后弹出对话框让用户选择。
按照本发明提供的启动方法,该嵌入式操作系统包括但不限制于是LINUX/安卓(ANDROID)/视窗8(Windows8)/WindowsCE操作系统。
按照本发明提供的启动方法,所述启动包括机器上电和复位。
本发明提供的嵌入式操作系统启动方法,突破传统思路,行内率先采用BOOT/OS双备份技术进行引导,较现有技术具有以下优势:
1、实验表明掉BOOT或OS数据导致机器无法开机的机器不良率为12.5%,采用此技术之后,不良率将低到1.5%;
2、不妨碍用户使用;
3、产品性能优越、成本低廉。
附图说明
下面结合附图和具体实施例进一步对本发明进行详细说明:
图1是本发明优选实施例的开机引导软件程序流程示意图。
具体实施方式
首先,说明本发明核心和基础:
(一)数据存储
在BOOT第一次升级时,会在flash中划分出几个区来,其中一个区用来存放BOOT数据,存放BOOT的区分成2部分,各存放BOOT数据,BOOT备份数据;另一个区来存放OS数据,这个区也会被初始化成为2部分,分别存放OS数据,和OS备份数据。
(二)BOOT双备份:
储存BOOT分区的第一部分用来存放BOOT数据,(我们后面对这个部分统称为BOOTA区)第二个部分,用来存放备份的BOOT数据(我们后面对这个部分统称为BOOTB区)。BOOT在划分完区之后,会将BOOT数据写入FLASH,并记录下校验值。
在升级结束后的每次开机时,BOOT会先对BOOTA区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对BOOTB区进行校验,如果值相等,那么程序不做任何操作,直接进入OS双备份步骤。
在升级结束后的每次开机时,BOOT会先对BOOTA区进行校验,如果和升级时候的校验值做对比,如果值不相等,则会将校验值正确的BOOTB区的数据覆盖BOOTA区的数据,之后直接进入OS双备份步骤。
在升级结束后的每次开机时,BOOT会先对BOOTA区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对BOOTB区进行校验,如果校验值不相等,那么BOOT会将BOOTA区的数据覆盖BOOTB区的数据,之后直接进入OS双备份步骤。
(三)OS双备份:
第一部分用来存放OS数据,(我们后面对这个部分统称为A区)第二个部分,用来存放备份的OS数据(我们后面对这个部分统称为B区)。BOOT在划分完区之后,会将OS数据写入FLASH,并记录下校验值。
在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对B区进行校验,如果值相等,那么程序不做任何操作,直接开机。
在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做对比,如果值不相等,则会将校验值正确的B区的数据覆盖A区的数据,之后引导开机。
在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对B区进行校验,如果校验值不相等,那么BOOT会将A区的数据覆盖B区的数据,之后引导开机。
第二,结合本发明具体实施例进行详细说明:
如图1所示,本发明具体实施例电子产品使用双备份的BOOT和OS数据,其开机引导软件程序包括以下具体步骤:
301)BOOT启动;
302)检验并判断BOOTA区数据是否正确?是进入下一步,否则进入步骤305);
303)检验并判断BOOTB区数据是否正确?否进入下一步,是则进入步骤306);
304)将BOOTA区数据覆盖BOOTB区数据,进入步骤306);
305)将校验正确的BOOTB区数据覆盖BOOTA区数据;
306)加载校验正确的BOOT数据,检验并判断OSA区数据是否正确?是进入下一步,否则进入步骤310);
307)检验并判断OSB区数据是否正确?否进入下一步,是则进入步骤309);
308)将OSA区数据覆盖OSB区数据,进入步骤310);
309)将校验正确的OSB区数据覆盖OSA区数据;
310)加载校验正确的OS数据,引导结束,正常开机。
当然,以上所述仅是本发明的较佳实施例,故凡依本发明专利申请范围所述的构造、特征及流程所做的等效变化或修饰,均包括于本发明专利申请范围为内。

Claims (10)

1.一种嵌入式操作系统启动方法,其特征在于,利用复数份BOOT数据和OS数据以及对应数据校验码,包括以下具体步骤:
101)启动,进入系统引导加载;
102)检验并判断第一BOOT数据是否正确?是进入下一步,否则将校验正确的第二BOOT数据覆盖第一BOOT数据进入步骤105);
105)加载校验正确的BOOT数据;
106)检验并判断第一OS数据是否正确?是进入下一步,否则将校验正确的第二OS数据覆盖第一OS数据进入步骤109);
109)加载校验正确的OS数据;
110)引导结束,正常开机。
2.根据权利要求1所述启动方法,其特征在于,该启动方法还包括以下步骤:
103)检验并判断第二BOOT数据是否正确?否进入下一步,是则进入步骤110);
104)将第一BOOT数据覆盖第二BOOT数据;
该启动方法还包括以下步骤:
107)检验并判断第二OS数据是否正确?否进入下一步,是则进入步骤110);
108)将第一OS数据覆盖第二OS数据。
3.根据权利要求1或2所述启动方法,其特征在于,所述BOOT数据和OS数据都是二份。
4.根据权利要求1或2所述启动方法,其特征在于,该启动方法还包括在第一次BOOT升级时将固化存储器进行分区,并将复数份BOOT数据保存在其中一个分区内,而将复数份OS数据保存在另一个分区内。
5.根据权利要求4所述启动方法,其特征在于,该启动方法还包括在所述保存过程中包括校验判断和将校验判断错误的保存数据重新写入。
6.根据权利要求1或2所述启动方法,其特征在于,该启动方法还包括在第N次BOOT升级时将复数份BOOT数据和复数份OS数据覆盖保存至固化存储器中,N是大于1的自然数。
7.根据权利要求1或2所述启动方法,其特征在于,用于保存复数份BOOT数据和OS数据的固化存储器是FLASH、EEPROM或INAND。
8.根据权利要求1或2所述启动方法,其特征在于,该启动方法还包括:
步骤102)内将校验正确的第二BOOT数据覆盖第一BOOT数据具体包括:检验并判断第二BOOT数据是否正确?是将校验正确的第二BOOT数据覆盖第一BOOT数据,否则中断启动或尝试选择加载一个BOOT数据进入步骤106);
步骤106)内将校验正确的第二OS数据覆盖第一OS数据具体包括:包括检验并判断第二OS数据是否正确?是将校验正确的第二OS数据覆盖第一OS数据,否则中断启动或尝试选择加载一个OS数据进入步骤110)。
9.根据权利要求8所述启动方法,其特征在于,该启动方法在所述中断启动后弹出对话框让用户选择。
10.根据权利要求1或2所述启动方法,其特征在于,该嵌入式操作系统是LINUX/ANDROID/CE/Windows8操作系统之一。
CN201210120143.7A 2012-04-23 2012-04-23 一种嵌入式操作系统启动方法 Active CN102662715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210120143.7A CN102662715B (zh) 2012-04-23 2012-04-23 一种嵌入式操作系统启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210120143.7A CN102662715B (zh) 2012-04-23 2012-04-23 一种嵌入式操作系统启动方法

Publications (2)

Publication Number Publication Date
CN102662715A CN102662715A (zh) 2012-09-12
CN102662715B true CN102662715B (zh) 2016-03-23

Family

ID=46772216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210120143.7A Active CN102662715B (zh) 2012-04-23 2012-04-23 一种嵌入式操作系统启动方法

Country Status (1)

Country Link
CN (1) CN102662715B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182242A (zh) * 2013-05-28 2014-12-03 华为技术有限公司 一种系统启动方法及装置
CN103559057B (zh) * 2013-11-06 2016-10-12 广东小天才科技有限公司 一种嵌入式系统加载启动方法及装置
CN106156626B (zh) * 2015-03-27 2020-04-10 阿里巴巴集团控股有限公司 一种系统安全升级的方法和装置
CN105279046A (zh) * 2015-11-04 2016-01-27 研华科技(中国)有限公司 一种提高嵌入式系统可靠性的方法
CN106775610B (zh) * 2016-03-22 2021-11-12 新华三技术有限公司 一种电子设备启动方法及一种电子设备
CN108762828B (zh) * 2018-04-24 2021-11-16 桂林长海发展有限责任公司 一种dsp多核阵列二级启动方法和装置
CN110308939A (zh) * 2019-07-01 2019-10-08 联想(北京)有限公司 信息处理方法和电子设备
CN110515664A (zh) * 2019-07-26 2019-11-29 苏州浪潮智能科技有限公司 系统的启动方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196839A (zh) * 2006-12-06 2008-06-11 英业达股份有限公司 双快闪只读存储器的数据修复与同步方法
CN101281469A (zh) * 2008-04-11 2008-10-08 青岛海信电器股份有限公司 嵌入式系统及其启动加载的方法
CN101782859A (zh) * 2010-03-18 2010-07-21 上海乐毅信息科技有限公司 一种嵌入式系统在应用中的升级方法
CN101794248A (zh) * 2010-04-02 2010-08-04 福州思迈特数码科技有限公司 构建多重引导存储结构与备份的方法
CN102053875A (zh) * 2009-10-29 2011-05-11 纬创资通股份有限公司 恢复计算机系统的基本输入输出系统的方法及计算机系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100578461C (zh) * 2008-03-12 2010-01-06 中兴通讯股份有限公司 一种引导程序的备份方法及其备份装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196839A (zh) * 2006-12-06 2008-06-11 英业达股份有限公司 双快闪只读存储器的数据修复与同步方法
CN101281469A (zh) * 2008-04-11 2008-10-08 青岛海信电器股份有限公司 嵌入式系统及其启动加载的方法
CN102053875A (zh) * 2009-10-29 2011-05-11 纬创资通股份有限公司 恢复计算机系统的基本输入输出系统的方法及计算机系统
CN101782859A (zh) * 2010-03-18 2010-07-21 上海乐毅信息科技有限公司 一种嵌入式系统在应用中的升级方法
CN101794248A (zh) * 2010-04-02 2010-08-04 福州思迈特数码科技有限公司 构建多重引导存储结构与备份的方法

Also Published As

Publication number Publication date
CN102662715A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662715B (zh) 一种嵌入式操作系统启动方法
CN102650947B (zh) 一种Android手持设备连续增量的空中升级方法
CN102722394B (zh) 一种嵌入式设备的启动升级方法
CN105094927B (zh) 一种设备固件升级方法和装置
CN104025047B (zh) 信息处理装置、信息处理方法以及计算机程序
US8423991B2 (en) Embedded network device and firmware upgrading method
CN104063477B (zh) 嵌入式系统启动异常的处理方法及装置
US8452937B2 (en) Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
US20100058314A1 (en) Computer System and Related Method of Logging BIOS Update Operation
US8402204B2 (en) Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same
US9218891B2 (en) Data storage device and flash memory control method
CN102163155A (zh) 存储设备的升级方法及升级控制装置
CN102736932B (zh) 镜像文件、镜像文件的制作方法及多系统的启动引导方法
US20120221773A1 (en) Nonvolatile semiconductor memory device
CN105677409B (zh) 一种系统升级方法及装置
TW201526007A (zh) Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
JP5225071B2 (ja) 埋め込みシステム、特にスマートカードにロードされる疑似コードの検証方法
CN109766140A (zh) 一种机顶盒启动异常的定位方法及装置
CN113064604A (zh) 一种固件升级方法和装置
KR100894251B1 (ko) 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
CN103150184A (zh) 一种对闪存进行操作的方法和系统芯片
CN103425932A (zh) 签名校验方法和终端设备
CN106920576A (zh) 一种检验Nand Flash质量的方法及系统
CN102799496A (zh) 一种与非型闪存操作系统内核和文件系统校验方法及装置
US10606520B2 (en) Methods and apparatus to read from a nonvolatile memory device

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