Android系統移植與驅動開發----第一章

來源:互聯網
上載者:User

標籤:

第一章 Android系統移植與驅動開發

Android原始碼定製完全屬於自己的嵌入式系統,但是支援的裝置不多,所以要移植,而在移植的過程中使用的不得不提的是驅動開發。

Android系統構架主要包括四個層次:Linux核心,C/C++程式碼程式庫,Android  SDK API,應用程式。在第一層Linux中主要包括驅動程式,記憶體管理,進程管理,電源管理等程式,但是不同版本的系統則驅動也不相同,切記不可通用。在第二層C/C++程式碼程式庫中有.so檔案和虛擬機器的Runtime,第三層的java語言是基於library的,第四層的應用程式相當於UI,依賴於library。

Android系統移植分為應用移植和系統移植,但應用移植一般情況下不使用。所以說Android系統移植是指讓作業系統在一個特定硬體平台運行:cpu架構和識別硬體裝置,有驅動在核心中完成的,案例:wifi。還增加了HAL,它位於第二層中,Android不存在直接存取驅動,而是通過HAL。系統移植的根本是原始碼,主要工作就是:移植Linux驅動,移植HAL。HAL是Android系統特有的。

Linux核心版本的查看方法有兩種:1.終端下命令:uname –a;2.cat /proc/version.

Linux核心版本號碼組成部分:主要版本號,次版本號碼,修訂版本號碼,微調版本號碼,特別校正的描述,例如:2.6.29.7-flykernel-12a。

如何學習Linux驅動開發:準備一個自己熟悉的Linux作業系統,用於開發與測試Linux驅動,建議使用Ubuntu Linux10.04以上版本,一塊開發板,學習GUN C,學習相關知識,不斷實踐。

原來在沒有軟體硬體相互的是通過硬體介面進行的,而現在使用驅動將硬體抽象大大方便。Linux將儲存空間和外設分為3大類:字元裝置,塊裝置和網路裝置。區別:字元裝置是以串列順序訪問,不經過快速緩衝,而塊裝置可以隨機訪問,以塊為單位,經過快速緩衝,但對於使用者來說都是使用檔案系統通過open(),close(),read(),write()來訪問,而網路裝置面向資料的接收和發送。案例:USB,PCI,LCD。

在這裡需要明白的是:在Linux驅動中有一個裝載函數和一個卸載函數。

 

Android系統移植與驅動開發----第一章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.