在三方内核的drivers/staging/Makefile文件内增加如下代码:

obj-$(CONFIG_HILOG)             += hilog/
obj-$(CONFIG_HIEVENT)           += hievent/
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

在内核config项中打开对应的CONFIG控制宏:CONFIG_HILOG和CONFIG_HIEVENT。

具体日志使用说明请参见:Hilog_lite组件介绍。

移植内核态必选特性HDF

  1. 打HDF补丁。 在Linux内核打HDF补丁时,执行补丁shell脚本合入HDF补丁。
    1. 配置HDF补丁脚本的四个变量参数。
    2. 获取patch_hdf.sh脚本。
    3. 执行patch_hdf.sh脚本依次传入四个变量参数。

patch_hdf.sh脚本四个参数含义为:第一个入参为工程根目录路径,第二入参为内核目录路径,第三个入参为内核版本路径,第四个参数是当前设备名。

    ./patch_hdf.sh [工程根目录路径] [内核目录路径] [内核补丁路径] [设备名]
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

以树莓派3b为示例介绍:

    # 进入树莓派kernel目录
    PROJ_ROOT/drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh \
    PROJ_ROOT  # 指定工程根目录路径 \
    PROJ_ROOT/out/KERNEL_OBJ/kernel/src_tmp/linux-rpi3b  # 打补丁的内核目录路径 \
    PROJ_ROOT/kernel/linux/patches/linux-4.19 # 内核补丁路径.\
    hi3516dv300 # 设备名.
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 配置config。 提供HDF基本配置,如果需要其他功能,通过menuconfig打开对应驱动开关即可。

HDF补丁执行成功后,默认HDF开关是关闭的,打开HDF基本配置选项如下:

    CONFIG_DRIVERS_HDF=y
    CONFIG_HDF_SUPPORT_LEVEL=2
    CONFIG_DRIVERS_HDF_PLATFORM=y
    CONFIG_DRIVERS_HDF_PLATFORM_MIPI_DSI=y
    CONFIG_DRIVERS_HDF_PLATFORM_GPIO=y
    CONFIG_DRIVERS_HDF_PLATFORM_I2C=y
    CONFIG_DRIVERS_HDF_PLATFORM_UART=y
    CONFIG_DRIVERS_HDF_TEST=y
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

或者通过menuconfig界面打开HDF相关配置,命令如下:

    # 生成 .config 配置文件
    make ${MAKE_OPTIONS} rpi3b_oh_defconfig

    # 更改HDF内核配置
    make ${MAKE_OPTIONS} menuconfig
    # [*] Device Drivers
    # [*]   HDF driver framework support --->
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

配置如下(在Device Drivers -> HDF driver framework support 目录下):

编译Image

# 执行编译命令
make ${MAKE_OPTIONS} -j33 zImage
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

编译和运行HDF测试用例(可选)

简介

HDF(Hardware Driver Foundation)自测试用例,用于测试HDF框架和外设的基本功能,本文主要介绍HDF内核态用例测试方法。

预置条件

测试前需要在menuconfig里检查HDF测试开关CONFIG_DRIVERS_HDF_TEST=y,代码全量编译通过。

用例编译和测试方法

通过 hdc_std工具 把用例执行文件推送到设备中,然后执行用例即可,操作步骤如下:

  1. 编译hdf测试用例。
  2. 用hdc_std工具推送测试文件到设备中。
  3. 进入设备data/test目录,执行测试文件即可。

用例编译和测试详细步骤如下:

  1. 编译hdf测试用例。 编译hdf测试用例命令和文件路径如下:
    ./build.sh --product-name hispark_taurus_standard --build-target hdf_test
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

等待编译完成。

  1. 将测试文件移动到目标移植设备上(以树莓派为例)。

方法一:使用 hdc_std工具。

  1. 先在树莓派里新建data/test目录。
        mkdir -p data/test
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 推送依赖库和测试用例到树莓派。
        hdc file send XXX\out\{device_name}\hdf\hdf\libhdf_test_common.z.so  /system/lib
        hdc file send XXX\out\{device_name}\tests\unittest\hdf\config\hdf_adapter_uhdf_test_config  /data/test
        hdc file send XXX\out\{device_name}\tests\unittest\hdf\devmgr\DevMgrTest  /data/test
        hdc file send XXX\out\{device_name}\tests\unittest\hdf\osal\OsalTest  /data/test
        hdc file send XXX\out\{device_name}\tests\unittest\hdf\sbuf\SbufTest  /data/test
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

方法二:移动到储存卡内,启动树莓派之后装载。

  1. 拔掉树莓派连接电脑的串口、USB线,然后拔下数据卡。
  2. 将数据卡插入到电脑的读取口,将编译好的zImage和测试文件夹test/下载到电脑,然后移动到数据卡的根目录下。zImage文件会被替换,请提前做好备份。
  3. 最后将数据卡插回树莓派。
        # 让树莓派文件系统读取储存卡根目录
        mount -t vfat /dev/block/mmcblk0p1 /boot
        cd /boot/[测试文件目录]
        # 允许修改系统文件
        mount -o remount,rw /
        # 安装测试用库
        mv libhdf_test_common.z.so /system/lib
        mkdir /data/test
        mv * /data/test
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 执行测试

    1. 进入目录执行测试文件目录data/test。
        cd /data/test
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 修改文件执行权限。
        chmod 777 hdf_adapter_uhdf_test_config DevMgrTest OsalTest SbufTest
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 开始测试。
        ./hdf_adapter_uhdf_test_config
        ./DevMgrTest
        ./OsalTest
        ./SbufTest
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 如果所有测试文件输出均显示 PASSED,那么HDF功能即安装成功。 示例:DevMgrTest用例成功结果显示:
       ./DevMgrTest
       Running main() from gmock_main.cc
       [==========] Running 1 test from 1 test case.
       [----------] Global test environment set-up.
       [----------] 1 test from DevMgrTest
       [ RUN      ] DevMgrTest.DriverLoaderTest_001
       [       OK ] DevMgrTest.DriverLoaderTest_001 (0 ms)
       [----------] 1 test from DevMgrTest (0 ms total)
       [----------] Global test environment tear-down
       Gtest xml output finished
       [==========] 1 test from 1 test case ran. (0 ms total)
       [  PASSED  ] 1 test.
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

如果大家想更加深入的学习 OpenHarmony(鸿蒙南向) 开发的全栈内容,不妨可以参考以下相关学习文档进行学习,助你快速提升自己:

OpenHarmony 开发环境搭建:https://qr18.cn/CgxrRy

《OpenHarmony源码解析》:https://qr18.cn/CgxrRy

系统架构分析:https://qr18.cn/CgxrRy

OpenHarmony 设备开发学习手册:https://qr18.cn/CgxrRy

在这里插入图片描述

OpenHarmony面试题(内含参考答案):https://qr18.cn/CgxrRy

写在最后

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/maniuT/article/details/140833408","extend1":"pc","ab":"new"}">> id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"> class="blog_extension blog_extension_type2" id="blog_extension"> class="extension_official" data-report-click="{"spm":"1001.2101.3001.6471"}" data-report-view="{"spm":"1001.2101.3001.6471"}"> class="blog_extension_card_left"> class="blog_extension_card_cont"> 鸿蒙开发学习资料领取!!! class="blog_extension_card_cont_r"> 微信名片
注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/95809439"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!