一种U‑Boot下基于链表的多设备快速启动系统及其方法与流程

文档序号:12362848阅读:209来源:国知局

本发明涉及计算机操作系统领域,具体地说是一种U-Boot下基于链表的多设备快速启动系统及其方法。



背景技术:

U-Boot,全称 Universal Boot Loader,是基于GPL条款的开放源码项目,是GPL下资源代码最完整的一个通用Boot Loader;U-Boot有引导启动和下载运行两种模式,并具有大型Boot Loader所应该具备的所有功能;U-Boot支持的处理器架构包括power PC、ARM、MIPs和X86等;U-Boot支持大量的外设驱动,支持多种不同的文件系统。

当前使用U-Boot作为Boot Loader的系统中,由于U-Boot本身功能限制,无法像X86平台BIOS的引导启动功能一样,实现根据设置,按顺序从多种介质引导操作系统。因此使用U-Boot作为Boot-Loader的平台中,对于引导设备有一定的限制,在实际使用过程中可用性和易用性较差。



技术实现要素:

本发明的技术任务是针对以上不足,提供一种U-Boot下基于链表的多设备快速启动系统及其方法,来解决使用U-Boot作为Boot-Loader的平台中,对于引导设备有一定的限制,在实际使用过程中可用性和易用性较差的问题。

本发明的技术任务是按以下方式实现的,一种U-Boot下基于链表的多设备快速启动系统,该系统包括设备信息模块和引导功能执行模块,设备信息模块用于存储引导设备的启动设备信息和参数信息,引导功能执行模块用于根据设备信息模块存储的启动设备信息和参数信息,完成操作系统引导。

作为优选,所述设备信息模块包括启动设备信息链表、启动顺序选项链表和数据处理模块;数据处理模块用于在设备初始化过程中将可引导设备的启动设备信息和参数信息存储至启动设备信息链表;设备初始化完成后,从Flash芯片中读取保存的用户设置,与启动设备信息链表中的节点对比确认设备信息有效后,将启动顺序设置存储至启动顺序选项链表;引导功能执行模块根据启动顺序选项链表记录的启动设备信息和参数信息,完成操作系统引导。

一种U-Boot下基于链表的多设备快速启动的方法,该方法包括如下步骤:

(1)、在设备启动的初始化阶段,设备信息模块中的数据处理模块将扫描到的能够引导启动的设备信息记录到启动设备信息链表中,每个设备对应一个链表节点;

(2)、设备初始化完成后,读取Flash中保存的启动顺序选项链表,并与启动设备信息链表中的节点进行对比,查看设备信息是否有效:

①、若设备信息有效,则把该设备的启动设备信息和参数信息写入启动顺序选项链表中;

②、若设备信息无效,则丢弃该节点;

(3)、全部完成Flash中保存的启动顺序选项链表与启动设备信息链表中节点的对比后,使用新的启动顺序选项链表更新Flash中存储的设备信息;

(4)、引导功能执行模块从步骤(3)中更新后的启动顺序选项链表首节点开始,调取保存的引导设备信息和操作系统引导参数信息,并尝试进行操作系统引导:

①、若引导失败,跳转到下一节点,重复进行尝试引导操作系统,以此类推,直至遍历整个启动顺序选项链表,若依然无法完成操作系统引导,则输出错误信息。

本发明的U-Boot下基于链表的多设备快速启动系统及其方法具有以下优点:

1、本发明通过增加设备信息模块和引导功能执行模块,实现了与X86平台BIOS一致的功能,可根据用户设置,按照顺序依次尝试通过不同介质进行操作系统的引导工作,从而提高了整个产品的可用性和易用性;

2、本发明通过修改函数调用,使用引导功能执行模块直接替换现有操作系统引导函数;因此,引导功能执行模块被U-Boot现有接口直接调用,在保证实现功能的前提下,做到影响范围最小化。

故本发明具有设计合理、结构简单、使用方便、一物多用等特点,因而,具有很好的推广使用价值。

附图说明

下面结合附图对本发明进一步说明。

附图1为U-Boot下基于链表的多设备快速启动系统结构框图。

图中:1、设备信息模块,2、引导功能执行模块,3、启动设备信息链表,4、启动顺序选项链表,5、数据处理模块。

具体实施方式

参照说明书附图和具体实施例对本发明的U-Boot下基于链表的多设备快速启动系统及其方法作以下详细地说明。

实施例1:

如附图1所示,本发明的U-Boot下基于链表的多设备快速启动系统, 该系统包括设备信息模块1和引导功能执行模块2,设备信息模块1用于存储引导设备的启动设备信息和参数信息,引导功能执行模块2用于根据设备信息模块存储的启动设备信息和参数信息,完成操作系统引导。设备信息模块1包括启动设备信息链表3、启动顺序选项链表4和数据处理模块5;数据处理模块5用于在设备初始化过程中将可引导设备的启动设备信息和参数信息存储至启动设备信息链表3;设备初始化完成后,从Flash芯片中读取保存的用户设置,与启动设备信息链表中的节点对比确认设备信息有效后,将启动顺序设置存储至启动顺序选项链表4;引导功能执行模块2根据启动顺序选项链表4记录的启动设备信息和参数信息,完成操作系统引导。

实施例2:

本发明的U-Boot下基于链表的多设备快速启动的方法,该方法包括如下步骤:

(1)、在设备启动的初始化阶段,设备信息模块中的数据处理模块将扫描到的能够引导启动的设备信息记录到启动设备信息链表中,每个设备对应一个链表节点;

(2)、设备初始化完成后,读取Flash中保存的启动顺序选项链表,并与启动设备信息链表中的节点进行对比,查看设备信息是否有效:

①、若设备信息有效,则把该设备的启动设备信息和参数信息写入启动顺序选项链表中;

②、若设备信息无效,则丢弃该节点;

(3)、全部完成Flash中保存的启动顺序选项链表与启动设备信息链表中节点的对比后,使用新的启动顺序选项链表更新Flash中存储的设备信息;

(4)、引导功能执行模块从步骤(3)中更新后的启动顺序选项链表首节点开始,调取保存的引导设备信息和操作系统引导参数信息,并尝试进行操作系统引导:

①、若引导失败,跳转到下一节点,重复进行尝试引导操作系统,以此类推,直至遍历整个启动顺序选项链表,若依然无法完成操作系统引导,则输出错误信息。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的两种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1