一种嵌入式操作系统中bootrom的自动修复装置和控制方法

文档序号:6331588阅读:214来源:国知局
专利名称:一种嵌入式操作系统中bootrom的自动修复装置和控制方法
技术领域
本发明涉及嵌入式操作系统,尤其涉及对B00TR0M(启动映象)的自动修复。
背景技术
在通信设备等嵌入式系统中,广泛使用CPU加ASIC (专用集成芯片)来实现,其中 CPU通过烧录在FLASH(闪速存储器)中的B00TR0M进行硬件的初时化,然后引导系统软件。 系统上电后,CPU从默认的地址取指令执行,烧录在启动FLASH中的B00TR0M覆盖CPU的上 电后默认的起始地址。B00TR0M 一般不带文件系统,其内容是CPU可以直接执行的二进机器码,在设备 出厂前烧录。烧录B00TR0M的位置与存储系统软件的介质可能是同一介质,如烧录在同一 FLASH中;也可能是不同的介质,如启动软件烧录在FLASH芯片中,系统软件存储在另外的 FLASH芯片中,或者是可移动的CF卡、SD卡等介质中。在设备运行过程中,还可能会需要升级B00TR0M,以支持新特性,或解决软件 BUG(软件设计中的缺陷)。常见的方法是通过以太网端口或串口等从PC(个人电脑)中下 载到设备的内存中,再烧录到启动设备中。这里主要说明烧录B00TR0M的位置与存储系统软件的介质不同时的情形。由于某 些意外的原因,烧录B00TR0M的FLASH芯片中的内容可能损坏。例如人为因素较多地(如 在升级过程中设备掉电、重启等)损坏了 B00TR0M内容的完整性;以及设备运行中的干扰等 导致B00TR0M内容的单个存储位或几个存储位反转。B00TR0M如果损坏,整个设备将不能正常工作。为避免B00TR0M损坏造成的系统引 导失败,只有对启动设备重新烧录,才能使设备正常运行。目前业界多采用备份的方法来解 决,如中国专利文献CN101526910A中公开了一种B00TR0M的备份方法及装置,其通过一个 主用B00TR0M和多个备用B00TR0M实现系统的可靠引导。但其主用B00TR0M不具备自动修 复能力,一旦损坏,只能依靠人工被动的进行更换维护,一方面成本较高,另一方面降低了 系统的可靠性。

发明内容
本发明的嵌入式操作系统中B00TR0M的自动修复装置和控制方法,解决了 B00TR0M损坏时设备不能正常工作的技术问题,实现启动设备的自动修复,提高系统的可靠性。本发明所述的自动修复装置,包括含有B00TR0M的启动装置1、含有修复软件的存 储器2、CPU系统3、及可编程逻辑电路9。所述可编程逻辑电路9包括寄存器接口 4、时钟电 路5、计时逻辑电路6、片选控制逻辑电路7、及B00TR0M修复逻辑电路8。所述寄存器接口 4,包含以下标志位寄存器启动状态标志S_R0M、CPU启动状态指示S_CPU、片选选择CSO、计 时值清除TC、计时停止TS。
CPU系统通过总线接口 DATA与可编程逻辑电路9中寄存器接口 4、启动装置1、存 储器2相连。实现对启动装置1及存储器2的读、写操作;改写CPU启动状态指示S_CPU、 片选选择CS0、计时值清除TC、计时停止TS ;并读出寄存器启动状态标志S_R0M。其中寄存 器启动状态标志S_R0M用于标志设备从B00TR0M启动、或从修复软件启动;CPU启动状态指 示S_CPU用于标志CPU是否正常启动;片选选择CSO用于CPU使能启动装置1或存储器2 ; 计时值清除Tc、计时停止TS是在设备正常启动后由CPU写入的控制信号。时钟电路5产生的时钟信号CLK,经接入时钟逻辑电路6,在计时值超过预定时间 门限后产生超时信号T。时钟逻辑电路6的计时功能在CPU向寄存器接口 4写入相应的TC、 TS值时停止。B00TR0M修复逻辑电路8,通过片选控制逻辑电路7将CSO连接到片选A或B,分别 使能启动装置1及存储器2。片选A的条件是,缺省状态下的自动启动或CPU向寄存器写 入CSO ;且计时器未产生超时信号T。片选B的条件是,计时器产生超时信号T,且S_CPU显 示CPU未进入正常启动状态。修复逻辑电路8还输出CPU复位信号RST,向CPU发出复位脉 冲,强制CPU复位重启。输出RST信号的条件是,片选控制逻辑电路使能片选B。本发明所述的自动修复控制方法如下,在设备启动过程中,自动选择启动装置1,当B00TR0M在计时值超过预定时间门限 后不能完成启动操作时,B00TR0M修复逻辑电路8自动复位CPU系统,通过使能片选B运行 修复软件来启动设备。在CPU正常运行同时启动修复B00TR0M的功能。可编程逻辑电路9的寄存器接口 中给出启动状态标志S_R0M,CPU启动后读取该标志判断启动状态,如果从修复软件启动, 则启动自动修复功能。CPU通过控制寄存器CSO使能片选A,将保存在修复软件存储器2中 的B00TR0M数据复制到启动设备1中。本发明所有的功能都在可编程逻辑阵列中自动实现,不需要人为的任何干预操 作。采用本发明所述方法和装置,与现有技术相比,由于采取了对CPU系统启动状态进行 实时监视,及通过可编程逻辑电路控制选通B00TR0M和修复软件,在B00TR0M损坏下仍能启 动,并达到了自动修复的效果,节省了修复时间,提高了系统的可靠性。


下面根据附图和实施例对本发明作进一步详细说明。图1是本发明的装置框图;图2是本发明的处理流程图。图中1 启动装置2 含有修复软件的存储器3 =CPU 系统4:寄存器接口5:时钟电路6 计时逻辑电路7 片选控制逻辑电路
8 修复逻辑电路
9 可编程逻辑电路
S ROM:寄存器启动状态标志
S CPU :CPU启动状态指示
CSO 片选选择
TC 计时值清除
TS 计时停止
DATA :CPU系统总线接口
CLK 时钟信号
T 超时信号
A :B00TR0M片选信号
B 修复软件片选信号
RST =CPU复位信号
具体实施例方式如图1所示,本发明所述的自动修复装置,包括含有B00TR0M的启动装置1、含有修 复软件的存储器2、CPU系统3、及可编程逻辑电路9。所述可编程逻辑电路9包括寄存器接 口 4、时钟电路5、计时逻辑电路6、片选控制逻辑电路7、及B00TR0M修复逻辑电路8。所述 寄存器接口 4,包含以下标志位寄存器启动状态标志S_R0M、CPU启动状态指示S_CPU、片选 选择CS0、计时值清除TC、计时停止TS。CPU系统通过总线接口 DATA与可编程逻辑电路9中寄存器接口 4、启动装置1、存 储器2相连。实现对启动装置1及存储器2的读、写操作;改写CPU启动状态指示S_CPU、 片选选择CS0、计时值清除TC、计时停止TS ;并读出寄存器启动状态标志S_R0M。其中寄存 器启动状态标志S_R0M用于标志设备从B00TR0M启动、或从修复软件启动;CPU启动状态指 示S_CPU用于标志CPU是否正常启动;片选选择CSO用于CPU使能启动装置1或存储器2 ; 计时值清除Tc、计时停止TS是在设备正常启动后由CPU写入的控制信号。时钟电路5产生的时钟信号CLK,经接入时钟逻辑电路6,在计时值超过预定时间 门限后产生超时信号T。时钟逻辑电路6的计时功能在CPU向寄存器接口 4写入相应的TC、 TS值时停止。B00TR0M修复逻辑电路8,通过片选控制逻辑电路7将CSO连接到片选A或B,分别 使能启动装置1及存储器2。片选A的条件是,缺省状态下的自动启动或CPU向寄存器写 入CSO ;且计时器未产生超时信号T。片选B的条件是,计时器产生超时信号T,且S_CPU显 示CPU未进入正常启动状态。修复逻辑电路8还输出CPU复位信号RST,向CPU发出复位脉 冲,强制CPU复位重启。输出RST信号的条件是,片选控制逻辑电路使能片选B。作为实施例,本发明的可编程逻辑电路是使用CPLD(复杂可编程逻辑器件),如 FPGA(现场可编程门阵列)、GAL(通用逻辑阵列)。作为实施例,CPLD判断超时所使用的时钟是由看门狗电路组成低频时钟源的方 法,其特征在于,使用看门狗电路的超时时间产生的看门狗溢出信号作为时钟信号。该电路 给出的时钟,周期达到秒级,较大的时钟周期可以减小CPLD的计时逻辑的规模,并且方便统设置不同的超时时间。计时逻辑中使用低频时钟,可以较少对CPLD逻 辑单元的需求。一般的时钟振荡器难以达到很低的时钟频率,如1赫兹。例如使用带看门 狗的复位芯片ADM706作为时钟发生器,该芯片的看门狗溢出时间是1. 6秒,复位脉冲的时 间是0. 2秒,实现了一个周期是1. 8秒的低频时钟,CPLD只需要一个4位的定时器即可满 足本发明的超时功能。用做实施例,CPU对正常启动的B00TR0M的判断标志是ECC校验是否正确,并写入 CPLD寄存器S_CPU标志,通知CPLD CPU启动成功、停止修复逻辑。CPU启动过程包括部分 硬件的初始化、通过校验B00TR0M的ECC(错误校验和校正)判断B00TR0M的完整性、将压 缩的B00TR0M(启动软件的映象)部分复制到内存中解压缩、继续引导系统软件等。本发明的CPU需要在正常启动后停止CPLD中的计时逻辑,防止其超时后复位CPU 并切换到修复软件。如果CPU校验ECC后没有错误,CPU认为B00TR0M的内容是完整的,并 设置CPLD中的计时逻辑的控制位TC,TS。本发明判断是否需要自修复的方法是超时,CPLD经过一段预定时间的等待后如果 没有软件干预,即认为B00TR0M启动失败,需要修复。当CPLD计时超过阈值时间后,CPLD自 动复位CPU系统,并同时启动软件修改功能。本发明所述的B00TR0M和修复软件用同一个CPU片选控制CSO,B00TR0M和修复软 件的区分通过CPLD控制,在CPLD中通过一个寄存器控制位实现对片选的自动切换和控制。 当CPU设置正常启动标志位S_CPU之前,片选由CPLD自动控制并在需要的时候切换,CPU设 置正常启动标志位S_CPU之后,CPU可以通过写片选控制位来选择操作B00TR0M或修复软 件。对于CPU来说,其地址都是完全相同的。在CPU启动后可以读取CPLD寄存器S_R0M判断启动位置,CPU还可以通过CPLD选 择需要操作的芯片,通过CPLD选择片选后,存储B00TR0M和修复软件的芯片从CPU的角度 看的操作地址等是完全一致的。CPU可以通过CPLD控制片选,选择修复软件,从而CPU也可 以升级修复软件和其中保存的B00TR0M副本。本发明的修复功能在CPU从修复软件启动后生效。CPU判断CPLD中的启动标志 S_R0M,如果CPLD指示从修复软件启动,CPU通过CPLD寄存器选中B00TR0M的地址空间,将 保存在修复软件中的B00TR0M复制到B00TR0M芯片中。为了保证系统的安全和稳定,CPLD中的B00TR0M修复逻辑和其他的逻辑部分要采 用独立的复位控制系统。当系统上电的时候,CPLD中的B00TR0M修复逻辑和其他控制逻辑 都同时复位,进入初始状态。如果B00TR0M的修复逻辑发现CPU没有正常启动,需要进行 B00TR0M修复的时候,修复逻辑将自动复位其他的逻辑部分,而保持自己修复逻辑部分的状 态稳定不变。CPU可以通过选择片选从而可以升级修复软件和其中保存的B00TR0M副本。下面以一个实际启动示例来说明本发明的控制方法,如图2所示步骤一系统上电,CPLD中的修复逻辑和其他逻辑都复位进入初始状态。CPLD设 置CSO连接到片选A上,同时启动计时逻辑。步骤二 CPU启动,首先从B00TR0M中读取启动代码。同时CPLD中的修复逻辑通 过检验超时、及启动标志S_CPU判断是否要进行修复。步骤三出现超时且未写入启动成功标志S_CPU,系统启动失败。修复逻辑自动启
7动修复功能,CPLD修复逻辑将CSO连接到修复软件的片选B上,同时向CPU发出复位脉冲, 强制CPU复位重启。CPU重新启动,从修复软件中读取代码。步骤四当CPU向CPLD中的修复控制逻辑模块中写入启动成功标志S_CPU,系统 启动正常。CPU通过写寄存器TS,TC,停止CPLD中的计时逻辑并清除计时值。步骤五CPU判断系统启动标志S_R0M,如果CPU启动由于修复软件作用,则将保存 在修复软件中的数据存入B00TR0M。修复软件和B00TR0M两者在出厂的时候,烧录设置成相 同的代码。这样保证B00TR0M在进行修复完成后,代码和原来的保持一致。
权利要求
一种嵌入式操作系统中BOOTROM的自动修复装置,其特征在于包括含有BOOTROM的启动装置(1)、含有修复软件的存储器(2)、CPU系统(3)、及可编程逻辑电路(9);所述可编程逻辑电路(9),包括寄存器接口(4)、时钟电路(5)、计时逻辑电路(6)、片选控制逻辑电路(7)、及BOOTROM修复逻辑电路(8);所述寄存器接口(4),包含以下标志位寄存器启动状态标志(S_ROM)、CPU启动状态指示(S_CPU)、片选选择(CS0)、计时值清除(TC)、计时停止(TS);所述CPU系统(3)通过总线接口(DATA)与可编程逻辑电路(9)中寄存器接口(4)、启动装置(1)、存储器(2)相连,实现读、写操作;改写CPU启动状态指示(S_CPU)、片选选择(CS0)、计时值清除(TC)、计时停止(TS);并读出寄存器启动状态标志(S_ROM);所述时钟电路(5)产生的时钟信号(CLK),经接入时钟逻辑电路(6),在计时值超过预定时间门限后产生超时信号(T);时钟逻辑电路(6)的计时功能在CPU向寄存器接口(4)写入相应的寄存器值(TC、TS)时停止;所述BOOTROM修复逻辑电路(8),通过片选控制逻辑电路(7)将片选(CS0)分别使能启动装置(1)及修复软件存储器(2);使能启动装置(1)的条件是,缺省状态下的自动启动或CPU向寄存器写入片选(CS0);且计时器未产生超时信号(T);使能修复软件存储器(2)的条件是,计时器产生超时信号(T),且CPU启动状态指示(S_CPU)显示CPU未进入正常启动状态;修复逻辑电路(8)还输出CPU复位信号(RST),向CPU发出复位脉冲,强制CPU复位重启;输出复位信号的条件是,片选控制逻辑电路使能修复软件存储器(2)。
2.如权利要求1所述的嵌入式操作系统中B00TR0M的自动修复装置,其特征在于所 述可编程逻辑电路(9)使用CPLD (复杂可编程逻辑器件),包括FPGA (现场可编程门阵列)、 或者GAL (通用逻辑阵列)实现。
3.如权利要求1所述的嵌入式操作系统中B00TR0M的自动修复装置,其特征在于判 断超时所使用的时钟是由看门狗电路组成低频时钟源。
4.如权利要求1所述的嵌入式操作系统中B00TR0M的自动修复装置,其特征在于CPU 完成启动操作,对正常启动的B00TR0M的判断标志是ECC校验是否正确。
5.如权利要求1所述的嵌入式操作系统中B00TR0M的自动修复装置,其特征在于CPU 完成启动操作后,通过电路寄存器控制位(TS,TC)停止可编程逻辑电路中的计时逻辑。
6.如权利要求1所述的嵌入式操作系统中B00TR0M的自动修复装置,其控制方法特征 在于,包括以下步骤第一步在设备启动过程中,自动选择启动装置(1),当B00TR0M在计时值超过预定时 间门限后不能完成启动操作时,B00TR0M修复逻辑电路(8)自动复位CPU系统,运行修复软 件来启动设备;第二步可编程逻辑电路(9)的寄存器接口中给出启动状态标志(S_R0M),CPU启动后 读取该标志判断启动状态,如果从修复软件启动,则同时启动修复B00TR0M的功能,将保存 在修复软件存储器(2)中的B00TR0M数据复制到启动设备(1)中。
7.如权利要求6所述的嵌入式操作系统中B00TR0M的自动修复控制方法,其特征在于第一步中进一步包含步骤一系统上电,可编程逻辑电路中的修复逻辑和其他逻辑都复位进入初始状态,可 编程逻辑电路设置片选至启动设备(1),同时启动计时逻辑(6);步骤二 CPU启动,首先从启动设备中读取启动代码,同时可编程逻辑电路中的修复逻 辑通过检验超时、及启动标志(S_CPU)判断是否要进行修复;步骤三出现超时且未写入启动成功标志(S_CPU),系统启动失败,修复逻辑电路(8) 自动启动修复功能,修复逻辑将片选(CSO)连接到修复软件存储器(2)上,同时向CPU发出 复位脉冲(RST),强制CPU复位重启,CPU重新启动,从修复软件存储器(2)中读取代码。
8.如权利要求6所述的嵌入式操作系统中B00TR0M的自动修复控制方法,其特征在于 第二步中进一步包含步骤四当CPU向可编程逻辑电路(9)中的寄存器接口(4)中写入启动成功标志(S_ CPU),系统启动正常,CPU通过写寄存器(TS,TC),停止可编程逻辑电路中的计时逻辑并清 除计时值;步骤五CPU判断系统启动标志(S_R0M),如果CPU启动,由于修复软件作用,则将保存 在修复软件中的数据存入B00TR0M。
全文摘要
本发明公开一种嵌入式操作系统中BOOTROM的自动修复装置和控制方法,包括含有BOOTROM的启动装置(1)、含有修复软件的存储器(2)、CPU系统(3)、及可编程逻辑电路(9),采用可编程逻辑器件实现寄存器接口(4)、时钟电路(5)、计时逻辑电路(6)、片选控制逻辑电路(7)、及修复逻辑电路(8)。在设备启动过程中,能够自动选择启动装置,当计时值超过预定时间门限后不能完成启动操作时,自动复位CPU系统,通过运行修复软件来启动设备,并同步对启动装置的BOOTROM进行修复。本发明解决了BOOTROM损坏时设备不能正常工作的技术问题,实现启动设备的自动修复,提高系统的可靠性。
文档编号G06F11/14GK101916216SQ20101027543
公开日2010年12月15日 申请日期2010年9月8日 优先权日2010年9月8日
发明者邹泓 申请人:神州数码网络(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1