下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【W(wǎng)ord版本下載可任意編輯】 Android平臺(tái)非標(biāo)準(zhǔn)硬件設(shè)備驅(qū)動(dòng)程序設(shè)計(jì) 將構(gòu)造體led_module_t初始化一個(gè)實(shí)例名為HAL_MODULE_INFO_SYM,這個(gè)名稱不能修改,實(shí)例里包含了Stub的模塊信息,主要包括: tag:標(biāo)記了構(gòu)造體的類型,這里的值為HARDWARE_MODULE_TAG;id:LEDStub的模塊ID,在本地服務(wù)向HAL獲取Stub時(shí)調(diào)用的函數(shù)hw_get_module()中,通過這里的id查找LEDStub;methods:是構(gòu)造體hw_module_methods_t的實(shí)例,為HAL定義回調(diào)函數(shù)open()。 這里的open()函數(shù)是一個(gè)必須實(shí)現(xiàn)的回調(diào)函
2、數(shù)接口,在本地服務(wù)獲得Stub對(duì)象后調(diào)用,它負(fù)責(zé)申請(qǐng)構(gòu)造體led_control_device_t的空間,填充信息,注冊(cè)具體操作的回調(diào)函數(shù)接口并打開LED驅(qū)動(dòng)。 構(gòu)造體led_control_device_t繼承了hw_device_t,在open()函數(shù)調(diào)用時(shí)填充的主要信息包括: tag:構(gòu)造體的類型,這里的值為HARDWARE_DEVICE_TAG; module:Stub的模塊,也就是實(shí)例HAL_MODULE_INFO_SYM中的hw_module_t部分; close:釋放LEDStub的回調(diào)函數(shù); fd:打開設(shè)備驅(qū)動(dòng)文件返回的文件描述符; ns_set_on:打開LED燈的回調(diào)函數(shù)指
3、針; ns_set_off:關(guān)閉LED燈的回調(diào)函數(shù)指針。 回調(diào)函數(shù)指針“*ns_set_on”和“*ns_set_off”分別指向?qū)崿F(xiàn)函數(shù)hal_led_on()和hal_led_off(),在實(shí)現(xiàn)函數(shù)中通過系統(tǒng)調(diào)用ioctl()對(duì)LED燈開展開關(guān)控制。 2.3 硬件控制服務(wù)的JNI實(shí)現(xiàn) LED控制本地庫(kù)編譯后為“l(fā)ibled.so”保存在Android文件系統(tǒng)的“/sysem/lib/”目錄下面,LED控制服務(wù)的Android進(jìn)程運(yùn)行后由虛擬機(jī)實(shí)例裝入本地庫(kù),具體實(shí)現(xiàn)過程如圖5所示。 圖5 LED控制服務(wù)的JNI實(shí)現(xiàn)過程 控制服務(wù)調(diào)用System.load()函數(shù),它的虛擬機(jī)實(shí)例就會(huì)裝入LE
4、D控制本地庫(kù),虛擬時(shí)機(jī)首先調(diào)用JNI_OnLoad()函數(shù)完成: (1)把虛擬機(jī)環(huán)境信息保存到本地庫(kù)的一個(gè)構(gòu)造體“JNIEnv”的實(shí)例中; (2)建立一個(gè)應(yīng)用層中的LED控制服務(wù)與本地庫(kù)的JNI函數(shù)表; (3)返回虛擬機(jī)本地庫(kù)使用的JNI版本。 加載完后,應(yīng)用層中的LED控制服務(wù)就可以通過虛擬機(jī)中的JNI函數(shù)表把運(yùn)行的Java函數(shù)轉(zhuǎn)換為本地函數(shù)執(zhí)行。在LED控制服務(wù)類中定義有JNI函數(shù)的方式,例如下面的代碼段: 3 結(jié)語(yǔ) 本文的研究工作是在S3C2440開發(fā)板上開展的,以給開發(fā)板上的LED燈增加驅(qū)動(dòng)程序?yàn)槔故玖艘环N為Android平臺(tái)非標(biāo)準(zhǔn)硬件增加驅(qū)動(dòng)程序的設(shè)計(jì)方案,對(duì)于實(shí)現(xiàn)其他設(shè)備的驅(qū)動(dòng)具有一定的借鑒意義。由于各種硬件設(shè)備及其接口差異較大,本文著重于驅(qū)動(dòng)程序的設(shè)計(jì)方案,沒有討論相關(guān)的硬件接口驅(qū)動(dòng)細(xì)節(jié)。隨著Android平臺(tái)日漸成熟以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品價(jià)格監(jiān)管的國(guó)際經(jīng)驗(yàn)借鑒-洞察分析
- 語(yǔ)義相似度評(píng)估-洞察分析
- 語(yǔ)言演變與語(yǔ)義場(chǎng)動(dòng)態(tài)變化研究-洞察分析
- 遺傳變異與結(jié)腸癌關(guān)聯(lián)-洞察分析
- 《電泳涂裝基礎(chǔ)知識(shí)》課件
- 2024年柳州市民族中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 養(yǎng)殖購(gòu)買飼料合同(2篇)
- 2024年浙教新版選修3化學(xué)下冊(cè)階段測(cè)試試卷含答案
- 2024年朝陽(yáng)市第二醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年華東師大版九年級(jí)地理下冊(cè)階段測(cè)試試卷
- 急診科運(yùn)用PDCA循環(huán)降低急診危重患者院內(nèi)轉(zhuǎn)運(yùn)風(fēng)險(xiǎn)品管圈QCC專案結(jié)題
- 2024年統(tǒng)編版新教材語(yǔ)文小學(xué)一年級(jí)上冊(cè)全冊(cè)單元測(cè)試題及答案(共8單元)
- 醫(yī)務(wù)人員職業(yè)暴露預(yù)防及處理課件(完整版)
- DB11T 1470-2022 鋼筋套筒灌漿連接技術(shù)規(guī)程
- 護(hù)士急診科進(jìn)修匯報(bào)
- 2025年統(tǒng)編版中考語(yǔ)文課內(nèi)文言文《湖心亭看雪》三年中考試題+模擬題(解析版)
- 2024學(xué)年四川省成都天府新區(qū)九年級(jí)上學(xué)期一診數(shù)學(xué)模擬試題(原卷版)
- 倉(cāng)庫(kù)勞務(wù)外包方案
- 2024至2030年中國(guó)頸部按摩器行業(yè)發(fā)展戰(zhàn)略規(guī)劃及市場(chǎng)規(guī)模預(yù)測(cè)報(bào)告
- 人教版英語(yǔ)2024七年級(jí)上冊(cè)全冊(cè)單元測(cè)試卷
- 《工程招投標(biāo)與合同管理》期末考試復(fù)習(xí)題及參考答案
評(píng)論
0/150
提交評(píng)論