解析如何在android中增加gsensor驱动(MMA7660)_Android

系统原来用的是BOSCH_BMA222的gsensor, 现在要求换成使用MMA7660,我们来看一下怎样增加驱动和调试过程。
1. 修改Makefie
首先,修改放置驱动的目录里的Makefile(kernel/driver/misc),添置如下语句:

复制代码 代码如下:

obj-$(CONFIG_SENSORS_MMA7660)   += mma7660.o 

2. 增加驱动文件
把驱动文件mma7660.c添加到kernel/driver/misc下。
3. 修改.config文件,把下面两行注释掉

复制代码 代码如下:

# CONFIG_BOSCH_SENSOR=y
# CONFIG_BOSCH_BMA222=y

再增加下面这项

复制代码 代码如下:

CONFIG_SENSORS_MMA7660=y

编译,显示提示:

复制代码 代码如下:

make uImage -j16
scripts/kconfig/conf -s arch/arm/Kconfig
*
* Restart config...
*
*
* Misc devices
*
Misc devices (MISC_DEVICES) [Y/n/?] y
  Analog Devices AD525x Digital Potentiometers (AD525X_DPOT) [N/m/y/?] n
  Android pmem allocator (ANDROID_PMEM) [N/y] n
  Integrated Circuits ICS932S401 (ICS932S401) [N/m/y/?] n
  Enclosure Services (ENCLOSURE_SERVICES) [N/m/y/?] n
  Kernel Debugger Core (KERNEL_DEBUGGER_CORE) [N/y/?] n
  Intersil ISL29003 ambient light sensor (ISL29003) [N/m/y/?] n
  Taos TSL2550 ambient light sensor (SENSORS_TSL2550) [N/m/y/?] n
  Dallas DS1682 Total Elapsed Time Recorder with Alarm (DS1682) [N/m/y/?] n
  Texas Instruments DAC7512 (TI_DAC7512) [N/m/y/?] n
  UID based statistics tracking exported to /proc/uid_stat (UID_STAT) [Y/n] y
  Bluetooth power control driver for TI wl127x (WL127X_RFKILL) [N/m/y/?] n
  Android kernel panic diagnostics driver (APANIC) [N/y/?] n
   6 Axis sensor mpu3050 (SIX_AXIS_SENSOR_MPU3050) [N/y] n
  Motion Processing Unit driver version
  > 1. MPU version < v3.4.0 (MPU_PRE_V340)
    2. MPU version >= v3.4.0 (MPU_NEW)
  choice[1-2]: 1
  BOSCH BMA222 acceleration sensor (BOSCH_SENSOR) [N/m/y/?] (NEW) N
  *
  * Miscellaneous I2C Chip support
  *
  BMA222 acceleration sensor support (BOSCH_BMA222) [N/m/y/?] (NEW) N
#
# configuration written to .config
 

这时看编译输出,系统没有编译mma7660.c, 而且编译后.config的MMA7660的宏也被覆盖掉了,所以这样是没有办法挂载的。之所以出现这个错误的原因,是因为make的时候会检查各个Kconfig文件,没有的选项会自动率掉,所以,我们还需要修改Kconfig文件。
5. 修改kernel/driver/misc/Kconfig,在menuconfig MISC_DEVICES下添加如下:

复制代码 代码如下:

config SENSORS_MMA7660
        tristate "MEMSIC Accelerometer Sensor MMA7660 Driver Support"
        depends on I2C
        help
          If you say yes here you get support for the MEMSIC accelerometer sensor

6. 由于这里gsensor是一个i2c的外挂,所以,还必须修改板子的i2c的device信息,以便系统可以查找到设备。修改板子的资源文件(我这里的特例是./arch/arm/mach-meson3/board-m3-reff24.c),在结构aml_i2c_bus_info_1[]中添加一下信息:

复制代码 代码如下:

#ifdef CONFIG_SENSORS_MMA7660
       {
                I2C_BOARD_INFO("mma7660", 0x4C),
                .irq = INT_GPIO_2,
        },
#endif

7. 再进行编译,驱动就被编译了。

时间: 2024-09-12 22:41:58

解析如何在android中增加gsensor驱动(MMA7660)_Android的相关文章

解析如何在android中增加gsensor驱动(MMA7660)

系统原来用的是BOSCH_BMA222的gsensor, 现在要求换成使用MMA7660,我们来看一下怎样增加驱动和调试过程. 1. 修改Makefie 首先,修改放置驱动的目录里的Makefile(kernel/driver/misc),添置如下语句: 复制代码 代码如下: obj-$(CONFIG_SENSORS_MMA7660)   += mma7660.o 2. 增加驱动文件 把驱动文件mma7660.c添加到kernel/driver/misc下. 3. 修改.config文件,把下面

如何在Android中捕获cocos的崩溃信息

问题描述 如何在Android中捕获cocos的崩溃信息 需要手机Android项目中的崩溃信息到文件中,然后上传服务器.我现在知道怎么收集Android的崩溃信息到文件中,也知道如何上传服务器.但是我的项目中有cocos的代码,我怎么能收集到cocos的崩溃信息呢? 我看过http://www.cnblogs.com/lancidie/archive/2013/04/13/3019349.html这里面的内容,想试着做出来,但是在把jni部分的代码粘进去以后,出现了很多错误,代码如下: #in

全志平台boot框架中增加设备驱动过程分析

全志平台boot框架中增加设备驱动过程分析          在boot启动阶段,大家都知道他的主要目的就是引导uboot,uboot在引导内核,从而让整个系统运作起来.全志的boot阶段,对应平板这一块,它会驱动LCD,显示一些开机LOGO,这个过程很快,也就1-2秒钟的时间.然而对于车载行业应用来说,可能需要再boot阶段做一些事情.比如,机器冷启动,大家都知道android启动时间还是比较长的,那么怎么使得客户能快速的用上倒车影像的功能呢?这就需要动脑筋了. /**************

如何在phpMyAdmin中增加innoDB

  如何在phpMyAdmin中增加innoDB 使用phpNow(Win32下绿色免费的Apache+PHP+MySQL环境套件包)发现默认不支持innoDB引擎的数据库,尝试了网上很多方法,发下如下方法有效,记录下来供大家参考: 1,修改my.ini 在phpNow的工具MySQL目录(如...PHPnow-1.5.6MySQL-5.0.90)中找到my.ini, 搜索skip-innodb,搜索到之后,将其注释掉(#skip-innodb),注意网上有人说还要将下面以innoDB开头对去掉

如何在android 中添加行断点?

问题描述 如何在android 中添加行断点? 请问如何在 Android 中动态的添加行断点呢? TableRow tr5 = new TableRow(this); tr5.setLayoutParams(new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); TextView b5 = new TextView(this); b5.setLayoutParams(new LayoutParams(

如何在 android 中动态的添加 checkboxs?

问题描述 如何在 android 中动态的添加 checkboxs? 我想在android中动态的创建edittext 字段,也创建了按钮点击事件.当我点击按钮,check boxes就会显示.但是当我在onclick动作上创建checkbox对象,就显示错误.使用的代码如下,为什么会显示错误呢? public class InflationActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceS

如何在 android 中设置一个用户名和密码文件

问题描述 如何在 android 中设置一个用户名和密码文件 我设置了两个edittext和一个button.我想设置一个特殊的用户名和密码,当我点击按钮时,如果用户名和密码正确,就会打开一个新的intent,否则显示一个toast.我用的下面的代码显示不同的toast,但是没有运行出来,总是显示 ""incorrect"".如何解决这个问题呢? b.setOnClickListener(new OnClickListener() { public void onC

如何在 android 中保存key?

问题描述 如何在 android 中保存key? 有什么方法可以在android中保存key呢?这样即使key已经被root,其他人也不能重新取回.不是shared preferences而是要将key放在安卓中非常保密的地方. 主要是要保存服务器发送里的动态key. 如何在 android 中保存key?

android-如何在Android中再次发动真正的onCreate

问题描述 如何在Android中再次发动真正的onCreate 如题. 比如,如果我有一个button名为:Restart,我想要在应用再次发动一次真正的onCreate. 解决方案 重新启动所在的activity,这样 Intent intent = getIntent(); overridePendingTransition(0, 0); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); startActivity(i