zoukankan      html  css  js  c++  java
  • 设备驱动层

    驱动层一般由硬件抽象层(HAL)、板级支持包(BSP)和驱动程序组成,是嵌入式系统中不可或缺的重要部分。它的作用是为上层程序提供外部设备的操作接口,并且实现设备的驱动程序。上层程序可以不管操作的设备内部实现,只需要调用驱动的接口即可。

    硬件抽象层(HAL

    嵌入式系统通常包含三个部分:

      嵌入式应用程序

      嵌入式操作系统

      硬件平台

          应用程序运行在操作系统之上,利用操作系统提供的接口完成特定功能。操作系统一般是RTOS,完成应用的任务调度和控制等核心功能。硬件平台根据应用的不同,所具备的功能各不相同,而且所使用的硬件设备也不一样,因此具有复杂的多样性。

    由于硬件平台的复杂多样,针对不同平台进行操作系统的移植是极为耗时的工作,因此经过不断发展,嵌入式系统的三层结构演化为四层结构,即在操作系统层和硬件平台之间,增加硬件抽象层(HAL)。

          硬件抽象层本质上就是一组对硬件进行操作的API接口,是对硬件功能抽象的结果。硬件抽象层通过API为操作系统和应用程序提供服务。一般上HAL包含相关硬件的初始化、数据的输入输出操作、硬件设备的配置操作等功能。

    有了硬件抽象层,操作系统和应用程序就不需要关心底层的硬件平台信息,内核与硬件相关的代码也不必因硬件的不同而修改,只要硬件抽象层能够提供必需的服务即可,从而屏蔽底层硬件,方便进行系统的移植。

          HAL只是对硬件的一个抽象,对一组API进行定义,却不提供具体的实现。通常HAL各种功能的实现是以BSP的形式来完成对具体硬件的操作的。

    HAL设计的一些要素是:

      与硬件的密切相关性

      与操作系统的无关性

      接口的功能包括硬件或者系统所需硬件支持的所有功能

      接口简单明了

    板级支持包(BSP

          板级支持包是介于系统硬件和操作系统的驱动程序之间的一层,是HAL的具体实现,所以有些人也称BSP层位HAL。

          BSP主要实现对操作系统的支持,为上层驱动程序提供访问硬件设备寄存器所需的函数,使之能够更好的运行于硬件主板。

          BSP的特点有:硬件相关性,BSP程序直接对硬件进行操作;操作系统相关性,不同操作系统的软件层次结构不同,硬件抽象层的接口定义不同,因此具体实现也不一样。BSP,一定要按照操作系统的接口定义来实现,因此,大多数的BSP编程过程都是在某一个成型的BSP模板上进行修改。

    具体功能体现在两个方面:

    1.系统启动时,完成对硬件的初始化,如对系统内存,寄存器以及设备的中断设置等。

    2.为操作系统的通用设备驱动程序提供访问硬件的手段,亦即硬件相关的设备驱动。

    设备驱动程序

          设备驱动程序是指操作系统中的驱动程序,为上层软件提供设备的操作接口,必要的时使用BSP提供的函数来实现硬件设备操作。驱动程序的好坏直接影响系统的性能。

  • 相关阅读:
    Android学习笔记触摸事件
    Android学习笔记长按事件的处理
    Android学习笔记物理按键事件处理
    JAVA爬虫入门学习
    SpringBoot的服务入门(Get、Post)
    spring boot 入门学习
    Java 爬虫简单起步
    哇 好久不写C 忘得差不多
    Winfrom窗体应用程序___CefSharp的基础应用
    Winfrom窗体应用程序___DataGridView
  • 原文地址:https://www.cnblogs.com/getyoulove/p/3850391.html
Copyright © 2011-2022 走看看