当前位置: 首页 > wzjs >正文

网站建设与管理课程设计论文番禺网站建设优化推广

网站建设与管理课程设计论文,番禺网站建设优化推广,wordpress 优秀主题,做动态头像的网站Sensor 驱动开发 1.1 概述 Sensor 是较为常见的输入设备,用于感知环境状态,从而实现相应的响应。相较于原始的 Linux 驱动模式,KaihongOS 在 HDF(Hardware Driver Foundation)层实现 Sensor 的驱动。这种实现方式能够…

Sensor 驱动开发

1.1 概述

Sensor 是较为常见的输入设备,用于感知环境状态,从而实现相应的响应。相较于原始的 Linux 驱动模式,KaihongOS 在 HDF(Hardware Driver Foundation)层实现 Sensor 的驱动。这种实现方式能够实现一次开发,支持在不同的内核环境部署,比如轻量级系统、小系统或者标准 Linux 系统。此外,在 HDF 框架中,对于不同的驱动能够实现统一管理,每一个驱动都对外能够提供服务,对应用层来说,只需调用 HDI(Hardware Device Interface)接口即可获取驱动服务的能力。

1.2 Sensor 驱动模型

OpenHarmony 中基于 HDF 驱动框架的 Sensor 驱动模型如下图:

img

​ 图 1-1 Sensor 驱动模型

Sensor 驱动模型屏蔽硬件器件差异,为上层 Sensor 服务系统提供稳定的 Sensor 基础能力接口,包括 Sensor 列表查询、Sensor 启停、Sensor 订阅及取消订阅、Sensor 参数配置等功能。Sensor 设备驱动的开发是在 HDF 驱动框架基础上,结合操作系统抽象层(OSAL,Operating System Abstraction Layer)和平台驱动接口(比如 I2C/SPI/UART 总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现 Sensor 驱动“一次开发,多系统部署”的目标。

如图 1-1 所示,OpenHarmony 中 Sensor 驱动模型的分为以下层级:

  • Hardware:此层决定了 Sensor 设备与 CPU 是如何连接的,外设使用何种方式(比如 I2C、SPI、GPIO 等)进行通讯等等。
  • Driver:该层实现硬件外设驱动,包括 HdfDriverEntry 中的 bind Init、realese 函数,以及数据 OpsCall 里面的 ReadData。
  • HDI:接口定义与实现。接口主要包括所有 Sensor 信息查询、Sensor 启停、Sensor 订阅/取消订阅、Sensor 参数配置等稳定的接口,简化服务开发。
  • Framework:上层 Sensor 服务。

1.3 HCS 配置

对于不同的平台,需要在对应的平台目录修改对应的 hcs 文件,下面示例为 khdvk_rk3568_a 平台下新增 sensor 模块的修改方法。

1.3.1 配置 device_info.hcs

文件路径

vendor/kaihong/khdvk_rk3568_a/hdf_config/khdf/device_info/device_info.hcs

配置说明

在 device_info.hcs 中添加以下信息:

img

​ 图 1-2 配置 device_info.hcs

主要字段说明如下:

  • policy:服务策略。取值“0”表示不发布服务,取值“1”表示向内核态发布服务,取值“2”表示向内核用户态发布服务。
  • moduleName:与驱动实现的 HdfDriverEntry 结构体中的 moduleName 相同。
  • deviceMatchAttr:驱动的私有配置信息。
  • serviceName:服务名称,最终会在/dev/节点下生成 serviceName 的节点(生成节点的前提条件是 policy 配置为大于等于 1)。

1.3.2 配置 sensor_config.hcs

文件路径

vendor/kaihong/khdvk_rk3568_a/hdf_config/khdf/sensor/sensor_config.hcs

配置说明

在 sensor_config.hcs 中添加如下内容:

#include "accel/bmi160_config.hcs"

1.3.3 配置 bmi160_config.hcs

文件路径

vendor/kaihong/khdvk_rk3568_a/hdf_config/khdf/sensor/accel/bmi160_config.hcs

配置说明

新增文件夹 accel,并新建文件 bmi160_config.hcs,文件内容如下:

#include "../sensor_common.hcs"
root {accel_bmi160_chip_config : sensorConfig {match_attr = "hdf_sensor_accel_driver";sensorInfo :: sensorDeviceInfo {sensorName = "accelerometer";vendorName = "borsh_bmi160"; // max string length is 16 bytessensorTypeId = 1; // enum SensorTypeTagsensorId = 1; // user define sensor idpower = 230;}sensorBusConfig :: sensorBusInfo {busType = 0; // 0:i2c 1:spibusNum = 6;busAddr = 0x68;regWidth = 1; // 1byte}sensorIdAttr :: sensorIdInfo {chipName = "bmi160";chipIdRegister = 0x00;chipIdValue = 0xd1;}sensorRegConfig {/*  regAddr: register addressvalue: config register valuelen: size of valuemask: mask of valuedelay: config register delay time (ms)opsType: enum SensorOpsType 0-none 1-read 2-write 3-read_check 4-update_bitcalType: enum SensorBitCalType 0-none 1-set 2-revert 3-xor 4-left shift 5-right shiftshiftNum: shift bitsdebug: 0-no debug 1-debugsave: 0-no save 1-save*//* regAddr, value, mask, len, delay, opsType, calType, shiftNum, debug, save */initSeqConfig = [0x7e,    0xb6, 0xff,   1,     5,       2,       0,        0,     0,    0,0x7e,    0x10, 0xff,   1,     5,       2,       0,        0,     0,    0];enableSeqConfig = [0x7e,    0x11, 0xff,   1,     5,       2,       0,        0,     0,    0,0x41,    0x03, 0xff,   1,     0,       2,       0,        0,     0,    0,0x40,    0x08, 0xff,   1,     0,       2,       0,        0,     0,    0];disableSeqConfig = [0x7e,    0x10, 0xff,   1,     5,       2,       0,        0,     0,    0];}}
}

注意根据实际情况修改以上加粗内容的配置。

1.4 编译选项修改

  1. 在 drivers/hdf_core/adapter/khdf/linux/model/sensor/Kconfig 中添加以下内容:
config DRIVERS_HDF_SENSOR_ACCEL_BMI160bool "Enable HDF accel bmi160 sensor driver"default ndepends on DRIVERS_HDF_SENSOR_ACCELhelpAnswer Y to enable HDF accel bmi160 sensor driver.
  1. 在 drivers/hdf_core/adapter/khdf/linux/model/sensor/Makefile 中添加以下内容:
obj-$(CONFIG_DRIVERS_HDF_SENSOR_ACCEL_BMI160) += $(SENSOR_ROOT_CHIPSET)/chipset/accel/accel_bmi160.o

添加后如下图所示:

img

​ 图 1-3 修改 Makefile

对应的驱动实现文件如下:

drivers/peripheral/sensor/chipset/accel/accel_bmi160.cdrivers/peripheral/sensor/chipset/accel/accel_bmi160.h
  1. 内核 defconfig 配置

device/board/kaihong/khdvk_rk3568_a/kernel/config/khdvk_rk3568_a/khdvk_rk3568_a_defconfig

文件中添加以下内容:

CONFIG_DRIVERS_HDF_SENSOR=yCONFIG_DRIVERS_HDF_SENSOR_ACCEL=yCONFIG_DRIVERS_HDF_SENSOR_ACCEL_BMI160=y

1.5 应用代码目录说明

Sensor 驱动对外服务的接口实现均在 drivers/peripheral/sensor 路径下,该目录对应的功能说明如下:

/drivers/peripheral/sensor├── hal         # sensor模块hal层代码│  └── include    # sensor模块hal层内部头文件│  └── src      # sensor模块hal层代码的实现├── interfaces     # sensor模块对上层服务提供的驱动能力接口│  └── include    # sensor模块对外提供的接口定义├── hdi_service    # sensor模块hdi层代码├── test        # sensor模块测试代码│  └── unittest    # sensor模块单元测试代码

1.6 常见问题处理

  1. 确认 HCS 配置的准确性,包括 I2C 总线、Sensor 寄存器初始化、Sensor 使能等信息。
  2. 确认是否修改了编译选项,使其正常编译进去。
  3. 若应用使能不上,确认模块是否要配置权限,以及是否要 touch hdf.hcs 更改时间戳。

如果 khdf 存在缓存被刷的情况,查看打印建议使用 printk 函数。


文章转载自:

http://WXQLim9I.yLxgw.cn
http://gfsZPDbv.yLxgw.cn
http://FXMscpWh.yLxgw.cn
http://u7DevYyS.yLxgw.cn
http://nGLmxcn0.yLxgw.cn
http://kvk258Kr.yLxgw.cn
http://tVIuJ4fR.yLxgw.cn
http://kd0xEZSo.yLxgw.cn
http://M5eJgJBq.yLxgw.cn
http://GfXhELUU.yLxgw.cn
http://XHXHFotb.yLxgw.cn
http://0FwLSRJA.yLxgw.cn
http://s3VgMg2c.yLxgw.cn
http://dezu0ZWF.yLxgw.cn
http://U3D7OeIT.yLxgw.cn
http://qmjzfFxS.yLxgw.cn
http://x8iuggP9.yLxgw.cn
http://CeQ5HRkP.yLxgw.cn
http://YUjPskfK.yLxgw.cn
http://W3wfqA7f.yLxgw.cn
http://MRIoan8b.yLxgw.cn
http://b5lBhxkX.yLxgw.cn
http://gdxPInFt.yLxgw.cn
http://jzUJpCdY.yLxgw.cn
http://AcATwcrx.yLxgw.cn
http://UF0GY5Zd.yLxgw.cn
http://0Qj9aZ9G.yLxgw.cn
http://yVDqsY1F.yLxgw.cn
http://4uWAa6f5.yLxgw.cn
http://R0iAoRob.yLxgw.cn
http://www.dtcms.com/wzjs/763185.html

相关文章:

  • 免费空间asp网站北京最新消息情况今天
  • 网站营销公司小狗做爰网站
  • wordpress 自动采集插件北京网站seo排名
  • 支付宝手机网站23短视频平台
  • 网站顶部悬浮导航代码外贸跟单的流程
  • 馆陶网站镇江久一信息技术有限公司
  • 喊别人做的网站不肯给代码seo搜索优化
  • 厦门网站建设公司排名ui设计
  • 广州专业网站制作设计渭南做网站哪家好
  • 可以做调查的网站商城推广软文范文
  • 网站开发与维护实训总结天津 网站建设
  • 如何用天地图做网站粉色系 wordpress
  • 网站制作报价明细表制作ppt的软件手机版
  • 谢馥春网站建设的优势做58推广网站找哪家好
  • 带后台的免费网站模板东莞银行
  • 网站做接口怎么做做暖暖视频网站观看
  • 如何让网站给百度收录网站权限分配 数据库实现
  • 艺术家网站源码公司注册地址规定
  • 接单做公司网站站群邯郸市内最新招聘信息
  • 教育网站都有哪些网站设计与制作的基本步骤
  • 网站建设代理怎么做网站制作公司徐州
  • 部门门户网站建设请示企业做网站价格
  • 网站纯色背景图怎么做网络营销方法选择
  • 免费网站app产品网站建设建议
  • 一级站点和二级站点区别在百度上怎么建立网站吗
  • 网网站开发站制作公司wordpress充值中心
  • 苏州行业网站建设服务eclipse网站开发流程
  • 网站小程序制作公司申请网站做自己的产品
  • 唐山网站建设外包公司哪家好国际军事最新军事新闻
  • 那些公司需要网站开发工程师自己有域名怎么做免费网站