日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android平台 Psensor传感器调试方法

發(fā)布時(shí)間:2025/4/16 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android平台 Psensor传感器调试方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、 驅(qū)動(dòng)層調(diào)試
1、在板級(jí)dts文件中增加相應(yīng)的dts代碼,
如:調(diào)試sensor類,在代碼中找到已經(jīng)有的代碼在修改,I2C使用那根(一般為I2C3),I2C地址(找datasheet或者FAE),哪個(gè)中斷引腳(看原理圖)。
twsi3: i2c@d4013800 {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mc3xxx@4c {
compatible = "mc3, mc3xxx";
reg = <0x4c>;
interrupt-parent = <&gpio>;
interrupts = <91 0x1>;
irq-gpios = <&gpio 91 0>;
avdd-supply = <&ldo4>;
status = "okay";
};
? ? ? epl2182@49 {
compatible = "epl,epl2182";
reg = <0x49>;
interrupt-parent = <&gpio>;
interrupts = <4 0x1>;
irq-gpios = <&gpio 4 0>;
avdd-supply = <&ldo4>;
};

}

;


2、在_defconfig中打開(kāi)相應(yīng)的driver文件


3、如何判斷driver是否調(diào)通?
1)編譯后下載后,通過(guò)adb 中g(shù)etevent判斷是否驅(qū)動(dòng)產(chǎn)生了設(shè)備節(jié)點(diǎn)


shell@MMX:/ # getevent
getevent
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 1: /dev/input/event1
? name: ? ? "vnc-ts"
add device 2: /dev/input/event7
? name: ? ? "map asoc Hook"
add device 3: /dev/input/event8
? name: ? ? "map asoc Headset"
add device 4: /dev/input/event0
? name: ? ? "pxa27x-keypad"

add device 5: /dev/input/event3
? name: ? ? "88pm886_on"
add device 6: /dev/input/event2
? name: ? ? "msg2238"
add device 7: /dev/input/event6
? name: ? ? "APDS_proximity_sensor"
add device 8: /dev/input/event5
? name: ? ? "APDS_light_sensor"
add device 9: /dev/input/event4
? name: ? ? "accelerometer"


通過(guò)以上可以看出為dev/input/event5 和/dev/input/event6 ?,
2)確定是否有報(bào)點(diǎn)上傳?
通過(guò)以下命令進(jìn)行判斷


1|shell@:/sys/class/input/input5 $ cat active
cat active
0
shell@:/sys/class/input/input5 $ echo 1 >active
echo 1 >active
shell@:/sys/class/input/input5 $ getevent
getevent
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 1: /dev/input/event1
? name: ? ? "vnc-ts"
add device 2: /dev/input/event7
? name: ? ? "map asoc Hook"
add device 3: /dev/input/event8
? name: ? ? "map asoc Headset"
add device 4: /dev/input/event0
? name: ? ? "pxa27x-keypad"
add device 5: /dev/input/event3
? name: ? ? "88pm886_on"
add device 6: /dev/input/event2
? name: ? ? "msg2238"
add device 7: /dev/input/event6
? name: ? ? "APDS_proximity_sensor"
add device 8: /dev/input/event5
? name: ? ? "APDS_light_sensor"
add device 9: /dev/input/event4
? name: ? ? "accelerometer"
could not get driver version for /dev/input/mice, Not a typewriter
/dev/input/event5: 0003 0018 00000066
/dev/input/event5: 0000 0000 00000000
/dev/input/event5: 0003 0018 0000006d
/dev/input/event5: 0000 0000 00000000
/dev/input/event3: 0001 0074 00000001
/dev/input/event3: 0000 0000 00000000
/dev/input/event4: 0003 0000 0000000b
/dev/input/event4: 0000 0000 00000000
/dev/input/event3: 0001 0074 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event4: 0003 0000 fffffff5


#adb shell getevent -lr /dev/input/event5


手動(dòng)驗(yàn)證有數(shù)據(jù)傳上來(lái),說(shuō)明driver工作正常。

二、framework層調(diào)試


1) 判斷framework使用那套流程,打開(kāi)相應(yīng)的宏開(kāi)關(guān)
通過(guò)sensors_hal.cpp中查看開(kāi)關(guān)那個(gè)紅
BOARD_HAVE_AVAGO=true


2)驅(qū)動(dòng)層有設(shè)備節(jié)點(diǎn)是否跟framework層一致。
Driver:
static const char ElanPsensorName[] = "APDS_proximity_sensor";
static const char ElanALsensorName[] = "APDS_light_sensor";


framework:
AvagoLightSensor::AvagoLightSensor()
? ? : LightSensorSet("APDS_light_sensor")
{
}

3)上報(bào)的詩(shī)句是否與farmework中處理的是否一致
Driver中:
input_report_abs(epld->als_input_dev, ABS_PRESSURE, lux);


framework中:
int LightSensorSet::readEvents(sensors_event_t* data, int count)
{ ??



… ?…
? ? ?if ((type == EV_ABS) && (event->value > 0)) {
? ? ? ? ? ? if (event->code == ABS_PRESSURE) {
? ? ? ? ? ? ? ? mPendingEvent.light = event->value;
? ? ? ? ? ? ? ? valid = true;
? ? ? ? ? ? ? ? if (LOG_DBG)
? ? ? ? ? ? ? ? ? ? LOGD("LightSensor: read value = %f", mPendingEvent.light);
? ? ? ? ? ? }
? ? ? ? } else if ( (type == EV_SYN) && valid ) {

4) 注意使能標(biāo)志位是否一致。
Driver中:?
static struct device_attribute dev_attr_light_enable =
__ATTR(active, S_IRWXUGO,
? light_enable_show, light_enable_store);


Framework中:
int LightSensorSet::enable(int32_t handle, int en)
{
? ? int flags = en ? 1 : 0;
? ? if (flags != mEnabled) {
? ? ? ? int fd;
? ? ? ? char enablePath[PATH_MAX];
? ? ? ? sprintf(enablePath, "%s/%s", mClassPath, "active");


? ? ? ? if (LOG_DBG)
? ?LOGD("LightSensor enable path is %s", enablePath);
? ? ? ? fd = open(enablePath, O_RDWR);
? ? ? ? if (fd >= 0) {
? ? ? ? ? ? err = write(fd, buf, sizeof(buf));
? ? ? ? ? ? close(fd);
? ? return 0;
}

三、應(yīng)用層調(diào)試
安裝并使用測(cè)試sensor APP來(lái)判斷是否能工作。

總結(jié)

以上是生活随笔為你收集整理的Android平台 Psensor传感器调试方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩 欧美 | ass亚洲尤物裸体pics | 欧美三级午夜理伦三级老人 | 精品无码一级毛片免费 | 贵族女沦为官妓h呻吟 | 韩国三级免费 | 偷拍久久久 | 蜜桃成人网 | 中文字幕二区三区 | 日本免费一区二区三区四区五六区 | 欧美乱三级 | 永久免费未满视频 | 国内自拍在线 | aa在线视频 | 午夜看片在线观看 | 亚洲激情黄色 | 国产精品视频观看 | 午夜看片网站 | 亚洲精品字幕在线 | 超碰97在线免费 | 九九香蕉视频 | 国产a一区 | 久久久精品影院 | 欧美成人免费在线观看视频 | www国产精品内射老熟女 | 精品一级少妇久久久久久久 | 伦伦影院午夜理论片 | 亚洲一区天堂 | 亚洲精品字幕在线 | 白嫩初高中害羞小美女 | 在线观看日韩av电影 | 亚洲精品tv | 亚洲av人无码激艳猛片服务器 | 亚洲AV无码久久精品国产一区 | 亚洲一区网| 国产综合在线观看视频 | 国产区精品| 国产视频自拍一区 | 情侣av| 一区二区三区在线免费 | 怡春院欧美 | 国产成人精品一区二区在线小狼 | 欧美夜夜夜 | 手机免费av片 | 91天天| 日韩中文字幕综合 | 九九影院最新理论片 | 免费黄色av网址 | 亚洲视频在线观看一区二区 | 91一区 | 在线sese| 日韩一片 | 国产理论av | 国产高潮流白浆喷水视频 | 大桥未久中文字幕 | 夜夜激情 | 中文字幕一区二区免费 | 无码日韩精品一区二区 | 欧美日韩国产精品一区二区三区 | 无码精品人妻一区二区三区湄公河 | 国产精品第九页 | 久久国产乱子伦精品 | 亚洲黄片一区 | 日韩国产欧美在线视频 | 91福利在线视频 | 二区在线播放 | 手机av免费在线 | 大肉大捧一进一出好爽视频 | 午夜影院性| 美女污污网站 | 亚欧美在线 | 日本成人黄色片 | 夜色视频在线观看 | 日韩综合在线观看 | 午夜18视频在线观看 | 亚洲精品1 | 亚洲天堂一区二区 | 欧美人妻精品一区二区三区 | zzji欧美大片 | 毛片9 | 亚洲美女屁股眼交8 | 国产成人午夜精品无码区久久 | 国产嫩草在线观看 | jizz91| 国产精品果冻传媒 | 欧美人和黑人牲交网站上线 | 真实的国产乱xxxx在线91 | 久久午夜精品 | 精品免费国产一区二区三区四区 | 久久久一区二区三区四区 | 亚洲图片激情小说 | 超碰人人草人人干 | 九热这里只有精品 | 在线视频精品免费 | 国产一卡二卡三卡 | 国产在线久久久 | 天天射天天操天天干 | 欧美混交群体交 | 久久久欧美精品sm网站 |