精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 硬件知識(shí) > 什么是硬件抽象層

      什么是硬件抽象層

      時(shí)間: 沈迪豪908 分享

      什么是硬件抽象層

        愛(ài)學(xué)習(xí)的小伙伴們,你們知道什么是硬件抽象層嗎?不知道的話跟著學(xué)習(xí)啦小編一起來(lái)學(xué)習(xí)了解什么是硬件抽象層。

        硬件抽象層介紹

        (Hardware Abstraction Layer )

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

        硬件抽象層大概分為以下幾點(diǎn)HAL:

        *上層軟件

        *虛擬驅(qū)動(dòng),設(shè)置管理模塊

        *內(nèi)部通信SERVER

        *內(nèi)部以太網(wǎng)

        *內(nèi)部通信CLIENT

        *用戶接入口

        硬件抽象層接口的定義和代碼的設(shè)計(jì)具有一下特點(diǎn):

        *硬件抽象層具有與硬件的密切相關(guān)性

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

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

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

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

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

        speically in Android

        Framework&Application

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

        External lib&Runtime

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

        HAL

        Sensor stub stub stub

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

        Linux Device Driver

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

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

        HAL module架構(gòu)

        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通過(guò)hw_get_module調(diào)用獲取HAL stub:

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

        (2)通過(guò)繼承hw_module_methods_t的callback來(lái)open設(shè)備:

        module->methods->open(module,

        SENSOR_HARDWARE_MODULE_ID, (struct hw_device_t**)device);

        (3)通過(guò)繼承 hw_device_t的callback來(lái)控制設(shè)備:

        sSensorDevice->set_on(sSensorDevice, sensor);

        sSensorDevice->set_off(sSensorDevice, sensor);

      什么是硬件抽象層相關(guān)文章:

      1.2015年計(jì)算機(jī)三級(jí)信息管理考試要點(diǎn)

      2.什么是硬件描述語(yǔ)言

      3.LINUX設(shè)備驅(qū)動(dòng)程序如何與硬件通信

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

      5.關(guān)于計(jì)算機(jī)移動(dòng)網(wǎng)絡(luò)專業(yè)論文

      2009053