解析如何在android中增加gsensor驅(qū)動(MMA7660)
系統(tǒng)原來用的是BOSCH_BMA222的gsensor, 現(xiàn)在要求換成使用MMA7660,我們來看一下怎樣增加驅(qū)動和調(diào)試過程。
1. 修改Makefie
首先,修改放置驅(qū)動的目錄里的Makefile(kernel/driver/misc),添置如下語句:
obj-$(CONFIG_SENSORS_MMA7660) += mma7660.o
2. 增加驅(qū)動文件
把驅(qū)動文件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
這時看編譯輸出,系統(tǒng)沒有編譯mma7660.c, 而且編譯后.config的MMA7660的宏也被覆蓋掉了,所以這樣是沒有辦法掛載的。之所以出現(xiàn)這個錯誤的原因,是因?yàn)閙ake的時候會檢查各個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
#ifdef CONFIG_SENSORS_MMA7660
{
I2C_BOARD_INFO("mma7660", 0x4C),
.irq = INT_GPIO_2,
},
#endif
7. 再進(jìn)行編譯,驅(qū)動就被編譯了。
相關(guān)文章
Android WebView上實(shí)現(xiàn)JavaScript與Java交互
這篇文章主要介紹了Android WebView上實(shí)現(xiàn)JavaScript與Java交互 的相關(guān)資料,需要的朋友可以參考下2016-03-03Android利用反射機(jī)制調(diào)用截屏方法和獲取屏幕寬高的方法
這篇文章主要介紹了Android利用反射機(jī)制調(diào)用截屏方法和獲取屏幕寬高的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Android 判斷SIM卡屬于哪個移動運(yùn)營商詳解及實(shí)例
這篇文章主要介紹了Android 判斷SIM卡屬于哪個移動運(yùn)營商詳解相關(guān)資料,并附實(shí)例代碼,具有一定參考價值,需要的朋友可以參考下2016-11-11Android中創(chuàng)建對話框(確定取消對話框、單選對話框、多選對話框)實(shí)例代碼
這篇文章主要介紹了詳解Android中創(chuàng)建對話框(確定取消對話框、單選對話框、多選對話框)的相關(guān)資料,需要的朋友可以參考下2016-04-04Android編程布局(Layout)之AbsoluteLayout用法實(shí)例分析
這篇文章主要介紹了Android編程布局(Layout)之AbsoluteLayout用法,結(jié)合實(shí)例形式簡單分析了Android絕對布局AbsoluteLayout的實(shí)現(xiàn)方法,需要的朋友可以參考下2015-12-12Android Studio 中的Gradle構(gòu)建系統(tǒng)示例
這篇文章主要介紹了Android Studio 中的Gradle構(gòu)建系統(tǒng)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11