android系統(tǒng)之sensor學(xué)習(xí)

android系統(tǒng)之sensor學(xué)習(xí)

ID:42594657

大?。?0.16 KB

頁數(shù):9頁

時間:2019-09-18

android系統(tǒng)之sensor學(xué)習(xí)_第1頁
android系統(tǒng)之sensor學(xué)習(xí)_第2頁
android系統(tǒng)之sensor學(xué)習(xí)_第3頁
android系統(tǒng)之sensor學(xué)習(xí)_第4頁
android系統(tǒng)之sensor學(xué)習(xí)_第5頁
資源描述:

《android系統(tǒng)之sensor學(xué)習(xí)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、android系統(tǒng)之sensor學(xué)習(xí)Sensor作為Android系統(tǒng)的一個輸入設(shè)備,對Android設(shè)備來說是必不可少的。Sensor主要包括G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等。這里主要對G-Sensor模塊進(jìn)行解析。我的平臺是AML8276,android系統(tǒng)是4.0.4,kernel是3.0,所用的gsensor是kionix_accel;整個sensor的工作包括driver,HAL,framework(c/c++,java)和application層;首先我們從驅(qū)動driver開始,然后一

2、層層向上看;一,驅(qū)動層在驅(qū)動層,內(nèi)核需要增加和修改的部分包括:???1,相應(yīng)硬件模塊驅(qū)動代碼,包括兩個文件,這里是kionix_accel.h,?kionix_accel.c,分別將kionix_accel.h放到kernel/common/customer/include/linux/中,將kionix_accel.c放到kernel/customer/drivers/misc/中;???2,編譯目錄(kernel/customer/drivers/misc/)下的Makefie和KConfig,在KConfig中增加:?????configSENSORS_KXTJ2???

3、??????tristate"KXTJ2accelerometersensordriver"?????????dependsonI2C????help?????SayyesheretosupportKionix'sKXTJ2accelerometersensor?????在MakeFile下增加:obj-$(CONFIG_SENSORS_KXTJ2)????+=kionix_accel.o????3,在平臺編譯配置文件中(也就是makemenuconfig生成的),增加:CONFIG_SENSORS_KXTJ2=y------->指定編譯到內(nèi)核中,如果是m則編譯成ko;???

4、4,在平臺模塊代碼文件中(kernel/customer/boards/board-m6g17-t069.c),在相應(yīng)的i2c配置中,增加此模塊:staticstructi2c_board_info__initdataaml_i2c_bus_info_b[]={........#ifdefCONFIG_SENSORS_KXTJ2????{?????????I2C_BOARD_INFO("kionix_accel",?KIONIX_ACCEL_I2C_ADDR),?????????//.irq=INT_GPIO_1,?????????.platform_data=(void*)

5、&kionix_accel_pdata,????????},#endif}?經(jīng)過以上幾步操作以后,就可以將此模塊驅(qū)動編譯到內(nèi)核中。G-sensordriver工作的大致流程:系統(tǒng)開機(jī)后,內(nèi)核會先加載i2c總線驅(qū)動,然后再加載設(shè)備驅(qū)動,在設(shè)備驅(qū)動中的init函數(shù)中通過調(diào)用i2c_add_driver(&kionix_accel_driver)注冊i2c_driver;此函數(shù)將driver注冊到i2c_bus_type的總線上,此總線的匹配規(guī)則是利用i2c_client的名稱和i2c_driver中id_table中的名稱作匹配。其中i2c_client是系統(tǒng)自動創(chuàng)建的,boar

6、d-m6g17-t069.c文件中的結(jié)構(gòu)變量staticstructi2c_board_info__initdataaml_i2c_bus_info_b中需要添加G-sensor的設(shè)備信息。當(dāng)匹配成功時,i2c_driver中的probe()函數(shù)開始執(zhí)行。module_init(kionix_accel_init)---->i2c_add_driver(&kionix_accel_driver)----->staticstructi2c_driverkionix_accel_driver={????.driver={?????????.name????=KIONIX_ACCE

7、L_NAME,?????????.owner????=THIS_MODULE,????},????.probe?????????=kionix_accel_probe,????.remove?????????=__devexit_p(kionix_accel_remove),????.id_table????=kionix_accel_id,};Probe()函數(shù)kionix_accel_probe()主要完成以下功能:1.從i2c_client結(jié)構(gòu)中得到初始化信息2.創(chuàng)建G-sensor的工作隊(duì)列2.

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。