高通qcom8550 sensor bring up调试总结

高通qcom8550 sensor bring up调试总结

高通qcom8550 sensor bring up调试总结

参考文档:
80-50445-24_REV_AA_QCS8550_QCM8550_Sensors_Overview.pdf
80-P9301-35_REV_B_Sensors_Execution_Environment__SEE__Sensors_Deep_Dive.pdf
80-PV345-103_REV_AC_Sensors_Execution_Environment__SEE__Sensors_Bringup_Guide.pdf

https://www.shuzhiduo.com/A/lk5aZn6Pd1/
高通(QCOM)sensor bring up

https://blog.youkuaiyun.com/wn541200/article/details/131174230
高通SEE架构sensor驱动移植

传感器功能测试工具:
https://blog.youkuaiyun.com/weixin_38498942/article/details/143953427
高通传感器用户指南()

1,参考高通Sensors Bringup文档和网上相关文档,从厂商拿到的sensor驱动代码放入到ADSP代码里。
全编译后,进入镜像包里刷NON-HLOS.bin:
adb reboot bootloader && \
sleep 5 && fastboot flash modem_a NON-HLOS.bin && \
fastboot reboot

2,配置SNS_DELAY_INIT,延迟SEE初始化,这样QXDM工具会抓取到更多的log。
To delay SEE initialization, make the following changes in
<slpi/adsp>_proc\ssc\utils\ext\src\sns_user_pd_ext.c:
#if defined(SNS_DELAY_INIT)
bool sns_init_delayed = 1;
#else
bool sns_init_delayed = 0; → Change 0 to 1
#endif
…
uint32_t sns_delay_sec = 7; → Increase 7 to 15 sec
// 注意:添加delay,方便看adsp log,但是,会导致Android App看不到sensor。报:qmi_wait_for_service:165, timeout while waiting for sensors QMI service

3,添加log和打开i2c log
// 注意:分析log时,先配置SNS_DELAY_INIT进行delay, 再添加log,否则,自己添加的早期启动的log会抓不到。
SNS_PRINTF(HIGH, sns_fw_printf, "lqy111 Register Sensor from static list");

// 如果修改了sensors-ship,则在全编译之前,删除临时编译产生文件,避免集成的新文件,再编译时不生效。
rm -rf out/soong/.intermediates/vendor/qcom/proprietary/sensors-ship

// 例如:在vendor/qcom/proprietary/sensors-ship/ssc/sns_oem1.proto文件编译出的pb.c和pb.h文件,
// 如果集成新的proto时,需要在out/soong/.intermediates查找一下,是否生成对应的pb.c和pb.h文件
out/soong/.intermediates/vendor/qcom/proprietary/sensors-ship$ find ./ -name sns_oem1*
./ssc/libsnsapi-full-static/android_vendor.33_arm_armv8-2a_cortex-a75_static_cfi/gen/proto/sns_oem1.pb.h
./ssc/libsnsapi-full-static/android_vendor.33_arm_armv8-2a_cortex-a75_static_cfi/gen/proto/sns_oem1.pb.cc

adb shell "cat /sys/devices/soc0/hw_platform ; cat /sys/devices/soc0/soc_id"

kalama:/ # cat /sys/devices/soc0/hw_platform
HDK
kalama:/ # cat /sys/devices/soc0/soc_id
603

// 打开i2c log:
sns_com_port_i2c.c
//#define SNS_I2C_DBG_LOG(...)
#define SNS_I2C_DBG_LOG(...)   SNS_PRINTF(HIGH, sns_fw_printf, __VA_ARGS__)

I2C调试总结:
I2C通信协议详解 基础架构‌:采用SCL(时钟线)和SDA(数据线)双线制,需接4.8kΩ上拉电阻保持总线空闲高电平。
所以,I2C调试时,先测量SCL和SDA空闲高电平是否为1.8V。
同时,在系统上查看SCL和SDA对应的GPIO状态是否为high。
// qcom8550平台,查看I2C上拉状态。I2C的SCL对应的是GPIO197, SDA对应的是GPIO196:
adb root && adb remount && adb shell mount -t d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值