bma150重力感应

最近在移植android2.3的系统,芯片是三星的s5pc110。移植bam150的时候遇到了些问题,记录下。不对程序做具体分析,三星在驱动方面做的比较成熟。也许这些记录对想了解驱动的,用处不大,不过是实践的经验,如果你在项目工作中遇到,也许是个不错的参考。
1,驱动程序的位置
drivers\i2c\chips\bma150_driver.c   和 bma150_driver.h
然后在arch\arm\mach-s5pv210\mach-smdkc110.c中对IIC地址配置
{
I2C_BOARD_INFO("bma150", (0x38)),  
},
2,系统中的改动
(1)android2.3.4_GB_T34\out\target\product\smdkc110\root\init.rc
修改init.rc,(也许文件位置不同,不过做这个的都知道init.rc在那里,下面红色的比较重要)
   
#change accelerometer device permission
    
chmod 666 /dev/bma150
    
    
# change ecompass device permission
   
 chmod 666 /dev/mmc31xx
    
chmod 666 /dev/ecompass_ctrl
    
mkdir /data/misc/sensors 0777 system system
    
chmod 777 /dev/device-pm
(2)启动加入的进程
还是在android2.3.4_GB_T34\out\target\product\smdkc110\root\init.rc中
# start memsicd service
service memsicd /system/bin/memsicd
    
oneshot
这样就可以了。在adb shell下,ps查看下进程,看下有没有这个:
/system/bin/memsicd
如果这个有的话,再:
#cd /data/misc/sensors
# ls
看下有没有accel_offset这个文件,如果有的话,这样就好了,试一下有没有方向变化。
=======================================================================================
做完前面的,我的还有一个问题:在应用程序里面可以旋转(android2.3支持360度,如果是android2.2的话,可以参考其它的方法),但是在Launcher里面不会旋转呀,请教下我们做应用的同事,人家说Launcher里面有个值被设成  android:screenOrientation="nosensor",改下这里就好了。
3,Launcher中旋转的方法
在android2.3.4_GB_T34\packages\apps\Launcher2\AndroidManifest.xml里面有两个
   android:screenOrientation= "nosensor"
改成
android:screenOrientation= "sensor"
上面的问题也解决。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值