android系统之sensor学习

android系统之sensor学习

ID:42594657

大小:40.16 KB

页数:9页

时间:2019-09-18

android系统之sensor学习_第1页
android系统之sensor学习_第2页
android系统之sensor学习_第3页
android系统之sensor学习_第4页
android系统之sensor学习_第5页
资源描述:

《android系统之sensor学习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、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开始,然后一

2、层层向上看;一,驱动层在驱动层,内核需要增加和修改的部分包括:   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中增加:     configSENSORS_KXTJ2   

3、      tristate"KXTJ2accelerometersensordriver"         dependsonI2C    help     SayyesheretosupportKionix'sKXTJ2accelerometersensor     在MakeFile下增加:obj-$(CONFIG_SENSORS_KXTJ2)    +=kionix_accel.o    3,在平台编译配置文件中(也就是makemenuconfig生成的),增加:CONFIG_SENSORS_KXTJ2=y------->指定编译到内核中,如果是m则编译成ko;   

4、4,在平台模块代码文件中(kernel/customer/boards/board-m6g17-t069.c),在相应的i2c配置中,增加此模块:staticstructi2c_board_info__initdataaml_i2c_bus_info_b[]={........#ifdefCONFIG_SENSORS_KXTJ2    {         I2C_BOARD_INFO("kionix_accel", KIONIX_ACCEL_I2C_ADDR),         //.irq=INT_GPIO_1,         .platform_data=(void*)

5、&kionix_accel_pdata,        },#endif} 经过以上几步操作以后,就可以将此模块驱动编译到内核中。G-sensordriver工作的大致流程:系统开机后,内核会先加载i2c总线驱动,然后再加载设备驱动,在设备驱动中的init函数中通过调用i2c_add_driver(&kionix_accel_driver)注册i2c_driver;此函数将driver注册到i2c_bus_type的总线上,此总线的匹配规则是利用i2c_client的名称和i2c_driver中id_table中的名称作匹配。其中i2c_client是系统自动创建的,boar

6、d-m6g17-t069.c文件中的结构变量staticstructi2c_board_info__initdataaml_i2c_bus_info_b中需要添加G-sensor的设备信息。当匹配成功时,i2c_driver中的probe()函数开始执行。module_init(kionix_accel_init)---->i2c_add_driver(&kionix_accel_driver)----->staticstructi2c_driverkionix_accel_driver={    .driver={         .name    =KIONIX_ACCE

7、L_NAME,         .owner    =THIS_MODULE,    },    .probe         =kionix_accel_probe,    .remove         =__devexit_p(kionix_accel_remove),    .id_table    =kionix_accel_id,};Probe()函数kionix_accel_probe()主要完成以下功能:1.从i2c_client结构中得到初始化信息2.创建G-sensor的工作队列2.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。