国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學習啦 > 學習電腦 > 電腦硬件知識 > 硬件知識 > 什么是硬件抽象層

    什么是硬件抽象層

    時間: 沈迪豪908 分享

    什么是硬件抽象層

      愛學習的小伙伴們,你們知道什么是硬件抽象層嗎?不知道的話跟著學習啦小編一起來學習了解什么是硬件抽象層。

      硬件抽象層介紹

      (Hardware Abstraction Layer )

      硬件抽象層是位于操作系統(tǒng)內核與硬件電路之間的接口層,其目的在于將硬件抽象化。它隱藏了特定平臺的硬件接口細節(jié),為操作系統(tǒng)提供虛擬硬件平臺,使其具有硬件無關性,可在多種平臺上進行移植。 從軟硬件測試的角度來看,軟硬件的測試工作都可分別基于硬件抽象層來完成,使得軟硬件測試工作的并行進行成為可能。

      硬件抽象層大概分為以下幾點HAL:

      *上層軟件

      *虛擬驅動,設置管理模塊

      *內部通信SERVER

      *內部以太網(wǎng)

      *內部通信CLIENT

      *用戶接入口

      硬件抽象層接口的定義和代碼的設計具有一下特點:

      *硬件抽象層具有與硬件的密切相關性

      *硬件抽象層具有與操作系統(tǒng)無關性

      *接口定義的功能應包含硬件或系統(tǒng)所需硬件支持的所有功能

      *接口定義簡單明了,太多接口函數(shù)會增加軟件模擬的復雜性

      *具有可測性的接口設計有利于系統(tǒng)的軟硬件測試和集成

      硬件抽象層對用戶設備接口的功能模擬主要由虛擬驅動模塊完成,包括數(shù)據(jù)包的收發(fā)及協(xié)議報文的預處理等工作,為上層協(xié)議軟件提供標準的API函數(shù), 而對用戶設備的接口管理則由上層網(wǎng)絡管理軟件通地設備管理模塊對其進行管理配置及監(jiān)控,內部通信模塊運行于內部隊以太網(wǎng)絡,協(xié)調各模塊之間的功能接口,保證從處理單元與主處理單元之間實時可靠的數(shù)據(jù)傳輸.

      speically in Android

      Framework&Application

      ------------------------------------

      External lib&Runtime

      ------------------------------------

      HAL

      Sensor stub stub stub

      ------------------------------------

      Linux Device Driver

      ------------------------------------

      圖上是現(xiàn)在Android HAL 的所在位置,從這張架構圖我們知道,HAL 的目的是為了把 Android framework 與 Linux kernel 完整隔開。讓 Android 不至過度依賴 Linux kernel,有點像是kernel independent的意思,讓 Android framework 的開發(fā)能在不考慮驅動程序的前提下進行發(fā)展。

      HAL module架構

      struct hw_module_t;

      struct hw_module_methods_t;

      struct hw_device_t;

      hw_module_methods_t

      ---------------------------

      open()

      \

      \

      \

      hw_module_t

      ----------------

      tag:uint32_t

      , , , , ,

      \

      \

      \

      \

      hw_device_t

      ---------------

      close()

      HAL 使用方法

      舉Sensor為列子

      (1)Native code通過hw_get_module調用獲取HAL stub:

      hw_get_module (SENSOR_HARDWARE_MODULE_ID, (const hw_module_t**)&module)

      (2)通過繼承hw_module_methods_t的callback來open設備:

      module->methods->open(module,

      SENSOR_HARDWARE_MODULE_ID, (struct hw_device_t**)device);

      (3)通過繼承 hw_device_t的callback來控制設備:

      sSensorDevice->set_on(sSensorDevice, sensor);

      sSensorDevice->set_off(sSensorDevice, sensor);

    什么是硬件抽象層相關文章:

    1.2015年計算機三級信息管理考試要點

    2.什么是硬件描述語言

    3.LINUX設備驅動程序如何與硬件通信

    4.本科計算機專業(yè)畢業(yè)論文

    5.關于計算機移動網(wǎng)絡專業(yè)論文

    2009053