CN102662715A - 一种嵌入式操作系统启动方法 - Google Patents
一种嵌入式操作系统启动方法 Download PDFInfo
- Publication number
- CN102662715A CN102662715A CN2012101201437A CN201210120143A CN102662715A CN 102662715 A CN102662715 A CN 102662715A CN 2012101201437 A CN2012101201437 A CN 2012101201437A CN 201210120143 A CN201210120143 A CN 201210120143A CN 102662715 A CN102662715 A CN 102662715A
- Authority
- CN
- China
- Prior art keywords
- data
- boot
- correct
- verification
- startup
- 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
- 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制造商预先安排的地址上取指令。比如,基于型号为ARM7TDMI core的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(Windows 8)/Windows CE操作系统。
按照本发明提供的启动方法,所述启动包括机器上电和复位。
本发明提供的嵌入式操作系统启动方法,突破传统思路,行内率先采用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数据,(我们后面对这个部分统称为BOOT A区)第二个部分,用来存放备份的BOOT数据(我们后面对这个部分统称为BOOT B区)。BOOT在划分完区之后,会将BOOT数据写入FLASH,并记录下校验值。
在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对BOOT B区进行校验,如果值相等,那么程序不做任何操作,直接进入OS双备份步骤。
在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,如果和升级时候的校验值做对比,如果值不相等,则会将校验值正确的BOOT B区的数据覆盖BOOT A区的数据,之后直接进入OS双备份步骤。
在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,和升级时候的校验值做对比,如果值相等,那么接着就对BOOT B区进行校验,如果校验值不相等,那么BOOT会将BOOT A区的数据覆盖BOOT B区的数据,之后直接进入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)检验并判断BOOT B区数据是否正确?否进入下一步,是则进入步骤306);
304)将BOOT A区数据覆盖BOOT B区数据,进入步骤306);
305)将校验正确的BOOT B区数据覆盖BOOTA区数据;
306)加载校验正确的BOOT数据,检验并判断OS A区数据是否正确?是进入下一步,否则进入步骤310);
307)检验并判断OS B区数据是否正确?否进入下一步,是则进入步骤309);
308)将OS A区数据覆盖OS B区数据,进入步骤310);
309)将校验正确的OS B区数据覆盖OS A区数据;
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数据是否正确?否进入下一步,是则进入步骤10);
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/Windows 8操作系统。
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 true CN102662715A (zh) | 2012-09-12 |
CN102662715B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559057A (zh) * | 2013-11-06 | 2014-02-05 | 广东小天才科技有限公司 | 一种嵌入式系统加载启动方法及装置 |
CN104182242A (zh) * | 2013-05-28 | 2014-12-03 | 华为技术有限公司 | 一种系统启动方法及装置 |
CN105279046A (zh) * | 2015-11-04 | 2016-01-27 | 研华科技(中国)有限公司 | 一种提高嵌入式系统可靠性的方法 |
CN106156626A (zh) * | 2015-03-27 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种系统安全升级的方法和装置 |
CN106775610A (zh) * | 2016-03-22 | 2017-05-31 | 新华三技术有限公司 | 一种电子设备启动方法及一种电子设备 |
CN108762828A (zh) * | 2018-04-24 | 2018-11-06 | 桂林长海发展有限责任公司 | 一种dsp多核阵列二级启动方法和装置 |
CN110308939A (zh) * | 2019-07-01 | 2019-10-08 | 联想(北京)有限公司 | 信息处理方法和电子设备 |
CN110515664A (zh) * | 2019-07-26 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 系统的启动方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196839A (zh) * | 2006-12-06 | 2008-06-11 | 英业达股份有限公司 | 双快闪只读存储器的数据修复与同步方法 |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
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 | 纬创资通股份有限公司 | 恢复计算机系统的基本输入输出系统的方法及计算机系统 |
-
2012
- 2012-04-23 CN CN201210120143.7A patent/CN102662715B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196839A (zh) * | 2006-12-06 | 2008-06-11 | 英业达股份有限公司 | 双快闪只读存储器的数据修复与同步方法 |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
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 | 福州思迈特数码科技有限公司 | 构建多重引导存储结构与备份的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182242A (zh) * | 2013-05-28 | 2014-12-03 | 华为技术有限公司 | 一种系统启动方法及装置 |
CN103559057A (zh) * | 2013-11-06 | 2014-02-05 | 广东小天才科技有限公司 | 一种嵌入式系统加载启动方法及装置 |
CN103559057B (zh) * | 2013-11-06 | 2016-10-12 | 广东小天才科技有限公司 | 一种嵌入式系统加载启动方法及装置 |
CN106156626A (zh) * | 2015-03-27 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种系统安全升级的方法和装置 |
CN105279046A (zh) * | 2015-11-04 | 2016-01-27 | 研华科技(中国)有限公司 | 一种提高嵌入式系统可靠性的方法 |
CN106775610A (zh) * | 2016-03-22 | 2017-05-31 | 新华三技术有限公司 | 一种电子设备启动方法及一种电子设备 |
CN106775610B (zh) * | 2016-03-22 | 2021-11-12 | 新华三技术有限公司 | 一种电子设备启动方法及一种电子设备 |
CN108762828A (zh) * | 2018-04-24 | 2018-11-06 | 桂林长海发展有限责任公司 | 一种dsp多核阵列二级启动方法和装置 |
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 | 苏州浪潮智能科技有限公司 | 系统的启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102662715B (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662715A (zh) | 一种嵌入式操作系统启动方法 | |
CN104166561B (zh) | 电子设备系统启动方法和电子设备 | |
CN102722394B (zh) | 一种嵌入式设备的启动升级方法 | |
CN102945176B (zh) | 终端设备开机、升级方法和设备 | |
CN103970557B (zh) | 存储设备启动系统的方法及存储设备 | |
CN105893090A (zh) | 一种嵌入式系统bootrom和应用程序升级方法 | |
US9218891B2 (en) | Data storage device and flash memory control method | |
CN101826027A (zh) | 一种嵌入式系统及其升级方法 | |
CN106462422B (zh) | 用于多系统终端的系统升级方法、升级装置和终端 | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN105373728A (zh) | 广告提示系统及方法 | |
CN104077167A (zh) | 基于nand flash的启动加载方法和装置 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
CN105278974A (zh) | 一种芯片启动方法及装置 | |
CN106325911A (zh) | 一种实现bootrom升级的方法及装置 | |
CN109766140A (zh) | 一种机顶盒启动异常的定位方法及装置 | |
CN102664990B (zh) | 一种Android手机动态壁纸安装显示方法 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
US20140215266A1 (en) | Data recovery system and storage medium with recovery function and data recovery method | |
CN102799494A (zh) | 一种校验内存中应用程序的方法和装置 | |
CN102799496A (zh) | 一种与非型闪存操作系统内核和文件系统校验方法及装置 | |
CN117524278A (zh) | 动态随机存储器兼容方法、装置和设备 | |
CN114327574A (zh) | 一种差分升级方法、电子设备及存储介质 | |
US8874981B2 (en) | Method of creating target storage layout table referenced for partitioning storage space of storage device and related electronic device and machine-readable medium | |
CN115951920A (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 |