国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

如何編寫Linux設備驅動程序

2020-10-28 18:54:20
字體:
來源:轉載
供稿:網友

    Linux是Unix操作系統的一種變種,在Linux下編寫驅動程序的原理和思想完全類似于其他的Unix系統,但它dos或window環境下的驅動程序有很大的區別。在Linux環境下設計驅動程序,思想簡潔,操作方便,功能也很強大,但是支持函數少,只能依賴kernel中的函數,有些常用的操作要自己來編寫,而且調試也不方便。本人這幾周來為實驗室自行研制的一塊多媒體卡編制了驅動程序,獲得了一些經驗,愿與Linux fans共享,有不當之處,請予指正。

  以下的一些文字主要來源于khg,johnsonm的Write linux device driver,Brennan's Guide to Inline Assembly,The Linux A-Z,還有清華BBS上的有關device driver的一些資料. 這些資料有的已經過時,有的還有一些錯誤,我依據自己的試驗結果進行了修正.

  一、Linux device driver 的概念

  系統調用是操作系統內核和應用程序之間的接口,設備驅動程序是操作系統內核和機器硬件之間的接口.設備驅動程序為應用程序屏蔽了硬件的細節,這樣在應用程序看來,硬件設備只是一個設備文件, 應用程序可以象操作普通文件一樣對硬件設備進行操作.設備驅動程序是內核的一部分,它完成以下的功能:

  1.對設備初始化和釋放.

  2.把數據從內核傳送到硬件和從硬件讀取數據.

  3.讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據.

  4.檢測和處理設備出現的錯誤.

  在Linux操作系統下有兩類主要的設備文件類型,一種是字符設備,另一種是塊設備.字符設備和塊設備的主要區別是:在對字符設備發出讀/寫請求時,實際的硬件I/O一般就緊接著發生了,塊設備則不然,它利用一塊系統內存作緩沖區,當用戶進程對設備請求能滿足用戶的要求,就返回請求的數據,如果不能,就調用請求函數來進行實際的I/O操作.塊設備是主要針對磁盤等慢速設備設計的,以免耗費過多的CPU時間來等待.

  已經提到,用戶進程是通過設備文件來與實際的硬件打交道.每個設備文件都都有其文件屬性(c/b),表示是字符設備還

主站蜘蛛池模板: 高清| 陵川县| 军事| 四会市| 农安县| 曲周县| 建阳市| 郴州市| 拜泉县| 日喀则市| 荔波县| 商河县| 莲花县| 万源市| 盐城市| 乌拉特后旗| 阿鲁科尔沁旗| 平江县| 陇川县| 崇州市| 盐亭县| 梓潼县| 泰来县| 衡南县| 万载县| 大兴区| 得荣县| 沛县| 仲巴县| 九江县| 揭阳市| 楚雄市| 临城县| 平乡县| 边坝县| 连南| 岳池县| 凯里市| 东乌珠穆沁旗| 灵山县| 扎兰屯市|