解析如何在android中增加gsensor驅(qū)動(dòng)(MMA7660)
系統(tǒng)原來(lái)用的是BOSCH_BMA222的gsensor, 現(xiàn)在要求換成使用MMA7660,我們來(lái)看一下怎樣增加驅(qū)動(dòng)和調(diào)試過(guò)程。
1. 修改Makefie
首先,修改放置驅(qū)動(dòng)的目錄里的Makefile(kernel/driver/misc),添置如下語(yǔ)句:
obj-$(CONFIG_SENSORS_MMA7660) += mma7660.o
2. 增加驅(qū)動(dòng)文件
把驅(qū)動(dòng)文件mma7660.c添加到kernel/driver/misc下。
3. 修改.config文件,把下面兩行注釋掉
# CONFIG_BOSCH_SENSOR=y
# CONFIG_BOSCH_BMA222=y
再增加下面這項(xiàng)
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
這時(shí)看編譯輸出,系統(tǒng)沒有編譯mma7660.c, 而且編譯后.config的MMA7660的宏也被覆蓋掉了,所以這樣是沒有辦法掛載的。之所以出現(xiàn)這個(gè)錯(cuò)誤的原因,是因?yàn)閙ake的時(shí)候會(huì)檢查各個(gè)Kconfig文件,沒有的選項(xiàng)會(huì)自動(dòng)率掉,所以,我們還需要修改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ū)動(dòng)就被編譯了。
相關(guān)文章
Android編程實(shí)現(xiàn)圖片拍照剪裁的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)圖片拍照剪裁的方法,涉及Android調(diào)用裁剪工具操作圖片的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
Android實(shí)現(xiàn)循環(huán)輪播跑馬燈的效果
這篇文章主要介紹了為大家詳細(xì)介紹了如何通過(guò)Android實(shí)現(xiàn)循環(huán)輪播跑馬燈的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Android TextSwitcher實(shí)現(xiàn)文字上下翻牌效果(銅板街)
這篇文章主要介紹了Android TextSwitcher實(shí)現(xiàn)文字上下翻牌效果(銅板街),需要的朋友可以參考下2017-05-05
Android開發(fā)Jetpack組件Lifecycle原理篇
這一篇文章來(lái)介紹Android?Jetpack架構(gòu)組件的Lifecycle;?Lifecycle用于幫助開發(fā)者管理Activity和Fragment?的生命周期,?由于Lifecycle是LiveData和ViewModel的基礎(chǔ);所以需要先學(xué)習(xí)它2022-08-08
Android點(diǎn)擊EditText文本框之外任何地方隱藏鍵盤的解決辦法
這篇文章主要介紹了Android點(diǎn)擊EditText文本框之外任何地方隱藏鍵盤的解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
Android RecyclerView添加上拉加載更多功能
這篇文章主要為大家詳細(xì)介紹了Android RecyclerView如何添加上拉加載更多功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
android byte[] 和short[]轉(zhuǎn)換的方法代碼
這篇文章主要介紹了android byte[] 和short[]轉(zhuǎn)換的方法代碼,有需要的朋友可以參考一下2014-01-01
android跑馬燈出現(xiàn)重復(fù)跳動(dòng)以及不滾動(dòng)問(wèn)題的解決方法
這篇文章主要介紹了android跑馬燈出現(xiàn)重復(fù)跳動(dòng)以及不滾動(dòng)問(wèn)題的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Android 斷點(diǎn)續(xù)傳的原理剖析與實(shí)例講解
這篇文章主要介紹了Android 斷點(diǎn)續(xù)傳的原理剖析與實(shí)例講解的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android?Studio實(shí)現(xiàn)帶三角函數(shù)對(duì)數(shù)運(yùn)算功能的高級(jí)計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android?Studio實(shí)現(xiàn)帶三角函數(shù)對(duì)數(shù)運(yùn)算功能的高級(jí)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

