簡介
該倉主要存放OpenHarmony驅動子系統(tǒng)核心源碼信息(包括驅動框架、配置管理、配置解析、驅動通用框架模型、硬件通用平臺能力接口等),旨在為開發(fā)者提供更精準、更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。
圖 1 驅動框架架構圖[]()
說明
驅動框架使用說明
基于HDF框架開發(fā)驅動,開發(fā)者只需注冊所需接口和配置,驅動框架就會解析配置內(nèi)容,完成驅動加載和初始化動作。
HDF驅動框架主要包含三部分:
1、驅動程序部分----完成驅動的功能邏輯。
2、驅動配置信息----指示驅動的加載信息內(nèi)容。
3、驅動資源配置----配置驅動的硬件配置信息。
驅動程序主要是完成驅動功能的邏輯代碼:
對于開發(fā)者首先看到的是驅動入口部分,驅動入口通過結構體DriverEntry進行描述。
其中主要包含Bind, Init 和Release三個接口。
struct HdfDriverEntry g_deviceSample = {
.moduleVersion = 1,
.moduleName = "sample_driver",
.Bind = SampleDriverBind,
.Init = SampleDriverInit,
.Release = SampleDriverRelease,
};
Bind接口描述:該接口的作用主要是完成驅動設備和設備服務接口的bind動作。
int32_t SampleDriverBind(struct HdfDeviceObject *deviceObject)
{
return HDF_SUCCESS;
}
Init接口描述:當框架完成設備綁定動作后,就開始調用驅動初始化接口,初始化成功后,驅動框架根據(jù)配置文件決定是對外創(chuàng)建設備服務接口,還是接口只對當前服務可見。如果Init初始化失敗,驅動框架就會主動釋放創(chuàng)建的設備接口等信息。
int32_t SampleDriverInit(struct HdfDeviceObject *deviceObject)
{
return HDF_SUCCESS;
}
Release接口描述:當用戶需要卸載驅動時,驅動框架先通過該接口通知驅動程序釋放資源,然后再釋放其他內(nèi)部資源。
void SampleDriverRelease(struct HdfDeviceObject *deviceObject)
{
// Release all resources.
return;
}
Sensor框架模型說明
基于HDF(Hardware Driver Foundation)驅動框架的Sensor驅動模型,可實現(xiàn)跨操作系統(tǒng)遷移、器件差異配置等功能。
Sensor驅動模型主要由以下兩部分組成:
- 基礎能力部分:依賴HDF驅動框架實現(xiàn)Sensor器件驅動的注冊、加載、去注冊、器件探測等能力,提供同一類型Sensor器件的驅動歸一接口、寄存器配置解析操作接口、總線訪問抽象接口和平臺抽象接口。
- 開發(fā)者實現(xiàn)部分:依賴HDF驅動框架的HCS(HDF Configuration Source)配置管理,根據(jù)同類型Sensor差異化配置,實現(xiàn)Sensor器件參數(shù)序列化配置和器件部分操作接口。
Display框架模型說明
基于OpenHarmony驅動框架的Display驅動模型,對下屏蔽了芯片平臺差異,方便操作系統(tǒng)跨平臺遷移;向上抽象了外設驅動公共業(yè)務邏輯,通過配置或差異化適配接口,實現(xiàn)了一套驅動模型兼容不同的外設器件,使得三方廠商可以高效、便捷的切入鴻蒙驅動生態(tài)。
Display驅動模型主要由以下兩部分組成:
- 基礎能力部分:包括HDI(Hardware Driver Interfaces)接口的定義及實現(xiàn)框架,以及芯片平臺對HDI接口的適配實現(xiàn);內(nèi)核驅動部分抽象了Panel驅動的公共業(yè)務,提供了Panel初始化、器件配置信息獲取、上下電、背光設置等公共流程。
- 開發(fā)者實現(xiàn)部分:需要完成板級HCS配置及Panel私有數(shù)據(jù)配置,實現(xiàn)部分器件差異化接口。
Input框架模型說明
基于OpenHarmony驅動框架的Input驅動模型,不依賴于芯片平臺,對上層輸入服務提供統(tǒng)一的驅動接口;在具體的驅動模型實現(xiàn)中,針對不同類別的輸入設備,抽象出幾類公共的平臺驅動,通過配置及差異化的適配接口,使得驅動模型可兼容不同的輸入設備。借由此驅動模型,可大幅縮減Input設備驅動的開發(fā)周期。
Input驅動模型主要有以下兩部分組成:
- 基礎能力部分:包括Input HDI層的接口定義及公共實現(xiàn),對上層輸入服務提供設備管理、業(yè)務控制、數(shù)據(jù)上報等驅動能力接口;而Input驅動模型提供不同類型Input設備的歸一化驅動, 包括輸入設備的注冊和注銷、event數(shù)據(jù)的上報通道、配置信息的解析、公共驅動的加載等能力。
- 開發(fā)者實現(xiàn)部分:需根據(jù)驅動模型提供的平臺驅動,完成設備描述配置及器件私有配置,實現(xiàn)預留的器件差異化接口。
WLAN框架模型說明
基于OpenHarmony驅動框架的WLAN驅動模型,可實現(xiàn)跨操作系統(tǒng)遷移,自適應器件差異,模塊化拼裝編譯等功能。各WLAN廠商驅動開發(fā)人員可根據(jù)WLAN模塊提供的向下統(tǒng)一接口適配各自的驅動代碼,HDI層開發(fā)人員可根據(jù)WLAN模塊提供的向上統(tǒng)一接口獲取如下能力:建立/關閉WLAN熱點、掃描、關聯(lián)WLAN熱點等。
WLAN驅動模型主要有以下兩部分組成:
- 基礎能力部分:包括WLAN HDI層的接口定義及公共實現(xiàn),對上層輸入服務提供如設置MAC地址,獲取設備MAC地址,獲取特性類型,設置發(fā)射功率等能力;對驅動開發(fā)者提供創(chuàng)建/釋放WifiModule、關聯(lián)/取消關聯(lián)、申請/釋放NetBuf等能力。
- 開發(fā)者實現(xiàn)部分:需根據(jù)驅動模型提供的平臺驅動,完成板級的HCS配置及WLAN芯片的私有配置,實現(xiàn)預留的初始化/注銷網(wǎng)絡設備、打開/關閉網(wǎng)絡設備等相關接口。
審核編輯 黃宇
-
WLAN
+關注
關注
2文章
657瀏覽量
73085 -
Sensor
+關注
關注
0文章
134瀏覽量
49583 -
鴻蒙
+關注
關注
57文章
2339瀏覽量
42805 -
OpenHarmony
+關注
關注
25文章
3713瀏覽量
16254
發(fā)布評論請先 登錄
相關推薦
評論