指南针-Memsic3280调试笔录

来源:互联网 发布:mac 身份不明 编辑:程序博客网 时间:2024/04/28 15:44
步骤:
(1)首先,mem3280是i2c设备,那么第一步查看芯片SPEC,确定好它的i2c地址(0x30)
(2)确定好地址后,在kernel/arch/arm/mach-vc0882/board-vortex.c文件中添加i2c设备信息:
1212 static struct i2c_board_info i2c_devs1[] = {
1213 #ifdef CONFIG_SENSOR_SSZ0304
1214     { I2C_BOARD_INFO("ssz0304-sensor", 0x55),},
1215 #endif
1216 #ifdef CONFIG_SENSOR_MMC3280
1217     { I2C_BOARD_INFO("mmc3280-sensor", 0x30),},
1218 #endif
……………………………………………………………………
(3)调试驱动使得i2c通,即可以读取数据。(驱动框架可参考其它i2c设备)
(4)i2c调通后,准备修改Android的HAL层,发现HAL对Sensors的处理是于input设备看待。
(5)那么得对驱动改为input设备(之前为简单的misc设备处理),这个过程也只要参考其它的input设备即可。
(6)现在得对HAL层处理,原来发现根本没有对指南针处理,什么都得自己添加,这个HAL既啰嗦又复杂。
(7)没办法,硬着头皮把HAL对Sensors的处理函数全部梳理一遍,把握整个逻辑。
备注:其中用到了两个测试程序:hardware\libhardware\tests\nusensors\nusensors.cpp
frameworks\base\services\sensorservice\tests\sensorservicetest.cpp
很重要的调试经验就是分析函数,多用LOGE printf打印调试信息,另外还要细心、耐心。
原创粉丝点击