【技术领域】
本发明涉及计算机系统及其启动方法,特别是一种基于nandflash的实时嵌入式系统及其启动方法。
背景技术:
在当前大数据时代,工业传动领域的主流嵌入式设备平台必须基于海量数据存储空间进行考虑,提前布局平台性能用以支撑运行数据的高速性和庞大性。
现有技术中所述平台的硬件架构采用nand作为系统存储器件,软件架构的应用对象为工业传动领域的控制变流器平台,为保证控制变流器平台的数据交互实时性,采用vxworks硬实时嵌入式操作系统。vxworks操作系统是美国windriver公司于1983年设计开发的一种嵌入式实时操作系统(rtos),是嵌入式开发环境的关键组成部分。请参阅图1,图1为现有技术中vxworks系统的正常启动流程图,其包括以下步骤:
(1)系统上电,omap加载rbl(只读存储器启动加载程序,rombootloader)至片上ram(随机存取存储器,randomaccessmemory)中并运行;
(2)rbl将ubl(用户引导加载程序,userbootloader)从本地存储器件nand中解析并加载到片上ram中,然后跳转pc,将cpu控制权移交给ubl;
(3)ubl运行后,采用校验算法将uboot(通用引导加载程序,theuniversalbootloader)从nand中校验解析后,搬移到片外ddr中,然后再一次将cpu处理器控制权移交给uboot;
(4)uboot在nand的部分空间上搭建yaffs文件系统,采用硬件on-dieecc校验算法将内核以文件的形式存储,uboot运行后,会自动运行预设的脚本,将vxworks从文件系统中解析搬移到ddr中,再一次将cpu处理器控制权移交给vxworks;
(5)内核启动完成后,重新挂载yaffs文件系统,再将相应的系统应用程序加载运行。
由于系统启动所需的核心系统程序都存储于nand中,存储在其内的相应二进制目标码不能出错,否则就会导致系统启动失败。nand的存储电路机制,决定在写入数据之前必须先擦除成全f状态,也就是对单元存储cell电路进行充电。但是经过长期应用实践并研究nand的现有制造工艺,发现nand存在一个固有缺陷:单个存储cell偶尔会发生1变成0,也就是cell电容会缓慢放电,导致位反转(bitflop),造成数据的错误和丢失。于是,设备经常会随着时间的推移而出现故障,系统中的程序因位反转被破坏,尤其是系统启动程序的损坏,直接造成设备启动失败,且无法维护。
一般地,设备平台系统由操作系统和应用程序组成,若应用程序被破坏,只需要简单通过对应以太网等类似的维护端口进行维护,操作简单便捷;若操作系统一旦损坏,则只能通过特定仿真器去维护,而控制变流器设备现场运行环境特殊,环境封闭、少人化甚至无人化,通过特定仿真器去维护是风险大、不可控和致命的。因此,确保操作系统的完整性和可靠性就成为了最重要和最根本的需求。
因此,本发明提供了一种基于nandflash的实时嵌入式系统及其启动方法。
技术实现要素:
目前现有技术的nand作为系统存储器件存在固有缺陷,所述控制变流器设备现场运行环境特殊,操作系统通过特定仿真器去维护的操作难度大且危险系数高,工业传动领域设备对所述操作系统的完整性和可靠性要求高,因此本发明提供一种解决以上问题的基于nandflash的实时嵌入式系统及其启动方法。
一种基于nandflash的实时嵌入式系统,包括nandflash存储器、嵌入式处理器omap、片外ddr和系统软件构架,所述系统软件构架包括rbl、m级ubl、n级uboot和s级kernel,所述m、n和s范围为2-32之间。
优选的,当ubl占用1个block、uboot占用2个block且kernel内核占用15个block时,所述系统软件构架包括rbl、4级ubl、6级uboot和5级kernel。
一种基于nandflash的实时嵌入式系统的启动方法,包括前述的实时嵌入式系统,所述启动方法包括如下步骤:
(1)预先设定ubl、uboot和kernel实际使用的级数分别为m、n和s,所述m、n和s范围为2-32之间;
(2)新增集成一个补丁至ubl,所述补丁将rbl最大冗余启动ubl级数扩充到32级,集成相应冗余补丁后,rbl启动机制自动替换为32级冗余并启动ubl;
(3)主控处理器进行电复位,读到有效的冗余补丁后,omap上的rbl启动机制自动替换为32级冗余并启动ubl,其中读取第1级ubl若失败,rbl会读取第二级ubl,直至m级ubl均无效;
(4)加载ubl至片上ram后,通过数据校验算法尝试读取有效uboot,直至n级uboot均无效;
(5)将所述uboot加载至片外ddr运行,挂载文件系统并读取对应文件夹下的内核镜像,加载有效kernel至片外ddr中运行,直至s级kernel无效,最终加载运行应用程序。
优选的,所述rbl采用1bit校验算法。
优选的,所述ubl采用omap芯片自带的硬件4bit校验算法。
优选的,所述uboot采用nand自带硬件on-dieecc校验。
优选的,步骤(4)中ubl启动加载uboot的步骤包括:
1)m级ubl目标码存储在nand中前m个bolck中,芯片上电复位后,rbl将ubl拷贝加载到片上ram中运行;
2)ubl程序执行点灯程序,用以标识ubl程序是否已经开始执行;
3)进入真正的local_boot函数主体,获取当前soc的启动模式,完成板级必要外设的初始化init,进而在nand设备中查询并拷贝有效的uboot程序至ddr中运行。
与现有技术相比,本发明提供的基于nandflash的实时嵌入式系统及其启动方法对关键系统核心组成部分进行多级冗余备份,在不影响系统本身性能要求前提下,减轻甚至消除nand带来的位反转效应,用少量的存储空间换取大幅度的系统可靠性提升,能有效地提高操作系统的完整性和可靠性,进而提高设备平台的可靠性。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1为现有技术中vxworks系统的正常启动流程图;
图2为本发明提供的基于nandflash的实时嵌入式系统的启动流程图;
图3为图2所示的ubl启动加载uboot的流程图;
图4为本发明的软件架构的故障树分析模型;
图5为本发明的软件架构在冗余级数m=n=s=32时的仿真结果;
图6为本发明的软件架构在冗余级数n=s=32,m为单独变量时的仿真结果;
图7为本发明的软件架构在冗余级数m=4,s=32,n为单独变量时的仿真结果;
图8为本发明的软件架构在冗余级数m=4,n=6,s为单独变量时的仿真结果;
图9为本发明的软件架构在冗余级数m=4,n=6,s=5时和现有技术对比的仿真结果。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供了一种基于nandflash的实时嵌入式系统,包括nandflash存储器、嵌入式处理器omap、片外ddr和系统软件构架,所述系统软件构架包括rbl、2-32级ubl、2-32级uboot和2-32级kernel。更佳的,当ubl占用1个block、uboot占用2个block且kernel内核占用15个block时,所述系统软件构架包括4级ubl、6级uboot和5级kernel。
请结合参阅图2和图3,图2为本发明提供的基于nandflash的实时嵌入式系统的启动流程图,图3为ubl启动加载uboot的流程图。本发明提供一种基于nandflash的实时嵌入式系统的启动方法,包括如下步骤:
(1)预先设定ubl、uboot和kernel的级数分别为m、n和s。m、n和s为2-32中的数值。在本实施例中,如图2,所述m、n和s设定为32,即所述系统软件构架包括rbl、32级ubl、32级uboot和32级kernel。
(2)新增集成一个补丁至ubl,集成相应冗余补丁后,rbl启动机制自动替换为32级冗余并启动ubl。需要说明的是,所述rbl采用1bit校验算法,所述ubl采用omap芯片自带的硬件4bit校验算法。
(3)主控处理器进行电复位,读到有效的冗余补丁后,omap上的rbl启动机制自动替换为32级冗余并启动ubl。其中读取第1级ubl若失败,rbl会读取第二级ubl,直至第32级ubl均无效。
(4)加载ubl至片上ram后,并通过数据校验算法尝试读取有效uboot,直至32级uboot均无效。其中,所述ubl启动加载uboot的步骤包括:
1)32级ubl目标码存储在nand中前32个bolck中,芯片上电复位后,rbl将ubl拷贝加载到片上ram中运行。其中,1级ubl占用1个block。
2)ubl程序执行点灯程序,用以标识ubl程序是否已经开始执行;
3)进入真正的local_boot函数主体,获取当前soc的启动模式,完成板级必要外设的初始化init,进而在nand设备中查询并拷贝有效的uboot程序至ddr中运行。
(5)将所述uboot加载至片外ddr运行,挂载文件系统并读取对应文件夹下的内核镜像。所述uboot设置为32级冗余启动kernel,uboot采用nand自带硬件on-dieecc校验,加载有效kernel至片外ddr中运行,直至32级kernel无效,最终加载运行应用程序。
请结合参阅图4-图9,图4为本发明的软件架构的故障树分析模型。在该系统方案中,系统启动失败事件的主要相关因素有三个:a表示ubl启动失败,b表示uboot启动失败,c表示vxworks内核启动失败。现假定三者冗余级数分别为m,n和s,所述m、n和s范围为2-32之间,通过研究分析可知能够导致系统启动失败的有以下几种情况:
(1)ubl、uboot以及vxworks内核之间为或门关系,即只要a、b、c三者中只要有一个事件发生,系统就会发生故障;
(2)a表示的ubl启动环节中,只要在m级ubl中有1级是完整正常的情况下,a环节就能正常,只有m级全部损坏,才会引发系统故障;
(3)同理b所表示的uboot启动环节中,只要在n级uboot中有1级是完整正常的情况下,b环节就能正常,只有n级全部损坏,才会发生系统故障;
(4)最后c所表示的内核启动环节中,s份镜像内核文件只要有一份是正常的,系统就能够正常启动。
假设各个模块的失效事件是相互独立事件,令nand每个block中因位反转导致数据出错的概率为pb,已知ubl只占1个block,而uboot占2个block,kernel内核占15个block,根据上述分析,可以得出该系统的故障树模型fta。
1级ubl出错的概率为:pb,则ubl启动失败的概率为:
pa=(pb)m(1)
1级uboot出错的概率为:1-(1-pb)2,则uboot启动失败的概率为:
pb=(1-(1-pb)2)n(2)
1级内核出错的概率为:1-(1-pb)15,则内核启动失败的概率为:
pc=(1-(1-pb)15)s(3)
综上分析,新老的系统架构启动失败的概率为:
pold=1–(1-pb)*(1-pb)2*(1-pb)15=1–(1-pb)18(4)
pnew=1-(1-pa)*(1–pb)*(1–pc)(5)
通过对本文提出的冗余软件架构进行建模并做仿真实验,研究分析可得以下结论:
请参阅图5,随着时间的推移,当block的失效概率在正常的范围之内(pb不超过1%)慢慢增加时,新型软件架构在冗余级数m=n=s=32时,能够确保系统可靠性。
请参阅图6,在n=s=32时,将m作为单独变量进行考虑,从仿真结果可以看出m在m=4时,系统的失效概率趋于稳定,达到目标要求。
请参阅图7,在冗余级数m=4,s=32时,将n作为单独变量进行考虑,从仿真结果可以看出n在n=6时,系统的失效概率趋于稳定,达到目标要求。
请参阅图8,在m=4,n=6时,将s作为变量,从仿真结果可以看出kernel冗余级数s在s=5时,系统的失效概率趋于稳定,达到目标要求。
请参阅图9,在m=4,n=6,s=5时,也就是所述系统软件架构可采用4级ubl、6级uboot及5级kernel,在确保系统可靠性的前提下,能够最大化系统存储空间利用率。通过对比,当block失效概率在正常范围内时(pb不超过1%),现有技术的软件架构系统的系统失效率远远超过所述软件架构系统。可见本发明提出的所述架构系统是可靠的,对嵌入式设备的可靠性的提升是有效的
相关实验仿真数据的统计结果如表1
表1仿真实验统计结果表
从表1中可以得出,当nand的pb越小时(位反转概率处于正常失效范围,不超过1%),采用本发明的所述系统软件架构的嵌入式设备稳定性越高,相较于现有技术的系统软件框架优越性也越明显。若嵌入式设备使用nand作为系统存储器件,并采用本发明提出的多级冗余系统软件架构后,在正常的设备周期内,即正常的位反转概率pb所对应的正常时间范围,系统的可靠性依旧无法保证,可以初步得出存储器件不合格的结论,可进行对应的芯片失效分析。
与现有技术相比,本发明提供的基于nandflash的实时嵌入式系统及其启动方法通过对关键系统核心组成部分进行多级冗余备份,在不影响系统本身性能要求前提下,减轻甚至消除nand带来的位反转效应,用少量的存储空间换取大幅度的系统可靠性提升,能有效地提高操作系统的完整性和可靠性,进而提高设备平台的可靠性。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
PHP网站源码宁波网页设计张北百度seo报价郑州网站关键词优化报价晋中网站搭建推荐杭州设计公司网站报价温州优秀网站设计哪家好北海网站制作设计哪家好石岩seo网站推广推荐永湖关键词排名包年推广公司宝鸡网页设计哪家好醴陵网站排名优化价格玉树网络营销价格凉山外贸网站制作价格铜陵高端网站设计昌都网站关键词优化价格怀化设计公司网站多少钱衢州至尊标王宿迁seo排名推荐吴忠营销型网站建设推荐呼和浩特网站关键词优化中山seo优化推荐宝安外贸网站建设报价商丘网站推广工具价格哈尔滨企业网站建设价格商洛关键词排名报价永湖SEO按效果付费多少钱成都网站优化多少钱西安网站建设设计价格遂宁百度竞价包年推广多少钱呼和浩特百度竞价报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运