久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    HDI硬件設(shè)備接口介紹

     開花結(jié)果 2022-05-20 發(fā)布于北京

    HDF驅(qū)動框架是OpenHarmony系統(tǒng)硬件生態(tài)開放的基礎(chǔ),為驅(qū)動開發(fā)者提供了驅(qū)動加載、驅(qū)動服務(wù)管理和驅(qū)動消息機制等驅(qū)動框架能力,同時還為開發(fā)者提供了規(guī)范的HDI硬件設(shè)備接口,讓開發(fā)者能屏蔽南向設(shè)備差異,提供更好

    HDF驅(qū)動框架是OpenHarmony系統(tǒng)硬件生態(tài)開放的基礎(chǔ),為驅(qū)動開發(fā)者提供了驅(qū)動加載、驅(qū)動服務(wù)管理和驅(qū)動消息機制等驅(qū)動框架能力,同時還為開發(fā)者提供了規(guī)范的HDI硬件設(shè)備接口,讓開發(fā)者能屏蔽南向設(shè)備差異,提供更好的硬件。本文將為大家?guī)鞨DI 硬件設(shè)備接口的介紹。

    HDI硬件設(shè)備接口介紹

    圖1 HDF驅(qū)動框架

    1. HDI介紹

    HDI(Hardware Device Interface,硬件設(shè)備接口)是HDF驅(qū)動框架為開發(fā)者提供的硬件規(guī)范化描述性接口。在OpenHarmony 分層結(jié)構(gòu)中,HDI位于 “基礎(chǔ)系統(tǒng)服務(wù)層”和“設(shè)備抽象層(DAL)”之間。硬件設(shè)備通過DAL抽象化,并基于IDL(Interface Description Language)接口描述語言描述后,為上層應(yīng)用或服務(wù)提供了規(guī)范的硬件設(shè)備接口。

    HDI硬件設(shè)備接口介紹

    圖2 OpenHarmony 分層結(jié)構(gòu)

    HDI支持“IPC模式”及“直通模式”兩種調(diào)用方式。其中,IPC模式即跨進程通信模式,基于binder機制實現(xiàn),調(diào)用端通過Proxy代理庫調(diào)用HDI接口,具備良好的解耦性和安全性,是標準系統(tǒng)的默認部署方式。直通模式,將HDI實現(xiàn)為共享庫,調(diào)用端使用dlopen加載HDI實現(xiàn)庫并直接調(diào)用HDI接口,是小型系統(tǒng)的默認部署方式,同時還適用于對性能有特殊需求的標準系統(tǒng)模塊。

    HDI硬件設(shè)備接口介紹

    圖3 兩種調(diào)用方式

    HDI硬件設(shè)備接口的優(yōu)點用一句話總結(jié)就是:為硬件的接入提供了統(tǒng)一的實現(xiàn)通路。屏蔽了硬件接口的具體實現(xiàn),實現(xiàn)系統(tǒng)軟件與硬件的架構(gòu)解耦。讓開發(fā)者專注于硬件接口的使用,從而簡化開發(fā)過程,提升開發(fā)效率。

    2. HDI實現(xiàn)

    通過上文的介紹,相信很多小伙伴會有疑問,HDI接口是怎么實現(xiàn)的呢?下面我們將為你介紹IPC模式下基于C/S(Client-Server客戶端與服務(wù)端)結(jié)構(gòu)的HDI接口實現(xiàn)。

    2.1 IDL接口描述語言

    為方便后文的理解,我們先簡單了解一下IDL接口描述語言。

    IDL(Interface Description Language)是一類用來描述接口的語言,通過一種中立的方式來定義客戶端與服務(wù)端均認可的編程接口,可以實現(xiàn)在二者間的跨進程通信(IPC)。跨進程通信意味著可以在一個進程訪問另一個進程的數(shù)據(jù),或調(diào)用另一個進程的方法。通常把應(yīng)用接口提供方(供調(diào)用)稱為服務(wù)端,調(diào)用方稱為客戶端。

    IDL先把需要傳遞的對象分解成操作系統(tǒng)能夠理解的基本類型,然后根據(jù)接口聲明編譯,生成IPC/RPC代理(Proxy)和樁(Stub)的C/C++代碼,從而為調(diào)用者提供一致的接口和調(diào)用方式。

      圖4 IDL IPC模式通信模型

    2.1 基于IDL語言實現(xiàn)HDI接口

    首先,使用IDL語法描述HDI接口并保存為.idl文件,然后編寫.idl文件的編譯腳本BUILD.gn文件,最后編譯.idl文件即可。下面我們將為大家演示電源子系統(tǒng)的HDI接口的實現(xiàn)過程。

    (1)使用IDL語法編寫 .idl 文件

    ● 定義電源接口 IPowerInterface.idl

    HDI硬件設(shè)備接口介紹

    ● 如果需要從服務(wù)端回調(diào),可以定義callback接口類IPowerHdiCallback.idl

    HDI硬件設(shè)備接口介紹

    ● 如果interface中用到了自定義數(shù)據(jù)類型,將自定義類型定義到powerTypes.idl

    HDI硬件設(shè)備接口介紹

    (2)編寫.idl 文件的編譯腳本BUILD.gn

    HDI硬件設(shè)備接口介紹

    (3)編譯 .idl文件

    使用編譯工具hdi-gen編譯IDL文件,IDL文件在編譯過程中轉(zhuǎn)換為C/C++語言的函數(shù)接口聲明、客戶端與服務(wù)端IPC相關(guān)過程代碼,開發(fā)者只需要基于生成的power.h函數(shù)接口實現(xiàn)具體服務(wù)功能即可。編譯后生成代碼在out/product/gen/drivers/interface/power中,接口代碼如下:

    HDI硬件設(shè)備接口介紹

    (4)實現(xiàn)HDI接口

    ● 實現(xiàn)UHDF Driver,用于將HDI實現(xiàn)加載為獨立進程,并基于HDF驅(qū)動框架發(fā)布設(shè)備服務(wù)。

    HDI硬件設(shè)備接口介紹

    ● 實現(xiàn)HDI接口

    HDI硬件設(shè)備接口介紹

    3. HDI使用

    通過上文的介紹,相信大家已經(jīng)對HDI有了一定的了解,下面我們將為大家介紹HDI的使用,在直通模式下,對HDI接口調(diào)用為同一進程空間函數(shù)調(diào)用,過程較為直接,這里我們重點闡述IPC模式下的調(diào)用原理,然后通過CPP語言來展示電源子系統(tǒng)HDI的調(diào)用。

    3.1 調(diào)用原理

    在IPC模式下,當系統(tǒng)服務(wù)調(diào)用HDI接口時,通過proxy庫將函數(shù)調(diào)用轉(zhuǎn)換為IPC請求,將接口調(diào)用的參數(shù)進行序列化;IPC請求通過IPC框架發(fā)送到服務(wù)端,請求將被stub庫先處理,然后對接口調(diào)用的參數(shù)進行反序列化,再轉(zhuǎn)換成對服務(wù)實現(xiàn)的函數(shù)調(diào)用,從而實現(xiàn)接口調(diào)用過程。

      圖5 HDI調(diào)用過程

    3.2 基于CPP語言的使用

    上文已經(jīng)編譯生成了電源子系統(tǒng)的HDI接口,下面我們來看看如何使用CPP語言來調(diào)用HDI接口吧。

    (1)客戶端在BUILD.gn中增加依賴: //drivers/interface/foo/v1.0:libfoo_proxy_1.0"

    HDI硬件設(shè)備接口介紹

    (2)在實現(xiàn)電源子系統(tǒng)的代碼中調(diào)用HDI接口,代碼如下:

    HDI硬件設(shè)備接口介紹

    4. 結(jié)語

    以上就是本文全部內(nèi)容,我們在這里簡單介紹了HDI接口的實現(xiàn)思路及使用,對于廣大南向開發(fā)者,我們還在社區(qū)提供了詳細的HDI接口實現(xiàn)指導,歡迎大家在gitee社區(qū)參與更多討論。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 夜夜躁狠狠躁日日躁| 久久97精品久久久久久久不卡 | 久久亚洲精品情侣| AV无码国产在线看免费网站| 国产精品无码免费播放| 亚洲色大成网站WWW久久| 欧美牲交A欧美牲交| 国产午夜精品福利91| 久久精品夜夜夜夜夜久久| 视频二区中文字幕在线| 免费无码VA一区二区三区| 成人午夜激情在线观看| 狠狠躁夜夜躁人人爽天天天天| 午夜射精日本三级| 精品人妻系列无码人妻漫画| 深夜av免费在线观看| 精品国产一区二区三区2021 | 最新亚洲人成网站在线影院 | 国产不卡av一区二区| 日韩精品无码人成视频手机| 国产一区二区不卡在线| 在线天堂中文官网| 精品免费看国产一区二区| 无码人妻一区二区三区精品视频| 久久五月丁香激情综合| 精品久久久久中文字幕日本| 亚洲制服丝袜中文字幕在线| 亚洲美免无码中文字幕在线| 在线观看热码亚洲AV每日更新| 成人3D动漫一区二区三区| 波多野结AV衣东京热无码专区| 精精国产XXX在线观看| 深夜av在线免费观看| 久久综合色之久久综合| 18禁超污无遮挡无码网址| 综合偷自拍亚洲乱中文字幕| 国产乱码精品一区二区三区四川人| 国产精品亚洲二区在线播放| 亚洲小说乱欧美另类| 欧美巨鞭大战丰满少妇| 激情 自拍 另类 亚洲|