鸿蒙的驱动子系统-2-小型系统驱动示例程序的编译和验证-鸿蒙开发者社区-51CTO.COM

鸿蒙的驱动子系统-2-小型系统驱动示例程序的编译和验证 原创 精华

liangkz_梁开祝
发布于 2021-8-9 12:34
浏览
3收藏

鸿蒙的驱动子系统-2

小型系统驱动示例程序的编译和验证

liangkz 2021.08.09

注:本篇开始切入小型系统的驱动子系统的学习分析。

 

小型系统的驱动开发示例程序位于 //vendor/huawei/hdf/sample/ 目录下,有三类设备驱动示例程序:SPI/I2C/UART。

以UART为例,可将示驱动程序分为三部分:

1. 设备树的描述文件及驱动的配置描述文件(.hcs)【下表浅红色标记部分】

2. 驱动程序的内核空间部分的实现和编译脚本【下表浅蓝色标记部分】

3. 驱动程序的用户空间部分的实现和编译脚本【下表浅绿色标记部分】

鸿蒙的驱动子系统-2-小型系统驱动示例程序的编译和验证-鸿蒙开发者社区

下面我们先简单介绍一下如何把上面三个部分编译出来并运行和查看效果:

【3-1】打开 B_LTS/vendor/hisilicon/hispark_taurus/config/hdf.hcs 文件,在#include部分添加两句

#include "../../../../vendor/huawei/hdf/sample/config/uart/uart_config.hcs"
#include "../../../../vendor/huawei/hdf/sample/config/device_info/device_info.hcs"

让示例程序的hcs文件参与编译。

 

【3-2】打开 B_LTS/device/hisilicon/drivers/lite.mk 文件,在该文件的最末尾添加两句

LITEOS_BASELIB += -lhdf_uart_sample
LIB_SUBDIRS    += $(LITEOSTOPDIR)/../../vendor/huawei/hdf/sample/platform/uart

让uart驱动示例程序的内核空间实现部分代码参与编译。

 

【3-3】打开 B_LTS/build/lite/components/drivers.json 文件,找到"component": "adapter_uhdf",部分,在"targets":字段添加

 "//vendor/huawei/hdf/sample/platform/uart:hello_uart_sample"

注意格式!让uart驱动示例程序的用户空间实现部分代码参与编译。

 

 

在烧录上面编译出来的bin到开发板之前,可以先看看平台的当前状况:

OHOS #ls dev

查看uartdev部分,只有uartdev_0/1/2/3 四个设备节点。

OHOS #ls bin

查看,是没有hello_uart_dispatch和hello_uart的。

将上面编译出来的bin烧录到开发板上,再通过上面两个指令,可以看到有uartdev-5设备节点以及hello_uart_dispatch和hello_uart两个应用程序。

OHOS #./bin/hello_uart

可见打印出“HELLO UART!

OHOS #./bin/hello_uart_dispatch

可见打印出“dispatch||HELLO UART!

 

以上可以确认uart的驱动示例程序已经正常工作了。

接下来,我们将以上面的驱动示例程序为例,详细分析上面三个部分的工作细节。

 

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2021-8-9 12:34:31修改
3
收藏 3
回复
举报
回复
    相关推荐