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

文档序号:6368511阅读:171来源:国知局
专利名称:一种嵌入式操作系统启动方法
技术领域
本发明涉及智能电子产品软件系统,具体涉及一种嵌入式操作系统启动方法。
背景技术
嵌入式操作系统在电子产品上电或复位后,在操作系统(0S)内核运行之前,须经 过引导加载启动过程。系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安 排的地址上取指令。比如,基于型号为ARMHDMI core的CPU在上电或复位时通常都从地 址0x00000000取它的第一条指令。而基于CPU构建的嵌入式系统通常都有某种类型的固 态存储设备,比如只读存储器(ROM)、电可擦除程序存储器(EEPR0M)或闪存(FLASH)等, 被映射到这个预先安排的地址上。因此在系统上电后,CPU将首先执行引导加载启动过程, 使用固态存储设备中嵌入式引导程序(BOOT)数据和OS数据。但是固态存储设备,如FLASH 随着不断读写次数的增多,会产生一定数量的坏块,假如BOOT或0S恰好存储在这一块上, 则机器会产生掉B00T/0S数据、无法开机,停留在开机画面,机器运行速度慢等问题。而目 前业内防止掉B00T/0S数据的技术为尽量减少写flash的次数,使用质量稍好的FLASH,这 样不可避免地造成以下技术问题1、整机成本增加;2、还存在掉B00T/0S数据,导致机器无法开机,停留在开机画面,机器运行速度慢 等机器的比率仍然很高;3 :将终端用户操作机器步骤复杂化。

发明内容
本发明需要解决的技术问题是,如何提供一种嵌入式操作系统启动方法,能克服 或大大降低无法开机、停留在开机画面和机器运行速度慢等问题,进一步没有额外生产成 本。本发明的上述技术问题这样解决构建一种嵌入式操作系统启动方法,利用复数 份BOOT数据和0S数据以及对应数据校验码,包括以下具体步骤101)启动,进入系统引导加载;102)检验并判断第一 BOOT数据是否正确?是进入下一步,否则将校验正确的第 二 BOOT数据覆盖第一 BOOT数据进入步骤105);105)加载校验正确的BOOT数据;106)检验并判断第一 0S数据是否正确?是进入下一步,否则将校验正确的第二 0S数据覆盖第一 0S数据进入步骤109);109)加载校验正确的0S数据;110)引导结束,正常开机。按照本发明提供的启动方法,该启动方法还包括以下步骤103)检验并判断第二 BOOT数据是否正确?否进入下一步,是则进入步骤10);〔0016〕 104〉将第一 8001数据覆盖第二 8001数据;
〔0017〕 该启动方法还包括以下步骤
〔0018〕 107〉检验并判断第二 03数据是否正确?否进入下一步,是则进入步骤110 ;
〔0019〕 108〉将第一 03数据覆盖第二 03数据。
〔0020〕 步骤可以每次启动都进行,也可以选择适当频率或时机进 行,在极端情况也可以不执行。
〔0021〕 按照本发明提供的启动方法,所述8001数据和03数据包括但但不限制于都是二 份,优选都是二份。
〔0022〕 按照本发明提供的启动方法,该启动方法包括但不限制于以下优选的存储方式 在第一次8001升级时将固化存储器进行分区,并将复数份8001数据保存在其中一个分区 内,而将复数份03数据保存在另一个分区内。也可以选择二块固化存储器但成本高。
〔0023〕 按照本发明提供的启动方法,该启动方法还包括在所述保存过程中包括校验判断 和将校验判断错误的保存数据重新写入。
〔0024〕 按照本发明提供的启动方法,该启动方法还包括在第~次8001升级时将复数份 8001数据和复数份03数据覆盖保存至固化存储器中,~是大于1的自然数。
〔0025〕 按照本发明提供的启动方法,用于保存复数份8001数据和03数据的固化存储器 是扎八兕、诎?肋1或I嫩冊。
〔0026〕 按照本发明提供的启动方法,该启动方法还包括
〔0027〕 步骤102〉内将校验正确的第二 8001数据覆盖第一 8001数据具体包括检验并判 断第二 8001数据是否正确?是将校验正确的第二 8001数据覆盖第一 8001数据,否则中断 启动或尝试选择加载一个8001数据进入步骤106〉;
〔0028〕 步骤106〉内将校验正确的第二 03数据覆盖第一 03数据具体包括包括检验并判 断第二 03数据是否正确?是将校验正确的第二 03数据覆盖第一 03数据,否则中断启动或 尝试选择加载一个03数据进入步骤110〉。
〔0029〕 按照本发明提供的启动方法,该启动方法在所述中断启动后弹出对话框让用户选 择。
〔0030〕 按照本发明提供的启动方法,该嵌入式操作系统包括但不限制于是[爪①^/安卓 (八腿隱)丨视窗8 (跑如界8 8〉71111(10^8 02操作系统。
〔0031〕 按照本发明提供的启动方法,所述启动包括机器上电和复位。
〔0032〕 本发明提供的嵌入式操作系统启动方法,突破传统思路,行内率先采用8001/03 双备份技术进行引导,较现有技术具有以下优势
〔0033〕 1、实验表明掉8001或03数据导致机器无法开机的机器不良率为12. 5^,采用此 技术之后,不良率将低到1.5^;
〔0034〕 2、不妨碍用户使用;
〔0035〕 3、产品性能优越、成本低廉。


〔0036〕 下面结合附图和具体实施例进一步对本发明进行详细说明
〔0037〕 图1是本发明优选实施例的开机引导软件程序流程示意图。
具体实施例方式首先,说明本发明核心和基础(一 )数据存储在BOOT第一次升级时,会在flash中划分出几个区来,其中一个区用来存放BOOT 数据,存放BOOT的区分成2部分,各存放BOOT数据,BOOT备份数据;另一个区来存放0S数 据,这个区也会被初始化成为2部分,分别存放0S数据,和0S备份数据。(二)BOOT 双备份储存BOOT分区的第一部分用来存放BOOT数据,(我们后面对这个部分统称为BOOT A区)第二个部分,用来存放备份的BOOT数据(我们后面对这个部分统称为BOOT B区)。 BOOT在划分完区之后,会将BOOT数据写入FLASH,并记录下校验值。在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,和升级时候的校验 值做对比,如果值相等,那么接着就对BOOT B区进行校验,如果值相等,那么程序不做任何 操作,直接进入0S双备份步骤。在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,如果和升级时候的 校验值做对比,如果值不相等,则会将校验值正确的BOOT B区的数据覆盖BOOT A区的数 据,之后直接进入0S双备份步骤。在升级结束后的每次开机时,BOOT会先对BOOT A区进行校验,和升级时候的校验 值做对比,如果值相等,那么接着就对BOOT B区进行校验,如果校验值不相等,那么BOOT会 将BOOT A区的数据覆盖BOOT B区的数据,之后直接进入0S双备份步骤。(三)0S双备份第一部分用来存放0S数据,(我们后面对这个部分统称为A区)第二个部分,用 来存放备份的0S数据(我们后面对这个部分统称为B区)。BOOT在划分完区之后,会将0S 数据写入FLASH,并记录下校验值。在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做 对比,如果值相等,那么接着就对B区进行校验,如果值相等,那么程序不做任何操作,直接 开机。在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做 对比,如果值不相等,则会将校验值正确的B区的数据覆盖A区的数据,之后引导开机。在升级结束后的每次开机时,BOOT会先对A区进行校验,和升级时候的校验值做 对比,如果值相等,那么接着就对B区进行校验,如果校验值不相等,那么BOOT会将A区的 数据覆盖B区的数据,之后引导开机。第二,结合本发明具体实施例进行详细说明如图1所示,本发明具体实施例电子产品使用双备份的BOOT和0S数据,其开机引 导软件程序包括以下具体步骤301)BOOT 启动;302)检验并判断B00TA区数据是否正确?是进入下一步,否则进入步骤305);303)检验并判断BOOT B区数据是否正确?否进入下一步,是则进入步骤306);304)将BOOT A区数据覆盖BOOT B区数据,进入步骤306);
305)将校验正确的BOOT B区数据覆盖B00TA区数据;306)加载校验正确的BOOT数据,检验并判断OS A区数据是否正确?是进入下一 步,否则进入步骤310);307)检验并判断OS B区数据是否正确?否进入下一步,是则进入步骤309);308)将OS A区数据覆盖OS B区数据,进入步骤310);309)将校验正确的OS B区数据覆盖OS A区数据;310)加载校验正确的OS数据,引导结束,正常开机。当然,以上所述仅是本发明的较佳实施例,故凡依本发明专利申请范围所述的构 造、特征及流程所做的等效变化或修饰,均包括于本发明专利申请范围为内。
权利要求
1.ー种嵌入式操作系统启动方法,其特征在于,利用复数份BOOT数据和OS数据以及对应数据校验码,包括以下具体步骤 101)启动,进入系统引导加载; 102)检验并判断第一BOOT数据是否正确?是进入下一歩,否则将校验正确的第二BOOT数据覆盖第一 BOOT数据进入步骤105); 105)加载校验正确的BOOT数据; 106)检验并判断第一OS数据是否正确?是进入下一歩,否则将校验正确的第二 OS数据覆盖第一 OS数据进入步骤109); 109)加载校验正确的OS数据; 110)引导结束,正常开机。
2.根据权利要求I所述启动方法,其特征在干,该启动方法还包括以下步骤 103)检验并判断第二BOOT数据是否正确?否进入下一歩,是则进入步骤10); 104)将第一BOOT数据覆盖第二 BOOT数据; 该启动方法还包括以下步骤 107)检验并判断第二OS数据是否正确?否进入下一歩,是则进入步骤110 ; 108)将第一OS数据覆盖第二 OS数据。
3.根据权利要求I或2所述启动方法,其特征在干,所述BOOT数据和OS数据都是ニ份。
4.根据权利要求I或2所述启动方法,其特征在于,该启动方法还包括在第一次BOOT升级时将固化存储器进行分区,并将复数份BOOT数据保存在其中ー个分区内,而将复数份OS数据保存在另ー个分区内。
5.根据权利要求4所述启动方法,其特征在干,该启动方法还包括在所述保存过程中包括校验判断和将校验判断错误的保存数据重新写入。
6.根据权利要求I或2所述启动方法,其特征在于,该启动方法还包括在第N次BOOT升级时将复数份BOOT数据和复数份OS数据覆盖保存至固化存储器中,N是大于I的自然数。
7.根据权利要求I或2所述启动方法,其特征在于,用于保存复数份BOOT数据和OS数据的固化存储器是FLASH、EEPROM或INAND。
8.根据权利要求I或2所述启动方法,其特征在于,该启动方法还包括 步骤102)内将校验正确的第二 BOOT数据覆盖第一 BOOT数据具体包括检验并判断第ニ BOOT数据是否正确?是将校验正确的第二 BOOT数据覆盖第一 BOOT数据,否则中断启动或尝试选择加载ー个BOOT数据进入步骤106); 步骤106)内将校验正确的第二 OS数据覆盖第一 OS数据具体包括包括检验并判断第ニ OS数据是否正确?是将校验正确的第二 OS数据覆盖第一 OS数据,否则中断启动或尝试选择加载ー个OS数据进入步骤110)。
9.根据权利要求8所述启动方法,其特征在干,该启动方法在所述中断启动后弹出对话框让用户选择。
10.根据权利要求I或2所述启动方法,其特征在干,该嵌入式操作系统是LINUX/ANDROID/CE/ffindows 8 操作系统。
全文摘要
本发明涉及一种嵌入式操作系统启动方法,包括101)BOOT启动;102)检验并判断第一BOOT数据是否正确?是进入下一步,否则将校验正确的第二BOOT数据覆盖第一BOOT数据进入步骤105);105)加载校验正确的BOOT数据;106)检验并判断第一OS数据是否正确、是进入下一步,否则将校验正确的第二OS数据覆盖第一OS数据进入步骤109);109)加载校验正确的OS数据;110)引导结束,正常开机。这种方法能克服或大大降低无法开机、停留在开机画面和机器运行速度慢等问题且没有额外生产成本。
文档编号G06F11/14GK102662715SQ20121012014
公开日2012年9月12日 申请日期2012年4月23日 优先权日2012年4月23日
发明者王尤巧 申请人:深圳市掌讯通讯设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1