本发明专利技术涉及计算机固件及其实现方法。本发明专利技术提供的计算机固件及其方法能够有效减少模块化计算机固件在计算机系统尤其是嵌入式系统中所需的内部存储空间。本发明专利技术提供的模块化计算机固件,包括:核心模块,用以构建模块化计算机固件运行机制的必要环境;外围模块,用以实现平台的外围设备驱动和平台增值服务功能;过渡模块,用以调度外围模块;核心模块与过渡模块存储于内部存储器,外围模块存储于外部存储器;核心模块运行完毕,执行过渡模块,过渡模块运行完毕后进入BDS阶段。
【技术实现步骤摘要】
本专利技术涉及一种,尤其是ー种占用低容量存储空间的。
技术介绍
固件(Firmware)是一般存储于设备中的EEPROM或FLASH芯片中的程序,通俗的理解就是“固化的软件”。固件担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为ー些硬件设备除了固件以外没有其它软件組成,因此固件也就决定着硬件设备的功能及性能。计算机固件俗称BIOS (Basic Input Output System),中文名称为“基本输入输出系統”,它是一組固化到计算机内主板上ー个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。因为硬件发展迅速,传统式(Legacy)BIOS已经不能满足进步的需求,现在已发展出最新的EFI (Extensible Firmware hterface)可扩展固件接ロ,它只包含接ロ格式的定义,不含实现,是ー个规范,它定义了用于接替(Legacy)Bios的新一代Firmware的结构和对外接ロ,从而实现了固件的高度可扩展性、可维护性,缩短了固件开发周期。与BIOS显著不同的是,UEFI是用模块化、集中调度机制、动态链接的形式构建系统,它比BIOS更易于实现,容错和纠错特性也更强,从而缩短了系统研发的时间。更加重要的是,它运行于32位或64位模式,突破了传统16位代码的寻址能力,达到处理器的最大寻址,此举克服了 BIOS代码运行缓慢的弊端。UEFI框架主要包含两部分,ー是PEI (EFI预初始化),另一部分是驱动执行环境 (DXE)。系统加电后最先被执行的阶段是SEC阶段,即安全性阶段,是CPU被Reset后,从在实模式下的线性地址OxffffO处执行的第一条指令开始,直到将控制权交给PEI阶段所执行的代码。PEI主要是用来检测启动模式、加载主存储器初始化模块、检测和加载驱动执行环境核心。DXE是设备初始化的主要环节,它提供了设备驱动和协议接ロ环境界面。DXE 阶段后是BDS阶段,即启动设备选择阶段,该阶段尝试从可用的启动设备来启动操作系统, BDS阶段是将控制权交给操作系统的最后ー个阶段。UEFI固件的文件系统格式为Firmware Volume,简称 FV。现有的模块化计算机固件的实现,需要把所有的模块全部存储在EEPROM或FLASH 中,执行期间只能从EEPROM或FLASH中加载模块,这就要求EEPROM或FLASH的空间足够大。 但是对于ー些嵌入式平台或者其他EEPROM或FLASH空间较小的,又不能动态调整的平台, 这种存储限制,是ー个比较难以克服的问题。
技术实现思路
为了解决上述问题,本专利技术的目的在于提供ー种占用内部存储空间低,有利于外围功能扩展,降低调试复杂度,提高开发效率的模块化计算机固件和其实现方法。本专利技术提供的一种模块化计算机固件,包括核心模块,用以构建模块化计算机固件运行机制的必要环境;外围模块,用以实现平台的外围设备驱动和平台增值服务功能; 过渡模块,用以调度外围模块;核心模块与过渡模块存储于内部存储器,外围模块存储于外部存储器;核心模块运行完毕,执行过渡模块,过渡模块运行完毕后进入BDS阶段。可选的,本专利技术提供的模块化计算机固件,其核心模块包括DXE阶段之前所需的模块;构建模块化计算机固件基础执行环境的模块;涉及平台基础架构的模块;涉及外部存储器的设备的模块。可选的,本专利技术提供的模块化计算机固件,其DXE阶段之前所需的模块包括SEC 阶段核心模块;SEC阶段到DXE阶段的过渡模块。可选的,本专利技术提供的模块化计算机固件,其构建模块化计算机固件基础执行环境的模块包括DEX阶段核心模块;P⑶管理模块;运行时环境初始化模块;安全验证模块; 运行时BIOS更新模块;固件文件系统卷服务模块;变量容错写模块;变量管理模块;单调计数模块;简单文本输出模块;磁盘输入输出模块;块设备分区管理模块;Unicode字符支持模块;FAT文件系统模块;人机接口数据库模块。可选的,本专利技术提供的模块化计算机固件,其涉及平台架构的模块包括CPU管理模块;定时器模块;中断管理模块;看门狗定时器模块;平台重启模块;节拍器模块;时钟管理模块;南桥初始化模块;PCI主桥驱动模块;PCI总线驱动模块。可选的,本专利技术提供的模块化计算机固件,其涉及外部存储器的设备的模块包括 OHC驱动模块,USB总线驱动模块,USB大容量存储设备驱动模块;和/或者IDE总线驱动模块,IDE控制器驱动模块。可选的,本专利技术提供的模块化计算机固件,其外围模块包括涉及BDS的模块;X86 指令模拟器模块;OS内核加载模块;显卡驱动模块;USB键盘驱动模块;涉及ktup的模块; 图形终端模块;Logo显示模块;EFI Shell模块。可选的,本专利技术提供的模块化计算机固件,其过渡模块包括读取模块,用以读取外部存储器中的外围模块到缓存;控制模块,用以控制缓存中的外围模块的调度过程;驱动连接模块,用以在控制模块执行完毕后,连接驱动到各个设备;BDS启动模块,用以在驱动连接模块执行完毕后,启动BDS阶段程序。可选的,本专利技术提供的模块化计算机固件,其读取模块包括SFS接ロ模块,用以通过SFS接ロ打开外围模块文件;缓存模块,用以将打开的外围模块文件读入缓存。可选的,本专利技术提供的模块化计算机固件,其控制模块包括扫描模块,用以扫描外围模块文件中的外围模块信息;加载模块,用以在扫描模块执行完毕后加载外围模块; 判断模块,用以判断加载后的外围模块是否属于驱动模块或者涉及BDS的模块;记录模块, 用以依据判断模块的判断结果记录不属于驱动模块,或者属于涉及BDS的模块的外围模块的加载信息;执行模块,用以依据判断模块的判断结果执行属于驱动模块但不属于涉及 BDS的模块的外围模块。可选的,本专利技术提供的模块化计算机固件,其内部存储器为EEPROM或FLASH。可选的,本专利技术提供的模块化计算机固件,其外部存储器为U盘或硬盘。可选的,本专利技术提供的模块化计算机固件,其核心模块、过渡模块、外围模块在存储器中的存储格式为FV。本专利技术还提供了一种实现计算机固件的方法,包括以下步骤步骤A 选择计算机固件运行机制必须的模块作为核心模块;步骤B 将除核心模块外的模块作为外围模块;步骤C 制作包含调度外围模块方法的过渡模块;步骤D 编译计算机固件模块,将核心模块与调度模块组织在一起生成内部模块文件,外围模块単独生成外围模块文件;步骤Ε:将内部模块文件烧录或者复制至内部存储器,将外围模块文件复制至外部存储器。可选的,本专利技术提供的实现计算机固件的方法,其步骤A包括以下步骤步骤Al 选择DXE阶段之前的模块归入核心模块;步骤Α2 选择构建模块化固件基础执行环境的模块归入核心模块;步骤A3 选择与平台的架构相关的模块归入核心模块;步骤Α4 选择同存储外围模块文件的设备相关的驱动模块归入核心模块。可选的,本专利技术提供的实现计算机固件的方法,其调度外围模块方法包括以下步骤步骤Cl 从外部设备读取外围模块的文件;步骤C2 控制调度外围模块文件中的外围模块;步骤C3 连接驱动到各个设备;步骤C4 进入BDS阶段。可选的,本专利技术提供的实现计算机固件的方法,其本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:王庆川,
申请(专利权)人:南京百敖软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。