- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6-3字元式装置简介
字元驅動程式原理與實習
瞭解字元裝置驅動程式的原理與程式架構,並以實際的範例說明如何載入和執行字元裝置驅動程式。
簡介
Linux驅動程式架構與設計流程說明
字元式裝置簡介
應用程式與Device Driver的溝通方式
實準備
系統設置
實作進行
簡介
本章實習的主要內容,將介紹字元裝置驅動程式。以下是本實驗的實習重點:
在理論部分將針對下列幾點加以說明:
Linux驅動程式簡介
Linux驅動程式架構
字元式裝置簡介
驅動程式的設計流程
字元裝置驅動程式的實作要點
應用程式與Device Driver的溝通方式
在實作部分將包含下列幾點:
字元裝置驅動程式和應用程式的程式碼安裝與編譯。
字元裝置驅動程式和應用程式的程式碼說明。
字元裝置驅動程式和應用程式的驗證。
Linux驅動程式架構與設計流程說明
Linux的設備驅動程序用來處理各種硬體的多樣性。
Linux作業系統的基本功能之一是對設備處理的抽象化。所有的實體設備被當做正規的檔案來處理,可以被“打開”、“關閉”、“讀”和”寫“,就像我們用系統來處理檔案一樣。(“檔案”是一個邏輯上的概念﹔設備是一個實體。這裡談的是把設備抽象在/dev檔案系統下。)系統中每一個設備都對應一個設備特殊檔案(device special file),例如,系統中的第一個IDE磁碟的設備檔案名是/dev/had。
對於區塊設備(如,磁碟)和字元設備,它們的的設備特殊檔案通常是通過mknod命令用主設備號和次設備號來描述和建立。(主設備號和次設備號用來定位系統中兩個表。一個主設備對應一個設備驅動程式。次設備的含義是系統中可以存在多個設備屬於同一類,比如多個IDE磁碟。但它們只需要一個同樣的設備驅動程式來管理。)網路設備也同樣是一個設備特殊檔案,但它是由Linux核心來創建當系統發現並初始化網路控制器的時候。
支援硬體設備類型:
Linux支援三種硬體設備類型:字元,區塊和網路設備。
字元設備:讀寫不需要緩衝,例如系統的序列介面/dev/cua0和/dev/cua1。
區塊設備:讀和寫只能以區塊的單位來進行,區塊的大小一般是512位元或1024位元。區塊設備的讀寫是通過緩衝Cache並且可以被隨機存取。隨機存取意味著你可以定位區塊設備的任一個區塊並進行讀取﹔區塊設備的存取可以通過其設備特殊檔案,但更通常的是通過檔案系統。只有區塊設備支援檔案系統的安裝(Mount)。
網路設備:存取是通過BSD的Socket介面和網路子系統。
驅動程式的共同性
Linux支援許多不同的設備驅動程式。它們都具備一些共同的屬性:
核心模式:設備驅動程式是核心的一部份,就像核心中其他程式碼一樣,如果不正確運行,會嚴重地毀壞系統。一個寫的不好的驅動程式 可能使系統崩潰,並可能將檔案系統打亂丟失資料。
核心介面:設備驅動程式必須提供一個標準的介面給Linux核心或相應的子系統。例如,終端驅動程式提供一個檔案I/O介面給Linux核心。
核心機制和服務:設備驅動程式利用標準的核心服務,如記憶體分配,中斷傳送,等待隊列來運行。
可裝卸的:大多數的Linux設備驅動程式可以在需要時被載進系統作為核心的一個模組﹔可以被卸下當不再被使用。這使的核心的自適應性非常好,系統的資源可以有效地被利用。
可重構的:Linux設備驅動程式可以被構造進核心。當核心重新編譯時,那些設備就是可重構的。
動態的:當系統啟動時,每一個設備驅動程式進行初始化,尋找其控制的設備。如果核心中一個設備驅動程式所對應的控制設備不存在(例如沒有安裝SCSI磁碟雖然系統有SCSI驅動程式),也沒有關系。這種情況下,系統中只不過是多了一個“多餘的”驅動程式,占用了一些系統記憶體而已。對系統本身無礙。
核心模組程式的格式:
外框架構的格式,如下圖:
內部實作的格式,如下圖:
Linux驅動程式架構
上圖是Linux驅動程式的整體架構圖,以下將做幾點說明:
Linux 驅動程式類型如上圖部份,Linux device driver 可分成 3 種類型分別是
character device driver
block device driver
network device driver
Application與Device Driver的溝通方式:
application 透過 system call 介面與 kernel 溝通。
system call透過 VFS 層與 Linux 驅動程式物件溝通。
驅動程式本身可分成 2 個層面來討論:
virtual device driver:實作與user application的溝通介面。
physical device driver:實作硬體裝置的實際執行動作。
以下將針對Virtual device driver與
您可能关注的文档
最近下载
- 建立健全教育经费审计与监督机制实施路径.docx
- 矿山地质环境保护与治理恢复工程直接工程费估算表.xls
- 煤矿冲击地压防治技术课件.ppt VIP
- GB∕T 35770-2022《 合规管理体系 要求及使用指南》之1:“3术语和定义”解读和应用指导材料(雷泽佳编写2024B1)).docx VIP
- 医患沟通技巧.pptx VIP
- 消毒供应室下收下送的质量管理.doc VIP
- 2024年民主生活会个人对照检查材料3篇范文.docx VIP
- 2024年中国干细胞行业市场研究报告-前瞻产业研究院.docx
- 《电动自行车蓄电池充换电场(站)安全技术要求》.docx
- 广告牌改移拆移迁移拆除施工方案.docx VIP
文档评论(0)