Linux设备驱动入门
Linux驅動配置
什么是驅動程序
無操作系統時的設備驅動
有操作系統時候的設備驅動
有了操作系統之后,設備驅動反而變得更加復雜了,那么還要操作系統做什么?
LINUX中驅動的存在方式
1.編譯進內核,啟動內核時就會驅動此硬件設備
2.模塊方式,編譯生成一個.ko文件,當應用程序需要時再動態加載進內核空間
驅動的分類
字符設備驅動
字符設備驅動是一種可以按字節以串行順序依次訪問的設備,如觸摸屏、磁帶驅動器、鼠標等。字符設備驅動則負責驅動字符設備,這樣的驅動通常實現open 、close、read和write 等系統調用。
網絡設備驅動
任何網絡事務都通過一個接口來進行,這一個接口通常是一個硬件設備(eth0),但是它可以是要給純粹的 軟件設備,比如回環接口(lo)。一個網絡接口負責發送和接收數據報文。
網絡設備沒有對應設備文件。
塊設備驅動
塊設備可以用任意順序進行訪問、以塊為單位進行操作,如硬盤、軟驅等,塊的大小任意,但是一般是512的整數倍
因此 ,塊設備和字符設備的區別是驅動的與內核的接口不同
當其實字符設備和塊設備并沒有明顯的界限,如FLASH設備符合塊設備的特點,當一般還是當作字符設備訪問。
塊設備驅動通常也是實現open、close、read和write系統調用
其他獨特的驅動體系結構
另外。TTY驅動,IIC驅動,USB驅動,PCI驅動,LCD驅動等本身大體可歸納入3個基礎大類,但是對于這些復雜的設備,linux系統還定義了獨特的驅動 體系結構。
編寫LINUX設備驅動的基礎
驅動程序的使用
linux用戶如何使用驅動程序
linux用戶程序通過設備文件(又名:設備節點 eg:/dev/gpio)來使用驅動程序操作設備。
內核編程注意事項
1.要防止并發和競爭
2.不要做浮點運輸
3.不能做太耗時的事情
4.擁有鎖的時候,不要休眠
5.復雜的過程處理交給應用層去完成
6.不能訪問應用層的函數
7.不能有死循環
總結
以上是生活随笔為你收集整理的Linux设备驱动入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala基础入门(二) Scala下载
- 下一篇: 音频专用linux系统,适用于Linux