Andriod深度探索—HAL與驅動開發 第九 章 讀書筆記and一點心得

HAL是創建在Linux驅動上的一套程序庫。這套程序庫並不屬於Linux內核,而是屬於Linux內核層之上的應用層。GoogleAndroid增長HAL的主要目的除了儘可能避免應用程序直接訪問Linux驅動外,還有一個重要緣由,那就是保護「私人財產」。函數

GoogleAbdroid加入HAL主要有以下目的:spa

    統一硬件的調試接口。調試

    解決了GPL版權問題。blog

    針對一些特殊要求。接口

編寫一款支持HALLinux驅動程序的步驟博客

    第一步:編寫Linux驅動變量

    第二步:編寫HAL Libraymodule

    第三步:編寫 Server Libary原理

編寫HAL模塊的步驟和原理硬件

    第一步:定義結構體和宏  

           描述HAL模塊的hw_module_t結構體

           描述HAL設備的hw_device_t結構體

           描述模塊入口函數的hw_module_methods_t結構體

    第二步:編寫HAL模塊的open函數

           初始化hw_device_t的子結構體

           打開設備文件

           初始化寄存器

    第三步:定義hw_module_methods_t結構體變量

        第四步:定義HAL_MODULE_INFO_SYM變量

        第五步:編寫HAL模塊的close函數

        第六步:編寫控制LED的函數

心得:在Android系統中使用Linux驅動有兩種方式。一種是經過傳統的方式直接與Linux驅動交互。另一種是Android特有的,就是經過HAL模塊。HAL模塊本質上就是經過Linux共享庫與Linux驅動交互,而後應用程序再訪問Linux共享庫。

本人博客地址:http://home.cnblogs.com/u/jie617530/

相關文章
相關標籤/搜索