第九章

第九章  linux

       HAL是創建在linux驅動之上的一套不屬於linux內核的程序庫。它屬於linux內核層之上的應用層。HAL中存放了linux驅動中不該該保留的任何不想公開的業務邏輯代碼。因此HAL的目的是:統一硬件的調用接口、解決QPL版權問題、針對一些特殊要求。架構

Android HAL架構的發展:函數

一、在Android系統中使用程序庫(.so文件)調用位於內核空間的linux驅動。而後Android應用程序(APK文件)能夠經過NDK程序訪問HAL中的額程序庫,或直接在Android應用程序中訪問HAL中的程序庫。測試

         二、在HAL模塊的核心代碼保持原狀,添加新的HAL架構要求的代碼入口。改代碼無需裝載.so文件,只須要經過一個ID來定位相應的.so文件。命令行

編寫一款支持HAL的linux驅動程序的步驟:接口

一、編寫linux驅動變量

二、編寫HAL Librarymodule

三、編寫Service Libraryfile

測試讀寫寄存器操做的命令行語法格式:硬件

Rwdev:命令行程序。

<r|w>:讀或寫命令,r表示讀取寄存器中的數據,w表示向寄存器寫入數據。

<dev_file>:設備文件名,例如/dev/s3c6410_leds_hal。

<byte_count>:寫入或讀取的字節數。

[byte1] [byte2] …[byten]:寫入的字節數。

 編寫調用LED驅動的HAL模塊的步驟:

一、定義結構體和宏

二、編寫HAL模塊的open函數

三、定義hw_module_methods_t結構體變量

四、定義HAL_MODULE_INFO_SYM變量

五、編寫HAL模塊的close函數

六、編寫控制LED的函數

相關文章
相關標籤/搜索