没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论

















UEFI驱动程序的研究与开发驱动程序的研究与开发
UEFI是Intel推出的新一代BIOS技术。在分析UEFI基本结构和驱动程序模型的基础上,详细论述了基于USB协议
栈的CC2531 ZigBee模块的设备驱动程序设计与开发过程,实现了在操作系统启动之前主机与USB设备间的信
息交互,扩展了UEFI的功能。
统一可扩展固件接口UEFI(Unified Extensible Firmware Interface)是Intel推出的新一代BIOS技术,旨在定义一套操作系统与平
台固件之间完整的接口规范,为操作系统的引导提供标准环境[1]。相比于使用汇编语言编写的传统BIOS,UEFI采用模块化的
设计、C语言风格的参数堆栈传递方式,借由动态链接的形式所构建出来的系统,更易于实现[2]。同时,UEFI是以32 bit或64
bit CPU保护模式运行,突破了传统16 bit实模式代码的寻址能力,可达到CPU的最大寻址空间。得益于这些优点,UEFI经过
近10年的推广,已经成为主流,将使用传统BIOS的微型计算机系统逐渐淘汰出市场[3]。
UEFI中引入了UEFI驱动程序模型的概念,采用驱动/协议的结构开发驱动程序,驱动程序和硬件完全独立,具有很强的扩展
性,从而使得UEFI平台下添加新的特性变得简单[4]。
1 UEFI基本结构分析基本结构分析
UEFI主要由引导管理器、固件内核、协议、驱动模型等组件构成[4]。其中固件内核为UEFI的基础,它将底层硬件功能抽象
化,为上层的引导管理器提供两种服务:引导服务和运行时服务。引导管理器是一个策略引擎,它使用固件内核提供的服务加
载UEFI驱动程序和应用程序,并最终加载操作系统。
图1所示为UEFI的系统框架图。固件内核运行在PEI和DXE阶段,UEFI在PEI阶段直接与硬件层打交道,启动必需的硬件资
源,譬如完成CPU和芯片组的初始化,进而满足DXE的执行启动条件;其后,系统在DXE阶段完成其他所有硬件的初始化,
并为上层接口实现引导服务和运行时服务。引导管理器运行在DXE和BDS阶段,它通过加载框架驱动和平台驱动向上层提供
UEFI服务和接口,通过加载应用程序扩展系统功能,并在BDS阶段提供一个引导菜单,供用户选择引导设备。最终引导加载
器在ROM上加载操作系统加载器,将控制权移交给操作系统,完成操作系统的引导。
2 CC2531 ZigBee模块的设备驱动程序开发模块的设备驱动程序开发
CC2531是TI公司推出的一款用于IEEE 802.15.4或ZigBee应用的片上系统解决方案,它能够以非常低的成本建立网络节点,
支持低功耗的无线通信,主要用于远程控制、家庭控制等领域[5]。CC2531集成了USB2.0功能模块,可以更加方便地与主机
进行通信。
本文将CC2531 ZigBee模块(以下简称CC2531模块)通过USB接口与无线POS机的主机相连,CC2531模块通过ZigBee无线网
络与POS机的外设(如打印机、客显、键盘等)进行信息交互。此方案实现了在启动操作系统之前对POS机及其外设进行相应远
程检测和诊断的功能。图2为无线POS机系统的结构框图。
2.1 UEFI驱动程序模型分析驱动程序模型分析
2.1.1 句柄和协议
UEFI驱动程序模型使用句柄代表设备,每个设备对应有自己的句柄,句柄由一个或多个协议组成。协议是一个以128 bit的全
局唯一标识符GUID(Globally Unique Identifier)命名的结构体,是一些指针和数据结构体或者规范定义的接口函数指针的集
合,协议代表设备提供的一类服务,服务的具体功能在设备驱动程序(以下简称驱动)中实现。开发者首先找到指定设备句柄
上挂载的指定协议,再通过协议提供的接口访问设备驱动中实现服务的功能函数,对设备进行操作。图3所示为设备句柄和协
议的结构图。
资源评论


weixin_38569109
- 粉丝: 7
- 资源: 956
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
