99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>基于安卓的非標(biāo)準驅(qū)動程序設(shè)計解析

基于安卓的非標(biāo)準驅(qū)動程序設(shè)計解析

2017-10-27 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

 Android系統(tǒng)是Google推出的基于Linux內(nèi)核和Java架構(gòu)的操作系統(tǒng),在很短的時間內(nèi)已成為主流的手機操作系統(tǒng),并已逐步擴展應(yīng)用到嵌入式系統(tǒng)、平板電腦和上網(wǎng)本上。它既有Linux系統(tǒng)所具有的硬件平臺可移植性,也因使用Java語言開發(fā)應(yīng)用程序帶來了應(yīng)用軟件只編寫一次即可在所有平臺運行的巨大優(yōu)勢。Android雖然主要基于已有的技術(shù),但在體系結(jié)構(gòu)設(shè)計上有較大的創(chuàng)新。其主要設(shè)計目標(biāo)之一就是要使應(yīng)用程序和系統(tǒng)能獨立于具體的計算機體系結(jié)構(gòu)和硬件平臺,表現(xiàn)在設(shè)備驅(qū)動程序設(shè)計上,對于已有的Linux標(biāo)準設(shè)備驅(qū)動程序可以直接繼續(xù)使用,只需為其增加應(yīng)用層JNI接口。但對于Linux沒有的非標(biāo)準設(shè)備則提倡在Linux內(nèi)核中驅(qū)動部分只做很少的接口工作,盡量把驅(qū)動程序的主要處理放在Android的上層架構(gòu)中,即在應(yīng)用層實現(xiàn)。本文對Android系統(tǒng)的底層實現(xiàn)技術(shù)進行深入的研究,包括Android的硬件抽象層和JNI技術(shù)實現(xiàn)等。并以S3C2440開發(fā)板上的LED燈設(shè)計顯示驅(qū)動程序為例,提出了一種非標(biāo)準硬件設(shè)備驅(qū)動程序的設(shè)計和實現(xiàn)方案。
  1 Android系統(tǒng)驅(qū)動程序架構(gòu)
  1.1 驅(qū)動程序分層體系結(jié)構(gòu)
  Android是基于Linux的,它使用了Linux內(nèi)核,但應(yīng)用程序使用Java語言開發(fā),所以應(yīng)用程序在調(diào)用設(shè)備驅(qū)動時不能像一般的Linux應(yīng)用程序那樣直接使用系統(tǒng)調(diào)用,必須通過Java虛擬機的JNI的本地(Native)方法使用設(shè)備。另一方面,Android要成為一個通用性強的平臺,必須加強它的可移植性。這也是在Android架構(gòu)添加一個硬件抽象層(HAL)的原因,目的是為設(shè)備的調(diào)用提供一個更高級的封裝圖1所示為Android驅(qū)動程序架構(gòu)。
  HAL Stub是以Linux共享庫(*.so)的形式存在,在整個驅(qū)動架構(gòu)中,它是設(shè)備驅(qū)動程序運行在用戶空間的一部分,它向上為Dalvik虛擬機提供硬件設(shè)備的抽象接口,向下通過系統(tǒng)調(diào)用與Linux內(nèi)核中的驅(qū)動程序進行數(shù)據(jù)交互。在這個過程中HAL可以對驅(qū)動程序的數(shù)據(jù)進行處理,也就是說在Linux內(nèi)核中的驅(qū)動程序部分只需要提供一個與硬件設(shè)備傳輸數(shù)據(jù)接口的功能,而其余具體的操作可以由HAL完成。
  1.2 Android的硬件抽象層
  Android的硬件抽象層HAL(Hardware Abstract Layer)在Android的架構(gòu)中是在庫這一層中,通過這一層,硬件廠商可以把部分設(shè)備的驅(qū)動源碼封裝在這一層而不公開源代碼。
  對圖1分析,設(shè)計HAL就是為了把應(yīng)用框架和Linux內(nèi)核分離出來,讓Android使用Linux內(nèi)核而又不完全依賴Linux內(nèi)核。當(dāng)然,驅(qū)動程序并不是完全從Linux內(nèi)核中分離出來,一些基本的處理必須由內(nèi)核來完成,HAL只是分擔(dān)了Linux設(shè)備驅(qū)動的部分功能,至于這部分的功能占驅(qū)動程序功能的比例目前并沒有一個標(biāo)準。
  基于安卓的非標(biāo)準驅(qū)動程序設(shè)計解析
  在Android系統(tǒng)發(fā)展過程中,HAL的實現(xiàn)也逐步有了一些變化,舊的HAL是一種模塊化的思想,通過共享庫的形式由Runtime在JNI時以函數(shù)調(diào)用方法調(diào)用,這種做法并沒有通過封裝,即上層應(yīng)用可以直接調(diào)用硬件。另外,這種方法可被多個進程使用,映射到多個進程空間中浪費內(nèi)存資源。
  現(xiàn)在HAL提出一種Stub的思想,HAL Stub是一種代理的概念,Stub同樣是以共享庫(*.so)格式存在,但上層應(yīng)用并不像加載動態(tài)庫那樣調(diào)用Stub。這種HAL是由模塊與Stub結(jié)合而成,Runtime通過模塊提供的統(tǒng)一接口獲取并操作Stub。Stub向HAL提供操作的回調(diào)函數(shù),Runtime向HAL取得指定模塊的操作函數(shù)后,調(diào)用這些回調(diào)函數(shù)。這是一種間接函數(shù)調(diào)用的方式,HAL里包含了多個Stub。圖2為HAL Stib原理。
  基于安卓的非標(biāo)準驅(qū)動程序設(shè)計解析
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
  2. 0.42 MB   |  4次下載  |  2 積分
  3. 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數(shù)據(jù)手冊
  4. 1.19 MB   |  1次下載  |  免費
  5. 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
  6. 0.78 MB   |  1次下載  |  免費
  7. 4ZX8002E 觸摸調(diào)光LED集成IC數(shù)據(jù)手冊
  8. 2.27 MB   |  次下載  |  免費
  9. 5SOD-323塑料封裝ESD保護二極管SD05T系列規(guī)格書
  10. 1.07 MB   |  次下載  |  免費
  11. 6SOT-23塑料封裝ESD保護二極管SMxx Series系列規(guī)格書
  12. 0.93 MB   |  次下載  |  免費
  13. 7高效率整流二極管HER151 THRU HER158數(shù)據(jù)手冊
  14. 0.54 MB   |  次下載  |  免費
  15. 8低壓降肖特基整流管SL22 THRU SL210數(shù)據(jù)手冊
  16. 1.03 MB   |  次下載  |  免費

本月

  1. 1三相逆變主電路的原理圖和PCB資料合集免費下載
  2. 27.35 MB   |  111次下載  |  1 積分
  3. 2運算放大器基本電路中文資料
  4. 1.30 MB   |  16次下載  |  免費
  5. 3蘋果iphone 11電路原理圖
  6. 4.98 MB   |  11次下載  |  5 積分
  7. 4TL494工業(yè)用開關(guān)電源原理圖資料
  8. 0.22 MB   |  10次下載  |  1 積分
  9. 5常用電子元器件介紹
  10. 3.21 MB   |  8次下載  |  免費
  11. 6QW2893應(yīng)急燈專用檢測芯片
  12. 590.40 KB  |  4次下載  |  免費
  13. 7相關(guān)協(xié)議信號總結(jié)
  14. 0.94 MB   |  4次下載  |  免費
  15. 8EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
  16. 0.42 MB   |  4次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935130次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183344次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81591次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分