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

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驱动移植

一、环境介绍

RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。

二、芯片介绍

LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很强大的(感兴趣的可以去看数据手册)。该芯片原厂公开了input和iio两种驱动,我这边选用的是iio驱动。

三、驱动移植

驱动移植的目标是内核,所以下面的路径都是在kernel目录下。

源码链接:https://github.com/STMicroelectronics/STMems_Linux_IIO_drivers/tree/linux-4.19.y-gh

1,拷贝drivers/iio/imu/st_lsm6dsr文件夹到源码内核中相应路径

2,在 drivers/iio/imu/Kconfig中添加驱动支持,如果源码中有自带的st_lsm6dsx驱动的话,需要在对应的代码前加#注释掉,以免影响移植的驱动。

source "drivers/iio/imu/st_lsm6dsr/Kconfig"

3,在drivers/iio/imu/Makefile中添加驱动编译,如果源码中有自带的st_lsm6dsx驱动的话,需要在对应的代码前加#注释掉,以免影响移植的驱动。

obj-y += st_lsm6dsr/

4,在 include/uapi/linux/iio/types.h种增加枚举值(找到对应enum,查找下下面的值是否有缺,增加缺失的即可)

     enum iio_event_type {IIO_EV_TYPE_THRESH_ADAPTIVE,IIO_EV_TYPE_MAG_ADAPTIVE,IIO_EV_TYPE_CHANGE,IIO_EV_TYPE_FIFO_FLUSH,};enum iio_event_direction {IIO_EV_DIR_RISING,IIO_EV_DIR_FALLING,IIO_EV_DIR_NONE,IIO_EV_DIR_FIFO_EMPTY,IIO_EV_DIR_FIFO_DATA,};

5,在include/uapi/linux/iio/types.h中增加枚举值

     enum iio_chan_type {IIO_ELECTRICALCONDUCTIVITY,IIO_COUNT,IIO_INDEX,IIO_SIGN_MOTION,IIO_STEP_DETECTOR,IIO_STEP_COUNTER,IIO_TILT,IIO_TAP,IIO_TAP_TAP,IIO_WRIST_TILT_GESTURE,IIO_GESTURE,IIO_WKUP,IIO_FREE_FALL,IIO_GRAVITY,};

6,在arch/arm64/boot/dts/rockchip/rd-rk3588.dts中增加设备树支持

&i2c1 {#总线名称需根据自身情况修改status = "okay";st_lsm6dsr: lsm6dsr@6b {compatible = "st,lsm6dsr";reg = <0x6b>;interrupt-parent = <&gpio3>;#需根据自身情况修改interrupts = <RK_PC3 IRQ_TYPE_LEVEL_HIGH>;#需根据自身情况修改};
}

7,进入到源码根目录执行指令“./build.sh menuconfig”后配置增加芯片支持(也可以直接编译,然后根据提示输入Y就行)

  Device Drivers  ---><M> Industrial I/O support  --->Inertial measurement units  ---><M>   STMicroelectronics LSM6DSM/LSM6DSL sensor  --->

8,修改取时间调用接口

【android12-linux-5.1】【ST芯片】驱动移植后编译不通过__花花的博客-CSDN博客

9,增加iio驱动名称定义

【android12-linux-5.1】【ST芯片】驱动移植后编译不通过__花花的博客-CSDN博客

10,编译烧录后查看设备情况

1)“adb shell” 指令进入设备

相关文章:

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驱动移植

一、环境介绍 RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。 二、芯片介绍 LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很…...

day-41 代码随想录算法训练营(19)动态规划 part 03

343.整数拆分 思路&#xff1a; 1.dp存储的是第i个数&#xff0c;拆分之后最大乘积2.dp[i]max(dp[i],max(j*(i-j),j*dp[i-j]));3.初始化&#xff1a;dp[0]dp[1]0,dp[2]1;4.遍历顺序&#xff1a;外层循环 3-n&#xff0c;内层循环 1-i 2.涉及两次取max&#xff1a; dp[i] 表…...

K8S安装部署 初始化操作(一)

准备好服务器和服务器资源 ip hostnameip资源 &#xff08;2核2G也可以&#xff09;k8s-master 192.168.37.1184核 4G 40G硬盘k8s-node1192.168.37.1192核 2G 20G硬盘k8s-node2192.168.37.1202核 2G 20G硬盘 初始操作三台同时执行 1、关闭防火墙 [rootlocalhost ~]# s…...

【多线程案例】单例模式(懒汉模式和饿汉模式)

文章目录 1. 什么是单例模式&#xff1f;2. 立即加载/“饿汉模式”3. 延时加载/“懒汉模式”3.1 第一版3.2 第二版3.3 第三版3.4 第四版 1. 什么是单例模式&#xff1f; 提起单例模式&#xff0c;就必须介绍设计模式&#xff0c;而设计模式就是在软件设计中&#xff0c;针对特殊…...

Anaconda - 操作系统安装程序 简要介绍

Anaconda 简要介绍 1. Anaconda 简介2. Anaconda 体系结构3. Anaconda 开发模型4. Anaconda 启动概述5. Anaconda 源码1. 接口2. 自定义组件3. 硬盘分区&#xff1a;使用python-blivet包4. Bootloader5. 各个步骤的配置&#xff1a;6. 安装软件包&#xff1a;7. 安装控制&#…...

【数据库设计】向量搜索HNSW算法优化

做向量存储的过程中&#xff0c;遇到向量搜索的情况处理&#xff0c;HNSW算法是目前向量搜索的主要算法之一&#xff0c;采用的是图算法&#xff0c;主要的问题是使用内存大&#xff0c;训练时间长。做算法优化过程中获得部分技巧&#xff0c;分享出来。 一、算法本身的优化 对…...

多通道振弦数据记录仪应用桥梁安全监测的关键要点

多通道振弦数据记录仪应用桥梁安全监测的关键要点 随着近年来桥梁建设和维护的不断推进&#xff0c;桥梁安全监测越来越成为公共关注的焦点。多通道振弦数据记录仪因其高效、准确的数据采集和处理能力&#xff0c;已经成为桥梁安全监测中不可或缺的设备。本文将从以下几个方面…...

深入了解HTTP代理的工作原理

HTTP代理是一种常见的网络代理方式&#xff0c;它可以帮助用户隐藏自己的IP地址&#xff0c;保护个人隐私和安全。了解HTTP代理的工作原理对于使用HTTP代理的用户来说非常重要。本文将深入介绍HTTP代理的工作原理。 代理服务器的作用 HTTP代理的工作原理基于代理服务器的作用。…...

2023年高教社杯数学建模国赛选题人数+C题进阶版修改思路详解

C题思路 修改版 C题保奖 数据预处理 3σ原则 区间判断法、人为判定 问题 1 聚类分析进行简单的分类 相互关系 数据服从正态分布&#xff08;K-S检验等判定分布类型后&#xff09; 才能做person相关性 图表结合&#xff08;热力图、数据结果表&#xff09; 分布规律 宏…...

第三章微服务配置中心

文章目录 Nacos配置中心统一配置管理在nacos中添加配置文件从微服务拉取配置 配置热更新多环境共享配置 搭建Nacos集群搭建集群初始化数据库配置Nacos启动nginx反向代理 Nacos配置中心 Nacos配置管理 Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 统一配置…...

箭头函数(arrow function)与普通函数之间的区别是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 语法简洁性&#xff1a;⭐ this 的绑定&#xff1a;⭐ 不能用作构造函数&#xff1a;⭐ 没有 arguments 对象&#xff1a;⭐ 不适用于方法&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上…...

JMeter 4.0 如何获取cookie

文章目录 前言JMeter 4.0 如何获取cookie1. 修改jmeter.properties 文件2. 添加HTTP Cookie 管理器3. 获取cookie信息 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天…...

【数字IC/FPGA】Verilog中的force和release

在Verilog中&#xff0c;将force用于variable会覆盖掉过程赋值&#xff0c;或者assign引导的连续&#xff08;procedural assign&#xff09;赋值&#xff0c;直到release。 下面通过一个简单的例子展示其用法&#xff1a; 加法器代码 module adder ( input logic [31:0] a, …...

进阶C语言-指针的进阶(上)

指针的进阶 &#x1f4d6;1.字符指针&#x1f4d6;2.指针数组&#x1f4d6;3.数组指针&#x1f388;3.1 数组指针的定义&#x1f388;3.2 &数组名VS数组名&#x1f388;3.3 数组指针的使用 &#x1f4d6;4.数组参数、指针参数&#x1f388;4.1一维数组传参&#x1f388;4.2…...

初始化一个 vite + vue 项目

创建项目 首先使用以下命令创建一个vite项目 npm create vite然后根据提示命令 cd 到刚创建的项目目录下&#xff0c;使用npm install安装所需要的依赖包&#xff0c;再使用npm run dev即可启动项目 配置 vite.config.js 添加process.env配置&#xff0c;如果下面 vue-route…...

关于B+树

在数据库管理系统中&#xff0c;使用b树作为索引的数据结构&#xff0c;相比于B树和二叉树&#xff0c;有以下几个好处&#xff1a; b树的非叶子节点只存储关键字和指针&#xff0c;不存储数据&#xff0c;这样可以增加每个节点的关键字数量&#xff0c;降低树的高度&#xff…...

axios 请求和响应拦截器

1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 const $http axios.create({timeout: 1000,headers: {Content-Type: application/json,} })2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们&#xff0c;拦截分为请求拦截和响应拦截。 //…...

Element-ui select远程搜索

template部分: <el-form-item label"用户" prop"userId"><el-selectv-model"temp.userId"placeholder"用户"filterableremote:reserve-keyword"false":remote-method"remoteMethod":loading"loadi…...

【Express.js】Docker部署

Docker部署 本节我们来介绍如何使用 Docker 部署 express 应用 准备工作 linux 系统安装好 Docker一个基础的 evp-express-cli 项目&#xff0c;选上 pkg 工具包Docker 的详细用法本文不做介绍&#xff0c;请先自行查阅了解 在 Docker 中部署源码 一个很简单的部署方法就是…...

面试2:通用能力

15丨如何做好开场&#xff1a;给自我介绍加“特效 第一层&#xff0c;满足面试官对信息的期待 这是对自我介绍的基本要求&#xff0c;把个人信息、主要经历、经验和技能有条理地组织起来&#xff0c; 有逻辑地讲出来。需要找出多段经历的关联性和发展变化&#xff0c;形成连…...

Python语法进阶篇 --- 单例模式、魔法方法

Python语法进阶篇 --- 单例模式、魔法方法前置补充内容单例模式魔法方法&#x1f439;&#x1f439;&#x1f439;&#x1f439;&#x1f439;一只正在努力学习计算机技术的小仓鼠&#x1f439;&#x1f439;&#x1f439;&#x1f439;&#x1f439; 前置补充内容 一个对象的实…...

STM32WLE5CCU6 LoRaWAN节点实战:用AT指令连接TTN服务器并收发数据

STM32WLE5CCU6 LoRaWAN节点实战&#xff1a;从硬件配置到TTN云端交互全解析 在物联网设备爆炸式增长的今天&#xff0c;低功耗广域网络(LPWAN)技术正成为连接海量终端的关键基础设施。作为LPWAN的代表性技术之一&#xff0c;LoRaWAN以其超长传输距离和极低功耗特性&#xff0c;…...

重磅!国家首部NAD⁺抗衰共识发布,这11条建议必读!

2026年4月&#xff0c;国内首个《NAD⁺在衰老相关疾病中的作用及临床应用中国专家共识&#xff08;2026版&#xff09;》正式发布&#xff01;这份由中华医学会老年医学分会牵头、汇聚全国衰老医学、代谢病、心血管病及神经病学等领域权威专家共同制定的国家级共识&#xff0c;…...

GPT-Image-2 老是生成失败?完整排查和修复指南,5 个真根因逐个击破

GPT-Image-2 老是生成失败&#xff1f;完整排查和修复指南&#xff0c;5 个真根因逐个击破GPT-Image-2 的处理时间比文字模型长很多——高质量 1024px 需要 145-280 秒。大多数所谓的"生成失败"其实不是模型问题&#xff0c;而是网络链路&#xff08;CDN、反代、SDK&…...

别再问STM32哪个型号有DAC了!一张图看懂F1/F4/L1系列DAC配置差异与选型避坑

STM32全系列DAC选型指南&#xff1a;从F1到L1的深度对比与实战避坑 当你的项目需要精确模拟输出时&#xff0c;STM32的DAC功能往往成为关键选择因素。但面对ST公司庞大的产品线&#xff0c;即使是经验丰富的工程师也常陷入选型困惑——为什么同系列不同封装的芯片DAC配置不同&a…...

AI编程助手规则库实战:从通用到专用的效率跃迁

1. 项目概述&#xff1a;当你的光标有了“规矩”最近在逛GitHub的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“awesome-cursorrules-zh”。光看名字&#xff0c;你可能会有点懵&#xff0c;“Cursor”是那个AI编程工具&#xff0c;“rules”是规则&#xff0c;那…...

3PEAK思瑞浦 TP2274-TS2R TSSOP14 精密运放

特性 增益带宽积:7MHz 高斜率:20V/us 宽供电范围:3.1V至36V或2.25V至18V 低失调电压:0.5mV(最大值) 低输入偏置电流:30pA(典型值) 轨到轨输出电压范围 单位增益稳定 工作温度范围:-40C至125C...

Trigger.dev与Supabase集成:构建全栈实时任务系统的终极指南

Trigger.dev与Supabase集成&#xff1a;构建全栈实时任务系统的终极指南 【免费下载链接】trigger.dev Trigger.dev – build and deploy fully‑managed AI agents and workflows 项目地址: https://gitcode.com/gh_mirrors/tr/trigger.dev Trigger.dev是一个强大的工作…...

Diablo Edit2终极指南:如何轻松编辑暗黑破坏神2角色存档

Diablo Edit2终极指南&#xff1a;如何轻松编辑暗黑破坏神2角色存档 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 暗黑破坏神2作为经典的动作角色扮演游戏&#xff0c;拥有庞大的玩家群体。然而…...

【AI大模型】Transformer 架构是什么?关键模块都有哪些

【AI大模型】Transformer 架构是什么&#xff1f;关键模块都有哪些&#xff1f; Transformer 出自 2017 年经典论文 Attention Is All You Need&#xff0c;它完全抛弃 RNN 结构&#xff0c;仅靠注意力 前馈网络实现序列建模&#xff0c;是现在 GPT、BERT、ViT、T5 等所有大模…...