Openharmony 添加内核驱动(L1)
source link: https://os.51cto.com/article/705085.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
此文章以openharmony 3.1代码基础
- 介绍liteos-a ipcamera_hispark_taurus上添加khdf步骤。
- 介绍驱动的简单调用(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板上测试。
驱动目录结构
驱动代码见附件。
驱动目录以外的文件配置
文件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.
}
}
}
驱动编译配置
从代码根目录切换到kernel/liteos_a/。
cd kernel/liteos_a/
执行make menuconfig。
选择driver。
选择framework support。
选择my_sample driver。
按q,保存退出。
驱动调用可执行程序
驱动调用代码。
驱动调用可执行程序详细代码见附件。
代码目录结构之外的文件配置
文件build\lite\components\myapp.json。
{
"components": [
{
"component": "myapp",
"description": "my app",
"optional": "false",
"dirs": [
"myapp"
],
"targets": [
"//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":[] }
]
}
编译环境参考:3516应用调用到驱动实践。
执行下面2条命令。
hb set
.
执行hb build -f。
烧录步骤参考:3516应用调用到驱动实践。
切换到/bin目录下执行:./my_sample_driver_test。
结果如图:
官网文档
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK