Openharmony 添加內(nèi)核驅(qū)動(dòng)(L1)
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
簡(jiǎn)介
此文章以openharmony 3.1代碼基礎(chǔ)
- 介紹liteos-a ipcamera_hispark_taurus上添加khdf步驟。
- 介紹驅(qū)動(dòng)的簡(jiǎn)單調(diào)用(3516開(kāi)發(fā)板:HiSpark_AI_Hi3516D_One_Light_VER.B開(kāi)發(fā)板上測(cè)試。
驅(qū)動(dòng)添加
驅(qū)動(dòng)目錄結(jié)構(gòu)
驅(qū)動(dòng)代碼見(jiàn)附件。
驅(qū)動(dòng)目錄以外的文件配置
文件drivers\adapter\khdf\liteos\hdf_lite.mk。
# my sample test
ifeq ($(LOSCFG_DRIVERS_HDF_MY_SAMPLE_DRIVER), y)
LITEOS_BASELIB += -lmy_sample_driver
LIB_SUBDIRS += $(LITEOS_DRIVERS_HDF)/my_sample_driver
endif
文件drivers\adapter\khdf\liteos\Kconfig。
source "../../drivers/adapter/khdf/liteos/my_sample_driver/Kconfig"
文件drivers\adapter\khdf\liteos\BUILD.gn。
文件vendor\hisilicon\hispark_taurus\hdf_config\device_info\device_info.hcs。
my_sample :: host {
hostName = "my_sample_host";
device_mysample :: device {
device0 :: deviceNode { // DeviceNode of the sample driver
policy = 2; // Driver service release policy. For details, see section Driver Service Management.
priority= 10; // Driver startup priority (0-200). A larger value indicates a lower priority. The default value 100 is recommended. If the priorities are the same, the device loading sequence is random.
preload = 0; // On-demand loading of the driver. For details, see "NOTE" at the end of this section.
permission = 0664; // Permission for the driver to create device nodes.
moduleName = "my_sample_driver"; // Driver name. The value of this field must be the same as the value of moduleName in the driver entry structure.
serviceName = "my_sample_service"; // Name of the service released by the driver. The name must be unique.
}
}
}
驅(qū)動(dòng)編譯配置
從代碼根目錄切換到kernel/liteos_a/。
cd kernel/liteos_a/
執(zhí)行make menuconfig。
選擇driver。
選擇framework support。
選擇my_sample driver。
按q,保存退出。
驅(qū)動(dòng)調(diào)用可執(zhí)行程序
目錄結(jié)構(gòu)
驅(qū)動(dòng)調(diào)用代碼。
驅(qū)動(dòng)調(diào)用可執(zhí)行程序詳細(xì)代碼見(jiàn)附件。
代碼目錄結(jié)構(gòu)之外的文件配置
文件build\lite\components\myapp.json。
{
"components": [
{
"component": "myapp",
"description": "my app",
"optional": "false",
"dirs": [
"myapp"
],
"targets": [
"http://myapp:myapp"
],
"rom": "",
"ram": "",
"output": [
],
"adapted_kernel": [
"liteos_a",
"liteos_m"
],
"features": [],
"deps": {
"third_party": [
"bounds_checking_function"
],
"components": []
}
}
]
}
文件vendor\hisilicon\hispark_taurus\config.json。
{
"subsystem": "myapp",
"components": [
{ "component": "myapp", "features":[] }
]
}
編譯
編譯環(huán)境參考:??3516應(yīng)用調(diào)用到驅(qū)動(dòng)實(shí)踐??。
執(zhí)行下面2條命令。
hb set
.
執(zhí)行hb build -f。
燒錄測(cè)試
燒錄步驟參考:??3516應(yīng)用調(diào)用到驅(qū)動(dòng)實(shí)踐??。
切換到/bin目錄下執(zhí)行:./my_sample_driver_test。
結(jié)果如圖:
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??