MTK 9.0平台调试gsensor

article/2025/10/6 2:53:06

MTK 9.0平台调试gsensor ----型号为:stk8baxx

1 查看原理图可以知道stk8baxx重力传感器 使用i2c1通道进行通讯,由于该重力传感器是不使用中断模式的进行触发的,所以不需要配置中断引脚。由此可以配置stk8baxx重力传感器的dts
在这里插入图片描述
dts文件配置如下:
dts文件路径为:\kernel-4.4\arch\arm\boot\dts\aiot8362am3_bsp.dts

&gsensor_mtk{status = "okay";
};
&i2c1 {clock-div = <2>;pinctrl-names = "default";pinctrl-0 = <&i2c1_pins_a>;status = "okay";clock-frequency = <400000>;stk8baxx@18{compatible = "mediatek,stk8baxx";reg = <0x18>;i2c_num	= <1>;i2c_addr = <0x18 0 0 0>;direction = <0>;power_id = <0xffff>;power_vol = <0>;firlen = <0>;is_batch_supported = <0>;status = "okay";};}

\kernel-4.4\arch\arm\boot\dts\mt8167.dtsi

		gsensor_mtk:gsensor@0 {compatible = "mediatek,gsensor";};

2 配置aiot8362am3_bsp_defconfig和aiot8362am3_bsp_debug_defconfig文件以及配置相关的Makefile和Kconfig

2.1 配置aiot8362am3_bsp_defconfig和aiot8362am3_bsp_debug_defconfig文件
文件路径为:\kernel-4.4\arch\arm\configs\aiot8362am3_bsp_debug_defconfig和\kernel-4.4\arch\arm\configs\aiot8362am3_bsp_defconfig

#g-sensor
CONFIG_CUSTOM_KERNEL_ACCELEROMETER=yCONFIG_MTK_STK8BAXX=y

2.2 配置相关的Makefile和Kconfig

\kernel-4.4\drivers\misc\mediatek\sensors-1.0\accelerometer\Kconfig

source "drivers/misc/mediatek/sensors-1.0/accelerometer/stk8baxx/Kconfig"

\kernel-4.4\drivers\misc\mediatek\sensors-1.0\accelerometer\Makefile

obj-$(CONFIG_MTK_STK8BAXX) += stk8baxx/

\kernel-4.4\drivers\misc\mediatek\sensors-1.0\accelerometer\stk8baxx\Kconfig

config MTK_STK8BAXXbool "MTK_STK8BAXX for MediaTek package"default nhelpThe STK8BA50 is a highly integrated,low power internal measurement unitthat provides precise accelerationmeasurement.this config will turn on accelerometer feature.

\kernel-4.4\drivers\misc\mediatek\sensors-1.0\accelerometer\stk8baxx\Makefile

ccflags-y += -I$(srctree)/drivers/misc/mediatek/sensors-1.0/accelerometer/inc
ccflags-y += -I$(srctree)/drivers/misc/mediatek/sensors-1.0/hwmon/includeobj-y	:=  stk8baxx.o

\device\mediateksample\aiot8362am3_bsp\ProjectConfig.mk

CUSTOM_KERNEL_ACCELEROMETER = yes

3 把 stk8baxx.c放进去编译查看log发现 stk8baxx.cstk8baxx重力传感器i2c是能够通讯成功的,同时相关节点也产生了,由此可以验证stk8baxx重力传感器移植成功, log如下:

[    0.402790] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_init 3463  start-----
[    0.408960] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_init 3463  start-----
[    1.326177] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3158 client->addr = 0x18 start-----
[    1.327289] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3167 client->addr = 0x18 start-----
[    1.328381] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3179 client->addr = 0x18 start-----
[    1.329477] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3184 client->addr = 0x18 start-----
[    1.330584] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3196 client->addr = 0x18 start-----
[    1.331809] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3201 client->addr = 0x18 start-----
[    1.333044] <3>.(3)[1:swapper/0]dsy:-------stk_polling_mode_setup 2501 start-----
[    1.333972] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3215 client->addr = 0x18 start no INTERRUPT_MODE -----
[    1.335267] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3220 client->addr = 0x18 start-----
[    1.336365] <3>.(3)[1:swapper/0]dsy:-------stk_reg_init 2539 start-----
[    1.341175] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3226 client->addr = 0x18 start-----
[    1.342303] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3241 client->addr = 0x18 start-----
[    1.343672] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3263 client->addr = 0x18 start-----
[    1.344779] <3>.(3)[1:swapper/0]dsy:-------stk8baxx_i2c_probe 3273 client->addr = 0x18 start-----
[    1.345878] <3>.(3)[1:swapper/0]BOOTPROF:      1345.877694:probe: probe=i2c_device_probe drv=stk8baxx(c0e43b70)    19.696616ms
[   23.837242] <3>.(3)[454:nvram_daemon]dsy:-------stk_factory_set_cali 3052 start-----
[   23.838215] <3>.(3)[454:nvram_daemon]dsy:-------stk_factory_set_cali 3071 start-----
[   23.839177] <3>.(3)[454:nvram_daemon]dsy:-------stk_writeCalibration 2966 start-----
[   23.840146] <3>.(3)[454:nvram_daemon]dsy:-------stk_readCalibration 2942 start-----
[   23.847060] <3>.(3)[454:nvram_daemon]dsy:-------stk_readCalibration 2951 start-----
[   23.848021] <3>.(3)[454:nvram_daemon]dsy:-------stk_writeCalibration 2972 start-----
[   23.848984] <3>.(3)[454:nvram_daemon]dsy:-------stk_writeCalibration 2984 start-----
[   51.778288] <2>.(2)[160:kworker/2:1]dsy:-------stk_read_accel_rawdata 961 start-----
[   51.779761] <2>.(2)[160:kworker/2:1]dsy:-------stk_low_pass_fir 882 start-----
[   51.844305] <2>.(2)[160:kworker/2:1]dsy:-------stk_read_accel_rawdata 961 start-----
[   51.846374] <2>.(2)[160:kworker/2:1]dsy:-------stk_low_pass_fir 882 start-----
[   51.912318] <2>.(2)[160:kworker/2:1]dsy:-------stk_read_accel_rawdata 961 start-----

http://chatgpt.dhexx.cn/article/qiL24PFb.shtml

相关文章

APK无法识别gsensor问题剖析

APK无法识别gsensor问题的原因有很多&#xff0c;这里只是提供一条思路&#xff0c;解决现有项目遇到的问题。 1、确保驱动层可以工作。 2、打印LOGCAT数据&#xff0c;分析sensorservice流程 1、移植流程&#xff1a; 步骤&#xff1a;移植gsensor驱动&#xff0c;mc3413&am…

mtk平台gsensor,msensor方向确定方法

在gsensor和msensor驱动调试中&#xff0c;一个很重要的参数就是direction。 direction与芯片、layout和结构三者结合&#xff0c;才能最终确定该参数值。 mtk平台中该参数的示意图 在mtk10.0的kernel中提供了一个简单的调试接口&#xff0c;用于确认该参数值。 内核节点 /…

Gsensor驱动概述

本文以Bma250驱动为例子&#xff0c;详细介绍Gsensor设计的一个模板。 gsensor驱动在系统中的层次如下图所示&#xff1a; 图中包含三个部分&#xff1a;hardware,driver, input&#xff1a; n Hardware&#xff1a;其实我们可以认为Gsensor也是一个I2C设备。整个Gsens…

MTK平台Android Gsensor数据校准与数据获取

http://blog.csdn.net/morixinguan/article/details/76850600 上节,写WIFI MAC地址的时候我们已经知道,MTKAndroid系统的Gsensor校准的数据其实也是存储在NVRAM中的,Gsensor隶属于传感器系统架构。 接下来我们来看下Gsensor校准的基准图像: 那么如何来校准Gsensor的X,Y,Z三…

android g sensor,android gsensor 休眠震动唤醒功能怎么实现

一、唤醒源 设备休眠后&#xff0c;通过触发唤醒源使设备恢复正常工作模式。设备唤醒源有多种&#xff0c;对于Android设备常见的就有PowerKey、来电唤醒、Alarm唤醒等。 唤醒源的实现处于内核空间&#xff0c;本文重点讨论下PowerKey作为唤醒源的具体实现。 二、PowerKey唤醒源…

G-sensor 介绍

转自&#xff1a;http://blog.chinaunix.net/uid-29595319-id-4200772.html G-sensor G-sensor是加速度传感器&#xff0c;可以通过其来获得分别来自三个不同轴向上的加速度用以通知上层应用做出相应处理。 由于地球的引力作用&#xff0c;gsensor平放时&#xff0c;Z轴方向能…

G-sensor概述及常用概念整理【转】

本文转载自:http://www.jianshu.com/p/d471958189a0?nomobile=yesG 本文对G-sensor进行整理,先介绍G-sensor的一些基本概念,再具体讲解BOSCH、ST、ADI三家的G-sensor,其中BOSCH的G-sensor重点讲BMA222E,ST的G-sensor重点讲LIS2DH12,ADI的G-sensor具体讲ADXL362。 一、G-…

初次使用Fleck+redis订阅发布实现学习小demo

https://www.cnblogs.com/SupPilot/p/10396333.html 首先安装Fleck的程序包添加引用下面是客户端代码&#xff1a; 客户端代码&#xff1a; 运行效果&#xff1a; 遇到的问题&#xff1a; Q:通常每个套接字地址(协议/网络地址/端口)只允许使用一次 A:是因为本萌新把WebSocke…

core+Fleck+redis

1.新建core版控制台程序引用 2.初始化websocket class Program { //客户端url以及其对应的Socket对象字典 static IDictionary<string, IWebSocketConnection> dic_Sockets new Dictionary<string, IWebSocketConnection>(); static …

[c#]使用Fleck实现简单的WebSocket含兼容低版本IE

WebSocket是html5的一种协议,那么就表示要使用websocket客户端的浏览器就要支持html5。 对于不支持的使用flash去解决。 Fleck源码地址 服务端采用的是Fleck,Fleck的好处就是简单方便,作者已经进行了完整的封装,可以根据自己情况进行修改 兼容低版本IE 使用flash实现兼容低…

C#实现WebSocket(基于Fleck-服务端和WebSocketSharp-客户端)

C#实现WebSocket(基于Fleck-服务端和WebSocketSharp-客户端) 官网&#xff1a;https://github.com/sta/websocket-sharp 客户端 private void btn_Connect_Click_1(object sender, EventArgs e){Console.WriteLine("Websocket Demo");WebSocket web new WebSocket(…

C#通过fleck实现wss协议的WebSocket多人Web实时聊天(附源码)

前言 最近想做一个Web版的即时聊天为后面开发的各项功能做辅助&#xff0c;就需要浏览器与服务器能够实时通讯。而WebSocket这种双向通信协议&#xff0c;就很合适用来实现这种需求。 本篇文章主要解决C#如何实现WebSocket服务端和Javascript客户端基于wss协议的安全通信问题。…

Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室

一、项目的核心说明 1、Fleck这个是实现websocket一个比较简单第三方组件&#xff0c;它不需要安装额外的容器。本身也就几个接口可供调用。 2、项目是基于.net framework 4.7.2 &#xff0c;在vs2019上开发的&#xff0c;没试过在低版本上运行。但是代码上没怎么用到新特性&…

winfrom+Fleck 上传文件

最近这个项目要做一个Winfrom上传Execl到服务器。 就想到之前用Fleck做的一个小功能&#xff0c;但是客户端Web端的。百度吧&#xff0c;看有没有办法&#xff0c;开始找到fw4 &#xff0c;但是要引用它的dll&#xff0c;是可以&#xff0c;继续找了会结果找到ClientWebSocket…

C#工作总结(一):Fleck的WebSocket使用

一.引子&#xff08;Foreword&#xff09; 最近公司里面要做窗体和网页交互的功能。网上找了一下资料&#xff0c;这里做一个简单的扩充和整理&#xff0c;部分内容可能是摘自其他博客&#xff0c;这里会注明出处和原文地址供大家和自己日后查阅。 二.基础知识&#xff08;Foun…

Fleck说明文档翻译

CSDN ZslLoveMiwa的博客 Fleck Fleck是一个在C#中的WebSocket服务器端的一个实现.。分支自Nugget项目, Fleck不需要任何的继承、容器亦或是需要增加的引用就可以使用。 实例 下面是一个把客户端网页发来的消息回发到客户端的服务器程序。 var server new WebSocketServer(&q…

fleck 客户端_C#中使用Fleck实现WebSocket通信简例

Fleck是一个开源的使用C#封装的WebSocket服务端工具库。 一、服务端搭建 这里选择在.net core 2.1框架下新建了一个控制台程序 在项目里使用NuGet引入Fleck包 NuGet引入Fleck包 其它方式也可以,最终引入项目里都是Fleck.dll Fleck.dll 二、服务端实例 Github上的简单例子: 简…

Fleck WebSocket使用

作为笔记存储. 最近公司有这方面的使用需求。在网上查了一些资料后。得到了想要的结果。以下记录摘抄至网上资料 1.首先,服务端。项目NuGet直接引用Fleck类库。 code: 1 //客户端url以及其对应的Socket对象字典2 IDictionary<string, IWebSocket…

车牌识别技术原理

车牌识别技术原理 车牌识别技术原理都是一样的&#xff0c;具体流程如下&#xff1a;图像捕捉与获取、车牌定位、字符分割字符识别、输出结果。不一样的是在上述环节中采用不同的技术&#xff0c;比如作为核心技术的车牌定位&#xff0c;就可能用到(1)自适应边界搜索法、(2)区…

python实现车牌识别

原始图象 代码 from hyperlpr import HyperLPR_plate_recognition import cv2 from PIL import ImageFont, ImageDraw, Image import numpy as npimage cv2.imread("car.jpg")#读入图片 resultHyperLPR_plate_recognition(image)#识别车牌 plate result[0][0] #…