读“硬件抽象层:HAL”的心得
1 HAL是建立在Linux驅(qū)動上的一套程序庫,并不屬于Linux內(nèi)核,而是屬于Linux內(nèi)核層上的應(yīng)用層。它的目的就是保護“私人財產(chǎn)”,避免應(yīng)用程序直接訪問Linux驅(qū)動。
2在Android系統(tǒng)中使用Linux驅(qū)動有兩種方式。一種就是通過傳統(tǒng)的方式直接與Linux交互,如直接讀取設(shè)備文件中的數(shù)據(jù)。另外一種是Andrid特有的,就是通過HAL模塊。
3 HAL模塊本質(zhì)上就是通過Linux共享庫(.so)與Linux驅(qū)動交互,然后應(yīng)用程序再訪問Linux共享庫。
4每一個HAL共享庫指定一個ID,通過ID來定位相應(yīng)的.so文件(在這里叫做Stub)。Google也建議使用Stub的方式編寫HAL模塊。
5編寫HAL模塊的步驟和原理:
(1)定義結(jié)構(gòu)體和宏
(2)編寫HAL模塊的open函數(shù)
(3)定義hw_module_methods_t結(jié)構(gòu)體變量
(4)定義HAL_MODULE_INFO_SYM變量
(5)編寫HAL模塊的close函數(shù)
(6)編寫控制LED的函數(shù)
6Android系統(tǒng)的屬性文件共有4個: /default.prop;/system/build.prop;/system/default.prop;/data/local.prop。Android在啟動時會自動裝載這些屬性文件。
?
我的博客地址http://www.cnblogs.com/zhanghui4521/
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhanghui4521/p/5613001.html
總結(jié)
以上是生活随笔為你收集整理的读“硬件抽象层:HAL”的心得的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发 时间类型的转换
- 下一篇: 15.6.6-sql字符串组装技巧