本发明涉及实时嵌入式技术领域,尤其涉及一种u-boot启动双备份系统。
背景技术:
嵌入式操作系统(embeddedoperatingsystem,简称:eos)是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式系统的结构分为四个区,包括bootloader区、参数区、内核镜像区和文件系统区,这4个区都以二进制数据的形式存放于嵌入式设备的flash芯片上。由于参数区不用下载,在实际的操作中只下载其余3个区即可。
coidre972开发板上的bootloader区使用的是u-boot,全称universalbootloader,它负责嵌入式系统最初的硬件初始化、驱动和内核加载,其源码目录、编译形式与嵌入式系统内核很相似。它支持尽可能多的嵌入式处理器和嵌入式操作系统。
在传统的u-boot启动中,cpu只会单一的读取固定地址的u-boot启动代码,在系统运行、维护和调试过程中一旦这一环节出现故障,将导致不可逆的结果,大大降低了系统的稳定性和可靠性指标。
技术实现要素:
有鉴于此,本发明的目的在于,提供一种设计简单,定制灵活,可靠性和稳定性高的u-boot启动双备份系统。
为实现上述目的,本发明采用的技术方案为:
一种u-boot启动双备份系统,包括主控制器cpu、flash、fpga和硬件电路,所述主控制器cpu与flash通过localbus总线进行连接,所述fpga和硬件电路分别与所述localbus总线进行连接,对所述flash的首地址位进行联合控制,所述flash的存储空间被划分成两个独立的区域,每个区域分别存放一段独立完整的u-boot启动代码。
优选的,所述localbus总线包括控制总线、地址总线和数据总线。
优选的,所述控制总线包含lcs片选信号线、int中断控制线、er/w读写使能信号线以及rst复位信号线。
优选的,所述lcs片选信号线为一条,当所述lcs片选信号线的信号为低电平时表示flash被选中。
优选的,所述地址总线宽度为19位。
优选的,所述地址总线的首位地址赋值为正时,对应的是flash中以0位为起始的存储空间中的u-boot启动代码,当所述地址总线的首位地址赋值为负时,对应的是flash中以256位为起始的存储空间中的u-boot启动代码。
优选的,所述地址总线和数据总线复用。
优选的,所述数据总线宽度为8位,双向传输。
优选的,所述fpga用于并行数据和串行数据之间的转换。
优选的,所述系统用于实时嵌入式系统vxworks领域中。
本发明的益处在于:
(1)实用性强,设计简单,可定制化程度高;
(2)可根据不同环境要求设置不同的启动代码,可靠性和可维性高;
(3)系统稳定性高,而且可用于较特殊领域,如军用和工业等专业用户。
附图说明
图1为本发明u-boot启动双备份系统结构示意图
具体实施方式
如图1所示,一种u-boot启动双备份系统,包括主控制器cpu、flash、fpga和双备份设计电路,其中主控制器cpu与flash通过localbus总线进行通讯,fpga和双备份设计电路分别与localbus总线进行通讯,联合控制对flash的首地址位进行选择。
主控制器cpu的作用是通过localbus总线来读取uboot启动代码和数据。flash的存储空间被划分成两块独立的区域,每个区域分别存放一段相对独立完整的u-boot启动代码。在cpu与flash中间加入fpga和硬件电路,目的是通过fpga和硬件电路的联合控制,使得localbus总线的首地址可以跳变,不同的首地址对应不同的flash存储空间区域,cpu就可读取不同的u-boot启动代码,从而达到备份u-boot启动代码的目的。
localbus总线包括控制总线、地址总线和数据总线三部分:
(1)控制总线包含lcs片选信号线、int中断控制线、er/w读写使能信号线以及rst复位信号线。本发明只需要一条lcs片选信号线,当片选信号为低电平时表示flash被选中,此时地址、数据、读写使能信号才有效,cpu可以对flash内部进行读写操作。
(2)本系统中使用的地址总线为19位,则其寻址空间大小为219,即整个flash的存储空间为512kb。其中,首位地址线决定了cpu读取地址空间的初始寻址位置,通过控制首位地址的电平值来指定flash中不同区域的u-boot启动代码,从而达到u-boot启动的备份目的。具体的设计思路是通过fpga与硬件控制电路的联合控制,使得flash首地址位(flash芯片首地址lba13_a18)的赋值做一次翻转,当flash芯片首地址lba13_a18的赋值为正向时,cpu通过localbus总线正常读取flash中以0位为起始的256kb的存储空间,这一区域存储空间存放着一段相对独立完整的u-boot启动代码。当(flash芯片首地址lba13_a18)的赋值为反向时,cpu通过localbus总线正常读取flash中以256位为起始的剩余的256kb存储空间,该空间内存放了另一段完整独立的u-boot。本系统中,地址总线和数据总线可以复用。
(3)本系统使用的数据总线宽度为8位,双向传输。用于实现主控制器cpu与flash之间的双向数据传输。当发送数据时,cpu将数据写入flash的发送fifo中,此时,fpga内部逻辑将并行数据转换成串行数据并通过flash接口发送出去;当接收数据时,fpga内部逻辑将flash接收到的外部串行数据转换成并行数据存入接收fifo中,供cpu读取。
本发明可用于实时嵌入式系统vxworks领域中,通过结构简洁,易于实现的电路设计,实现对实时嵌入式系统vxworks的u-boot启动的双备份,大大加强了系统运行,维护和调试的稳定性和可靠性,更方便针对不同的应用环境定制化设计启动代码,给一些特殊领域行业,如军工和工业应用等提供灵活、可操控的设计。