一种嵌入式操作系统启动的方法及装置制造方法及图纸

技术编号:14234310 阅读:68 留言:0更新日期:2016-12-21 03:06
本发明专利技术公开了一种嵌入式操作系统启动的方法及装置,采用双Uboot功能,在Flash的第0个块中设置微Uboot,微Uboot具有能够引导嵌入式Linux操作系统所需的最小驱动代码,将微Uboot未存储的其他驱动代码存储到设置的第二Uboot中,当嵌入式设备启动时,先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。由于微Uboot存储在不会损坏的Flash的第0个块中,且该微Uboot最小驱动嵌入式Linux操作系统时具备Flash的坏块处理机制,可以解决Flash的坏块问题,从而使得在嵌入式设备中的Flash存在坏块时,保证嵌入式Linux操作系统成功启动。

Method and device for starting embedded operating system

The invention discloses a method and a device for starting an embedded operating system, using the double Uboot function, set up micro Uboot in zeroth Flash block, micro Uboot can guide minimum driver code embedded Linux operating system is required, the micro Uboot does not store other driver code to set the storage second Uboot. When the embedded equipment startup, using micro Uboot minimum driver embedded Linux operating system, and then call the second Uboot boot boot completely embedded Linux operating system. Because the micro Uboot is stored in Flash will not damage the zeroth block, bad block management mechanism and the minimum driving micro Uboot embedded Linux operating system with Flash, Flash can solve the problem of bad blocks, so that in the embedded equipment Flash bad block, ensure the embedded Linux operating system started successfully.

【技术实现步骤摘要】

本专利技术涉及嵌入式设备运行
,特别涉及一种嵌入式操作系统启动的方法及装置
技术介绍
嵌入式设备广泛被应用在诸如移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品及航空航天等领域中,作为嵌入式设备的操作系统,嵌入式Linux操作系统被开发出来,嵌入式Linux操作系统是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式设备上运行的一种操作系统。嵌入式设备承载嵌入式Linux操作系统的硬件为存储器,一般将嵌入式Linux操作系统固化在存储器中。运行嵌入式Linux操作系统由嵌入式设备中的嵌入式微处理器、存储器、通用设备接口以及输入/输出(I/O)接口配合完成,在此基础上在嵌入式设备上添加电源电路、时钟电路和存储器电路,就构成了嵌入式设备的核心控制模块,应用程序也可以固化在存储器中。在嵌入式Linux操作系统中分为三个部分,通用系统引导文件(Uboot,Universal Boot Loader)、内核和文件系统。其中,Uboot支持嵌入式Linux操作系统的引导,包括初始化嵌入式设备的硬件及启动内核等,一般来说,一个嵌入式Linux操作系统一般只有一个Uboot。在嵌入式设备中的嵌入式Linux操作系统开发完成之后,在进行批量生产时,需要使用烧写器对嵌入式设备的非易失存储器(Flash)进行批量烧写,将嵌入式Linux操作系统烧写到Flash中,随后再将Flash焊接到嵌入式设备的印刷电路板(PCB)上。图1为现有技术提供的嵌入式设备启动嵌入式Linux操作系统的方法流程图,如图所示,包括:第一步骤,嵌入式设备上电;第二步骤,Uboot启动;第三步骤,Linux内核启动;第四步骤,Linux文件系统载入;第五步骤,Linux应用程序启动。其中,图2为现有技术提供的Uboot启动方法流程图,如图所示,包括:步骤201、嵌入式设备的主芯片启动,撤销复位;步骤202、嵌入式设备的主芯片转入Uboot Stage1汇编入口点;在本步骤中,Uboot一般分为两个部分,一个是Uboot Stage1及UbootStage2,Uboot Stage1采用汇编语言撰写,通常放到start.s文件中;步骤203、嵌入式设备的主芯片初始化嵌入式微处理器相关的寄存器和双倍速率同步动态随机存储器(DDR)控制器;步骤204、嵌入式设备的主芯片从FLASH中复制Uboot剩余代码到随机存取存储器(RAM)中;在本步骤中,Uboot剩余代码为Uboot Stage2;步骤205、嵌入式设备的主芯片设置堆栈和初始化数据段;步骤206、嵌入式设备的主芯片转入Uboot Stage2C语言入口点;步骤207、嵌入式设备的主芯片初始化嵌入式设备的内存、Flash及网络等硬件设备;步骤208、嵌入式设备的主芯片从Flash复制内核和文件系统到RAM中;步骤209、嵌入式设备的主芯片启动内核。在图2所述的过程中,步骤204是采用简单的汇编语言进行拷贝操作,不会对Flash中的坏块进行识别或处理,如果预先Uboot所在的Flash块是坏块、或在设备运行过程中变成了坏块,则会导致Uboot中的代码错误或不连续,造成Uboot无法启动,整个嵌入式设备的嵌入式Linux操作系统就无法正常工作,此时只能将Flash从嵌入式设备取出后,重新采用烧写器烧写,维护极不方便。
技术实现思路
有鉴于此,本专利技术实施例提供一种嵌入式操作系统启动的方法,该方法能够在嵌入式设备中的Flash存在坏块时,保证嵌入式Linux操作系统成功启动。本专利技术实施例还提供一种嵌入式操作系统启动的装置,该装置能够在嵌入式设备中的Flash存在坏块时,保证嵌入式Linux操作系统成功启动。根据上述目的,本专利技术是这样实现的:一种嵌入式操作系统启动的方法,在嵌入式设备的Flash的第0个块中设置微Uboot,微Uboot具有能够引导嵌入式Linux操作系统所需的最小驱动代码;将微Uboot未存储的其他驱动代码存储到设置的第二Uboot中;当嵌入式设备启动时,先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。所述微Uboot容量小于等于Flash第0个块的容量。所述微Uboot中还具备Flash的坏块处理机制,所述第二Uboot存储在Flash中,当调用第二Uboot时,该方法还包括:采用Flash的坏块处理机制确定存储第二Uboot的Flash区域是否存在坏块,如果否,则直接从存储第二Uboot的Flash区域调用第二Uboot,如果是,则采用设置的升级程序修复第二Uboot后,再调用第二Uboot。所述微Uboot经过裁剪得到,包括:修改Uboot中的文件,去掉能够引导嵌入式Linux操作系统最小所需的驱动代码不用的配置;修改Uboot的环境变量代码,不再将环境变量存在Uboot的单独区域中。该方法还包括:将微Uboot针对特定板卡及特定需求的代码进行压缩处理,或/和将Uboot采用压缩方式处理。所述Flash为Nandflash。一种嵌入式操作系统启动的装置,包括:微Uboot存储单元、第二Uboot存储单元及主芯片,其中,微Uboot存储单元,位于嵌入式设备的Flash的第0块,具有能够引导嵌入式Linux操作系统所需的最小驱动代码;第二Uboot存储单元为微Uboot未存储的其他驱动代码;主芯片,用于先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。所述微Uboot容量小于等于Flash第0个块的容量。所述微Uboot还具有坏块处理机制,主芯片,还用于在调用第二Uboot引导嵌入式Linux操作系统的完全启动之前,还包括:采用Flash的坏块处理机制确定存储第二Uboot的Flash区域是否存在坏块,如果否,则直接从存储第二Uboot的Flash区域调用第二Uboot如果是,采用设置的升级程序修复第二Uboot后,再调用第二Uboot由上述方案可以看出,本专利技术提供了一种嵌入式操作系统启动的方法,该方法采用双Uboot功能,就是在Flash的第0个块中设置微Uboot,微Uboot具有能够引导嵌入式Linux操作系统所需的最小驱动代码,容量小于等于Flash第0个块的容量,将微Uboot未存储的其他驱动代码存储到设置的第二Uboot中,当嵌入式设备启动时,先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。由于微Uboot存储在不会损坏的Flash的第0个块中,且该微Uboot最小驱动嵌入式Linux操作系统时具备Flash的坏块处理机制,就可以解决Flash的坏块问题,从而使得在嵌入式设备中的Flash存在坏块时,保证嵌入式Linux操作系统成功启动。附图说明图1为现有技术提供的嵌入式设备启动嵌入式Linux操作系统的方法流程图;图2为现有技术提供的Uboot启动方法流程图;图3为本专利技术实施例提供的嵌入式操作系统启动的方法流程图;图4为专利技术实施例提供的嵌入式操作系统的方法实例一流程图;图5为本专利技术实施例提供的嵌入式操作系统的方法实例二流程图;图6本文档来自技高网
...
一种嵌入式操作系统启动的方法及装置

【技术保护点】
一种嵌入式操作系统启动的方法,其特征在于,包括:在嵌入式设备的Flash的第0个块中设置微Uboot,微Uboot具有能够引导嵌入式Linux操作系统所需的最小驱动代码;将微Uboot未存储的其他驱动代码存储到设置的第二Uboot中;当嵌入式设备启动时,先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。

【技术特征摘要】
1.一种嵌入式操作系统启动的方法,其特征在于,包括:在嵌入式设备的Flash的第0个块中设置微Uboot,微Uboot具有能够引导嵌入式Linux操作系统所需的最小驱动代码;将微Uboot未存储的其他驱动代码存储到设置的第二Uboot中;当嵌入式设备启动时,先采用微Uboot进行最小驱动嵌入式Linux操作系统后,再调用第二Uboot引导嵌入式Linux操作系统的完全启动。2.如权利要求1所述的方法,其特征在于,所述微Uboot容量小于等于Flash第0个块的容量。3.如权利要求1或2所述的方法,其特征在于,所述微Uboot中还具备Flash的坏块处理机制,所述第二Uboot存储在Flash中,当调用第二Uboot时,该方法还包括:采用Flash的坏块处理机制确定存储第二Uboot的Flash区域是否存在坏块,如果否,则直接从存储第二Uboot的Flash区域调用第二Uboot,如果是,则采用设置的升级程序修复第二Uboot后,再调用第二Uboot。4.如权利要求1或2所述的方法,其特征在于,所述微Uboot经过裁剪得到,包括:修改Uboot中的文件,去掉能够引导嵌入式Linux操作系统最小所需的驱动代码不用的配置;修改Uboot的环境变量代码,不再将环境变量存在Uboot的单独区域中。5....

【专利技术属性】
技术研发人员:覃才俊
申请(专利权)人:北京蛙视通信技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1