- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android中G-Sensor相关流程
1.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips/sensorioctl.hinclude/linux/lis331dl.h并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2c_devs1[] __initdata中需要添加G-sensor的设备信息,以使driver成功加载。同时在该文件中添加一个结构变量//JayLin add for Gsensorstruct lis331dl_platform_data lisGsensor_platform_data={.name=lis331dl,.pin_clk=0,.pin_data=0,.open_drain=1,.interrupt=IRQ_EINT(3),};该结构变量在i2c_devs1[] __initdata中被引用。/kernel/arch/arm/mach-s3c6410/mach-ur6410.c 中需要包含lis331dl.h。在rootfs/system/etc/init.board.sh的最后一行加上mknod /dev/sensorioctl c 51 201创建节点供ioctl使用。编译后的sensor.so放在/rootfs/system/lib/hw下。sensor.so和driver之间通过ioctl实现对G-sensor的状态控制。ioctl的命令编号定义在头文件sensorioctl.h中,分别放在kernel/include/linux下和androidsourcecode/hardware/libhardware/include/hardware下供driver和sensor.so使用。G-sensor driver工作的大致流程:系统开机后,先加载i2c总线驱动,然后加载设备驱动。在设备驱动中的init函数中通过调用i2c_add_driver(lis331dl_i2c_driver)注册i2c_driver;此函数将driver注册到i2c_bus_type的总线上,此总线的匹配规则是利用i2c_client的名称和i2c_driver中id_table中的名称作匹配。其中i2c_client是注册板载信息是系统自动创建的,注册板载信息的过程就是在/kernel/arch/arm/mach-s3c6410 /mach-ur6410.c文件中i2c chanel1的结构变量i2c_devs1[] __initdata中需要添加G-sensor的设备信息。当匹配成功时,i2c_driver中的probe()函数开始执行。Probe()函数主要完成以下功能:1.从i2c_client结构中得到初始化信息2.创建G-sensor的工作队列2.注册input_device设备3.读取Chip ID4.设置寄存器,使能G-sensor5.设置并启动中断当G-sensor上报数据的时候会触发中断,然后在中断处理函数中提交一个报值的任务到队列中并禁止中断。在工作队列中读数G-sensor的数据并上报到input子系统中,最后使能中断。2.android上层应用apk到G-sensor driver的大致流程:Android对于Sensor的API定义在 hardware/libhardware/include/hardware/sensor.h中, 要求在sensor.so提供以下8个API函数[控制方面]int (*open_data_source)(struct sensors_control_device_t *dev);int (*activate)(struct sensors_control_device_t *dev, int handle, int enabled);int (*set_delay)(struct sensors_control_device_t *dev, int32_t ms);int (*wake)(struct sensors_control_device_t *dev);[数据方面]int (*data_open)(struct sensors_data_device_t *dev, int fd);int (*data_close)(struct sensors_data_device_t *dev);int (*poll)(struct se
您可能关注的文档
最近下载
- 基本不等式及其应用.pptx VIP
- 太太药业系统切换策略-太太基因20030718.doc VIP
- 基于单片机的温室大棚控制系统设计.doc VIP
- SAP ERP_委外业务操作手册_v1.0.doc VIP
- 党课:2025年永葆自我革命精神在正风肃纪中砥砺前行PPT党课.pptx VIP
- 动物防疫技术 动物疫病免疫学检测技术 2动物疫病控制-实验室检测-动物疫病免疫学检测技术.ppt VIP
- 2025年兵团连队考试题库及答案.docx
- SAP上线准备策略及上线支持策略讨论纪要.doc VIP
- 四年级数学-课前三分钟讲稿-三角形和四边形-图形稳定性的应用--精品课件.ppt VIP
- 02-全员培训-U9cloud全产品介绍.pptx VIP
文档评论(0)