Android深度探索读书笔记 第七章
? ? 第七章主要介紹led驅(qū)動(dòng)。1測試led驅(qū)動(dòng):測試之前需要用USB數(shù)據(jù)線連接s3c開發(fā)板,然后打開S3C開發(fā)板的電源開關(guān),成功啟動(dòng)后,執(zhí)行build..sh腳本文件編譯和安裝led驅(qū)動(dòng)。2?創(chuàng)建led驅(qū)動(dòng)的設(shè)備文件:1使用cdev_init函數(shù)初始化cdev,cdev的大多數(shù)成員變量并不需要我們自己去初始化,是需要調(diào)用cdev_init函數(shù)就可以初始化大部分cdev的成員變量。2指定設(shè)備號(hào)(直接在代碼中指定;動(dòng)態(tài)分配)3?使用cdev_add函數(shù)將字符設(shè)備添加到內(nèi)核中的字符設(shè)備數(shù)組中。4?使用class_create宏創(chuàng)建struct?class。?5?使用device_create函數(shù)創(chuàng)建設(shè)備文件,該函數(shù)在<linux內(nèi)核源代碼>/include/linux/device.h文件中定義。6卸載led驅(qū)動(dòng)的設(shè)備文件,依次調(diào)用device_destrory、class_destrory和unregister_chrdev_region方法;控制led(通過字符串控制和通過I/O命令控制);其中測試led驅(qū)動(dòng)程序,使用NDK測試led驅(qū)動(dòng)和可執(zhí)行程序測試差不多。不同的是NDKlibrary可以被Java程序調(diào)用。最后介紹的是led驅(qū)動(dòng)的移植,首先要改變的就是leds_init函數(shù),在led驅(qū)動(dòng)裝載后,會(huì)用0xE設(shè)置4個(gè)led的默認(rèn)狀態(tài)。然后需要修改控制led的代碼。其中移植linux驅(qū)動(dòng)有一條非常重要,就是在修改linux驅(qū)動(dòng)的源代碼時(shí),應(yīng)盡量不修改linux驅(qū)動(dòng)的接口。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??http://www.cnblogs.com/sam0304/
轉(zhuǎn)載于:https://www.cnblogs.com/sam0304/p/5561497.html
總結(jié)
以上是生活随笔為你收集整理的Android深度探索读书笔记 第七章的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二阶段个人博客总结8
- 下一篇: WPF 之 线程使用