android系统之sensor学习

Sensor作为Android系统的一个输入设备,对Android设备来说是必不可少的。Sensor主要包括G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等。这里主要对G-Sensor模块进行解析。


我的平台是AML8276,android系统是4.0.4,kernel是3.0,所用的gsensor是kionix_accel;
整个sensor的工作包括driver, HAL, framework(c/c++, java)和application层;
首先我们从驱动driver开始,然后一层层向上看;

一, 驱动层
在驱动层,内核需要增加和修改的部分包括:
     1,相应硬件模块驱动代码,包括两个文件,这里是 kionix_accel.h,  kionix_accel.c,分别将kionix_accel.h放到kernel/common/customer/include/linux/中,将kionix_accel.c放到kernel/customer/drivers/misc/中;
      2,编译目录( kernel/customer/drivers/misc/ )下的Makefie 和KConfig,在KConfig中增加:
     config SENSORS_KXTJ2
          tristate "KXTJ2 accelerometer sensor driver"
          depends on I2C
     help
       Say yes here to support Kionix's KXTJ2 accelerometer sensor
     在MakeFile 下增加:obj-$(CONFIG_SENSORS_KXTJ2)     += kionix_accel.o 
     3, 在平台编译配置文件中(也就是make menuconfig生成的),增加:CONFIG_SENSORS_KXTJ2=y------->指定编译到内核中,如果是m则编译成ko;
     4,在平台模块代码文件中(kernel/customer/ boards/board-m6g17-t069.c ),在相应的i2c配置中,增加此模块:
static struct i2c_board_info __initdata aml_i2c_bus_info_b[] = {
........
#ifdef CONFIG_SENSORS_KXTJ2
     {
          I2C_BOARD_INFO("kionix_accel",  KIONIX_ACCEL_I2C_ADDR),
          //.irq = INT_GPIO_1,
          .platform_data = (void *) &kionix_accel_pdata,    
     },
#endif
}
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值