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

2023-10-31

一、环境介绍

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

二、芯片介绍

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

三、驱动移植

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驱动移植__花花的博客-CSDN博客

四、HAL移植

源码链接:https://github.com/STMicroelectronics/STMems_Android_Sensor_HAL_IIO/tree/STMems_Android_Sensor_HAL_IIO

1,拷贝整个文件夹到hardware/目录下

2,在/device/rockchip/rk3588/device.mk中增加

PRODUCT_PACKAGES += sensors.rk3588

3,HAL目录下,执行生成cofig指令

source android_data_config
make sensors-defconfig

        报错失败可以参考【android12-linux-5.1】【ST芯片】HAL移植后配置文件生成报错__花花的博客-CSDN博客

4,增加权限配置参考(开机会卡住报错-13)

【android12-linux-5.1】【ST芯片】HAL移植后开机卡死__花花的博客-CSDN博客

5,编译后调不到HAL参考(HAL增加日志不会出来)

【android12-linux-5.1】【ST芯片】HAL移植后没调起来__花花的博客-CSDN博客

6,多HAL兼容参考

RK平台的sensor框架HAL层兼容其他HAL层so库__花花的博客-CSDN博客

7,测试任然SensorManger调不到的话,参考配置

Solved: Re: Android P can't get LSM6DSM HAL Accelerometer/... - STMicroelectronics Community

五,测试

直接系统接口SensorManger调用即可

1,MainActivity.java

package com.example.sensorsdata;

import static android.hardware.SensorManager.SENSOR_DELAY_GAME;
import static android.hardware.SensorManager.SENSOR_DELAY_NORMAL;
import static android.hardware.SensorManager.SENSOR_DELAY_UI;
import static java.lang.Math.atan2;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;

import com.google.android.material.snackbar.Snackbar;

import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Environment;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.View;

import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;

import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;

public class MainActivityRaw extends Activity implements SensorEventListener {

    private SensorManager sensorManager = null;
    private Sensor accSensor = null;//加速度传感器
    private Sensor gyroSensor = null;//角速度传感器
    private Sensor magSensor = null;//磁力传感器
    private Sensor stepSensor = null;//计步传感器
    private Sensor tempSensor = null;//温度传感器
    private Sensor tempSensor2 = null;//温度传感器
    private TextView textView_AccName, textView_AccX, textView_AccY, textView_AccZ;//加速度传感器参数
    private TextView textView_GyrName, textView_GyrX, textView_GyrY, textView_GyrZ;//角速度传感器参数
    private TextView textView_MagName, textView_MagX, textView_MagY, textView_MagZ;//磁力
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL移植 的相关文章

  • 如何改变android中menuItem的背景颜色?

    我正在以编程方式将菜单项添加到菜单中 我想在选择特定项目时添加背景颜色 如何为 menuItem 添加背景 您的回答将不胜感激 虽然其他答案提供了更改样式 这会影响all菜单项 据我了解 需要更改一个菜单项 我建议你使用android ac
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • Mailgun POST /messages API 总是抛出 401 禁止

    我正在尝试使用改造库在 Android 中发送 Mailgun POST messages API 请求 以下是改装要求 HTTP POSThttps api key xxx v3 sandboxxxx messages https api
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 6:需要显示BuyFlow UI

    There is a problem when i am click on payWithGoogle Button I am implementing Google Pay in my Android Application and wh
  • 如何将单选按钮状态保存到已保存/共享首选项?

    我可以在保存的首选项中保存字符串 但很难保存单选按钮 public class PersonalDetailsf extends Activity private SharedPreferences sharedPreferences pr
  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • 当应用程序未运行时如何堆叠 Firebase Cloud Messaging 通知?

    我在用Firebase Cloud Messaging将推送通知从我的服务器发送到我的 Android 应用程序 当应用程序运行时 通知是stacked因为我将它们设置为我的一个组FirebaseMessagingService 这很好 但
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 如何在新标签 android webview 中打开链接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经使用 webview 创建了一个 android 应用程序来显示我的网站 我什至想添加在新选项卡中打开链接的功能 但我找不到任何
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Android:如何通过右侧的十字按钮清除EditText

    我创建了一个EditText用于搜索 左侧包含搜索图标 右侧包含图标
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p

随机推荐

  • C++类上使用属性(__declspec property)

    原始代码如下 class A private int m nIndex public int getIndex return m nIndex void setIndex int value m nIndex value 如果采用属性方式实
  • JSP页面forEach使用

    1 在jsp页面引入jstl标签 2 后端传入前端list ServletActionContext getRequest setAttribute List别名 detailList 3 前端jsp接收 table tr th 列名称A
  • 开发实例系列:一、舒尔特方格小游戏,付源码和APK

    舒尔特方格 生成随机数 从小到大依次点击 时间越短越好 底部带源码和apk下载 注意功能点 一 使用TableLayout自动生成表格 这一部分是参考网上的帖子 找不到原连接了 自定义TableLayout 以下是源码 public cla
  • Rocket学习原理以及命令【详细】

    运行原理图 NameServer 相当于一个注册中心 把所有信息注册到其中 Broker 存储消息的 Producer 消息生产者 Consumer 消费者 总结 首先启动NameServer 然后启动Borker把ip地址等信息注册到Na
  • 腾讯云服务器+ContOS 7.6安装MySql(三)

    腾讯云服务器 ContOS 7 6安装MySql 三 配置mysql 首先来看下我们安装了MySQL以后 还剩多少磁盘空间 登录腾讯云控制台 实例 资源使用情况 系统盘 大概用来3 3G左右 磁盘刚开始好像是2 9多G 再把下载好的安装包删
  • 正则表达式之字符串的replace方法

    1 首先 正则表达式是什么 正则表达式是用于匹配字符串中字符组合的模式 在 JavaScript中 正则表达式是对象 这些模式被用于 RegExp 的 exec 和 test 方法 以及 String 的 match matchAll re
  • 老年人教程:MyBatis拦截器动态修改SQL(更新与插入)语句

    注 本文编写与 2019年12月17日 内容可能存在时效性问题 数据库使用MySQL5 7 集成于SpringBoot 2 0 X 引用国产的开源工具类Hutool 本教程建议显示大纲视图 配合食用 一 简介 1 设定使用场景 任意 ins
  • nginx、uWSGI、django之间的具体联系

    前言 看了网上很多的nginx uWSGI django服务器框架搭建配置过程 但是绝大多数都只是说说搭建过程 并没有说过之间具体的联系 三者之间的区别与联系 uwsgi wsgi和nginx的区别和关系 参考博文写的特别棒 浅显易懂 在这
  • 接入 顶象滑动验证码

    顶象滑动验证码 注册账号 SDK下载 后端实现 WEB端接入 效果图 注册账号 由于是学习使用 用的是免费的 访问顶象官网 注册账号后登录控制台 访问 无感验证 模块 申请开通后系统会分配一个唯一的AppId AppSecret SDK下载
  • python list写入、读取csv文件

    csv 文件格式的本质是一种以文本存储的表格数据 使用 Excel 工具即可读写 csv 文件 csv 文件的每行代表一行数据 每行数据中每个单元格内的数据以逗号隔开 按行写入csv文件 话不多说直接上代码 import csv def s
  • vscode Ubuntu配置c++调试环境

    1 安装 C C 扩展 打开 Visual Studio Code 点击左侧的 Extensions 图标 搜索并安装 C C 扩展 这个扩展提供了 C C 开发所需的工具和功能 2 安装编译器 Ubuntu 默认情况下可能没有安装 C C
  • ES查询效率-Query、Filter&term

    目的 Google上博客众说纷纭大同小异 逻辑正确但略为混乱 再此梳理出容易混淆的点 1 是否算分只与查询方式有关 与是否term查询 match查询无关 Query查询 查询上下文 查询操作不仅仅会进行查询 还会计算分值 用于确定相关度
  • 使用eclipse IDE搭建C/C++开发环境

    visual studio 2008 功能是很强大 但是我用到的仅仅是它的 visual C 部分 而且组件很多 大部分都不知道是什么用的 安装下来快 2G 了 对于 C 盘紧张我的来说 无疑是一种浪费磁盘 于是卸载了 visual stu
  • 面向对象_匿名内部类在开发中的应用

    匿名内部类在开发中的使用 package cn test interface Person public abstract void study class PersonDemo 接口名作为形式参数 其实这里需要的不是接品 而是该接品的实现
  • 如何用树莓派借用计算机的显示屏,笔记本电脑当作树莓派的显示器

    我们知道 树莓派被称为 微型PC 有很多人在拿到板子后 无从下手 也不知道该干嘛 从哪儿开始 有人看了我的文章后开始刷机 刷系统 刷完机依旧不知道如何是好 然后又开始用 putty 尝试连接树莓派 连接上以后 面对一个黑漆漆的窗口一脸懵逼
  • 服务器信号MBR,[讨论]Windows启动过程(MBR分析)

    讨论 Windows启动过程 MBR分析 2013 9 17 13 33 12376 讨论 Windows启动过程 MBR分析 2013 9 17 13 33 12376 此处我分析系统操作系统加载前的事 从按开机键开始 有心人一起讨论下
  • tomcat源码分析连接coyote catalina

    http blog csdn net aesop wubo article details 7630440 http blog csdn net cutesource article details 5091732
  • java服务器调试指南

    在实际开发中 总会遇到程序启动不起来或者运行结果不符合期望的情况 如果是在本地 直接debug就行了 几乎人人都会 但是如果到了远程 大多数情况下我们可以看日志 通过日志排查定位到问题 但是如果你的日志不多 或者日志中看不出问题 此时情况就
  • 图像识别流程学习总结

    通过图像识别的学习 初步总结了图像识别的流程及归类 希望可以帮到正在学习的小伙伴 一 前期准备工作 1 数据集的获取 在进行数据分析之前需要有数据进行识别 这里所谓的数据指的是图像 我们需要对需要识别的图像分好其类别才能更好的调用 下面以天
  • 【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL移植

    一 环境介绍 RK3588主板搭载Android12操作系统 内核是Linux5 10 使用ST的六轴传感器LSM6DSR芯片 二 芯片介绍 LSM6DSR是一款加速度和角速度 陀螺仪 六轴传感器 还内置了一个温度传感器 该芯片可以选择I2