論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc

論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc

ID:57403160

大?。?7.50 KB

頁(yè)數(shù):33頁(yè)

時(shí)間:2020-08-16

論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc_第1頁(yè)
論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc_第2頁(yè)
論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc_第3頁(yè)
論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc_第4頁(yè)
論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc_第5頁(yè)
資源描述:

《論Linux Kernel Module之設(shè)備驅(qū)動(dòng)程序.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、目錄中文目錄格式摘要………………………………………………………………1關(guān)鍵詞……………………………………………………………1前言………………………………………………………………2第1章Linux設(shè)備驅(qū)動(dòng)程序編寫方式…………………………..31設(shè)備驅(qū)動(dòng)程序的編寫模式2module的原理第2章Linux下的驅(qū)動(dòng)設(shè)備類型………………………………211CharacterDevices2BlockDevices第3章Linux設(shè)備驅(qū)動(dòng)程序的框架…………………………251設(shè)備驅(qū)動(dòng)程序的功能1.1對(duì)設(shè)備初始化和釋放1.2把數(shù)據(jù)從核傳送到硬件和從硬件讀取數(shù)據(jù)1.3讀取

2、應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù)1.4檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤2.設(shè)備驅(qū)動(dòng)程序的組成部分2.1自動(dòng)配置和初始化子程序2.2服務(wù)于I/O請(qǐng)求的子程序2.3中斷服務(wù)子程序3設(shè)備驅(qū)動(dòng)程序的結(jié)構(gòu)3.1驅(qū)動(dòng)程序注冊(cè)與注銷3.2設(shè)備的打開(kāi)與釋放3.3設(shè)備的讀寫操作3.4設(shè)備的控制操作3.5設(shè)備的中斷和輪詢處理4設(shè)備驅(qū)動(dòng)程序接口第4章Linux設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)…………………………301PCI驅(qū)動(dòng)程序?qū)崿F(xiàn)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)1.1pci_driver結(jié)構(gòu)1.2pci_dev結(jié)構(gòu)2.寫驅(qū)動(dòng)程序的fuctoin問(wèn)題2.1function的encode問(wèn)題2

3、.2function的export問(wèn)題2.3兩個(gè)常用function3設(shè)備驅(qū)動(dòng)程序中的一些具體問(wèn)題3.1I/OPort3.2存操作3.3中斷處理4RealtekFastEthernetDriverrtl8139網(wǎng)卡驅(qū)動(dòng)3個(gè)模塊的改寫1.1設(shè)備指明模塊4.2數(shù)據(jù)讀寫和控制信息模塊4.3中斷處理模塊參考文獻(xiàn)……………………………………………………….25附錄…………………………………………………………….26致……………………………………………………………28論LinuxKernelModule之設(shè)備驅(qū)動(dòng)程序【摘要】驅(qū)動(dòng)程序編寫方法。由Linux設(shè)備驅(qū)動(dòng)程

4、序編寫方式著手,轉(zhuǎn)而研究設(shè)備驅(qū)動(dòng)程序的KernelModule程序。在了解了Linux下的驅(qū)動(dòng)設(shè)備類型之后,從Linux下設(shè)備驅(qū)動(dòng)程序的功能,組成部分,結(jié)構(gòu),接口4個(gè)方面分析了設(shè)備驅(qū)動(dòng)程的框架。在參看了許多的書(shū)籍和網(wǎng)絡(luò)論壇的文章,資料,具體討論了Linux下設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn),具體研究了驅(qū)動(dòng)程序的數(shù)據(jù)結(jié)構(gòu),function問(wèn)題和編寫程序時(shí)各個(gè)部分可能出現(xiàn)的難點(diǎn),疑點(diǎn)問(wèn)題。并根據(jù)DonaldBecker1999-2000年編寫的RealtekFastEthernetDriverrtl8139網(wǎng)卡驅(qū)動(dòng)Linux版(核版本2.0.24)改寫了其中的3個(gè)模塊:

5、設(shè)備指明模塊,數(shù)據(jù)讀寫和控制信息模塊與中斷處理模塊?!娟P(guān)鍵詞】KernelLinux核KernelModuleLinux的核模塊CharacterDevices字符設(shè)備BlockDevices塊設(shè)備Funtion函數(shù)前言Linux是最受歡迎的自由電腦操作系統(tǒng)核。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。Linux最早是由芬蘭黑客LinusTorvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開(kāi)發(fā)的。該計(jì)劃開(kāi)始于1991年,從LinusTorvalds當(dāng)時(shí)在Usenet新聞組comp.os.minix所登載了一分

6、著名的貼子,標(biāo)志了Linux計(jì)劃的正式開(kāi)始。在計(jì)劃的早期有一些Minix黑客提供了協(xié)助,而今天全球無(wú)數(shù)程序員正在為該計(jì)劃無(wú)償提供幫助。技術(shù)上說(shuō)Linux是一個(gè)核?!昂恕敝傅氖且粋€(gè)提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個(gè)核不是一套完整的操作系統(tǒng)。一套基于Linux核的完整操作系統(tǒng)叫作Linux操作系統(tǒng),或是GNU/Linux。今天Linux是一個(gè)一體化核系統(tǒng)。設(shè)備驅(qū)動(dòng)程序可以完全訪問(wèn)硬件。Linux的設(shè)備驅(qū)動(dòng)程序可以方便地以模塊的形式設(shè)置,并在系統(tǒng)運(yùn)行期間可直接裝載或卸載。第1章Linux設(shè)備驅(qū)動(dòng)程序編寫方式1設(shè)備驅(qū)動(dòng)程序的編寫模

7、式Linux下的設(shè)備驅(qū)動(dòng)程序可以按照兩種方式進(jìn)行編譯,一種是直接靜態(tài)編譯成核的一部分,另一種則是編譯成可以動(dòng)態(tài)加載的模塊。如果編譯進(jìn)核的話,會(huì)增加核的大小,還要改動(dòng)核的源文件,而且不能動(dòng)態(tài)地卸載,不利于調(diào)試,所有推薦使用模塊方式。從本質(zhì)上來(lái)講,模塊也是核的一部分,它不同于普通的應(yīng)用程序,不能調(diào)用位于用戶態(tài)下的C或者C++庫(kù)函數(shù),而只能調(diào)用Linux核提供的函數(shù),在/proc/ksyms中可以查看到核提供的所有函數(shù)。2module的原理module的出現(xiàn)是Linux的一大革新。有了module之后,寫devicedriver不需要每次要測(cè)試driver就

8、重新compilekernel一次。避免了很多的麻煩。Module允許我們動(dòng)態(tài)的改變kerne

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。