设备驱动层学案.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
。 设备驱动层 驱动层一般由硬件抽象层(HAL)、板级支持包(BSP)和驱动程序组成,是嵌入式系统中不可或缺的重要部分。它的作用是为上层程序提供外部设备的操作接口,并且实现设备的驱动程序。上层程序可以不管操作的设备内部实现,只需要调用驱动的接口即可。 硬件抽象层(HAL) 硬件抽象层的层次结构 HAL层可细分为:common HAL(通用抽象层)、architecture HAL(体系结构抽象层)、variant HAL(变体抽象层)和platform HAL(平台抽象层)。 体系结构抽象层:eCos所支持的不同处理器系列具有不同的体系结构,如ARM系列、PowerPC系列、MIPS系列等,体系结构抽象层对CPU的基本结构进行抽象和定义,此外它还包括中断的交付处理、上下文切换、CPU启动以及该类处理器结构的指令系统等。 变体抽象层指的是处理器在该处理器系列中所具有的特殊性,这些特殊性包括Cache、MMU、FPU等,eCos的变体抽象层就是对这些特殊性进行抽象和封装。 平台抽象层是对当前系统的硬件平台进行抽象,包括平台的启动、芯片选择和配置、定时设备、I/O寄存器访问以及中断寄存器等。 硬件抽象层的这三个子模块之间没有明显的界线。对于不同的目标平台,这种区分具有一定的模糊性。例如,MMU和Cache可能在某个平台上属于体系结构抽象层,而在另一个平台上则可能属于变体抽象层的范围;再比如,内存和中断控制器可能是一种片内设备而属于变体抽象层,也可能是片外设备而属于平台抽象层。 eCos的移植通过这三个子模块来完成,即平台抽象层的移植、变体抽象层的移植和体系结构抽象层的移植。对一个新的体系结构来说,其体系统结构抽象层的建立相对来说比较困难,需要编写新的体系结构抽象层。eCos支持大部分当前广泛使用的嵌入式CPU,已具有了支持各种体系结构的硬件抽象层。因此,eCos的移植很少需要进行体系结构抽象层的编写。 一般来说,进行eCos开发时,移植的主要工作在于变种抽象层和平台抽象层,这是由于eCos已实现了绝大多数流行嵌入式CPU的体系结构抽象层。其中,平台抽象层主要完成的工作包括:内存的布局、平台早期初始化、中断控制器以及简单串口驱动程序等 嵌入式系统通常包含三个部分: ? 嵌入式应用程序 ? 嵌入式操作系统 ? 硬件平台 ?? ? ?应用程序运行在操作系统之上,利用操作系统提供的接口完成特定功能。操作系统一般是RTOS,完成应用的任务调度和控制等核心功能。硬件平台根据应用的不同,所具备的功能各不相同,而且所使用的硬件设备也不一样,因此具有复杂的多样性。 由于硬件平台的复杂多样,针对不同平台进行操作系统的移植是极为耗时的工作,因此经过不断发展,嵌入式系统的三层结构演化为四层结构,即在操作系统层和硬件平台之间,增加硬件抽象层(HAL)。 ?? ? ?硬件抽象层本质上就是一组对硬件进行操作的API接口,是对硬件功能抽象的结果。硬件抽象层通过API为操作系统和应用程序提供服务。一般上HAL包含相关硬件的初始化、数据的输入输出操作、硬件设备的配置操作等功能。 有了硬件抽象层,操作系统和应用程序就不需要关心底层的硬件平台信息,内核与硬件相关的代码也不必因硬件的不同而修改,只要硬件抽象层能够提供必需的服务即可,从而屏蔽底层硬件,方便进行系统的移植。 ?? ? ?HAL只是对硬件的一个抽象,对一组API进行定义,却不提供具体的实现。通常HAL各种功能的实现是以BSP的形式来完成对具体硬件的操作的。 HAL设计的一些要素是: ? 与硬件的密切相关性 ? 与操作系统的无关性 ? 接口的功能包括硬件或者系统所需硬件支持的所有功能 ? 接口简单明了 板级支持包(BSP) ?? ? ?板级支持包是介于系统硬件和操作系统的驱动程序之间的一层,是HAL的具体实现,所以有些人也称BSP层位HAL。 ?? ? ?BSP主要实现对操作系统的支持,为上层驱动程序提供访问硬件设备寄存器所需的函数,使之能够更好的运行于硬件主板。 ?? ? ?BSP的特点有:硬件相关性,BSP程序直接对硬件进行操作;操作系统相关性,不同操作系统的软件层次结构不同,硬件抽象层的接口定义不同,因此具体实现也不一样。BSP,一定要按照操作系统的接口定义来实现,因此,大多数的BSP编程过程都是在某一个成型的BSP模板上进行修改。 具体功能体现在两个方面: 1.系统启动时,完成对硬件的初始化,如对系统内存,寄存器以及设备的中断设置等。 2.为操作系统的通用设备驱动程序提供访问硬件的手段,亦即硬件相关的设备驱动。 设备驱动程序 ?? ? ?设备驱动程序是指操作系统中的驱动程序,为上层软件提供设备的操作接口,必要的时使用BSP提供的函数来实现硬件设备操作。驱动程序的好坏直接影响系统的性能。 BSP(board

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档