Linux驅(qū)動(dòng)試題(參考答案)_第1頁
Linux驅(qū)動(dòng)試題(參考答案)_第2頁
Linux驅(qū)動(dòng)試題(參考答案)_第3頁
Linux驅(qū)動(dòng)試題(參考答案)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、百度文庫Linux驅(qū)動(dòng)試題筆試題:1參考答案:字符設(shè)備是指存取時(shí)沒有緩存的設(shè)備,大多數(shù)字符設(shè)備只能順序讀寫。比如鼠標(biāo)、鍵盤、聲卡。塊設(shè)備的讀寫則都有緩存來支持,只能以塊為單位進(jìn)行讀寫,并且塊設(shè)備必須能夠隨機(jī)存取(ran dom access),即不管塊處于設(shè)備的什么地方都可以對(duì)它進(jìn)行讀寫,字符設(shè)備則沒有這 個(gè)要求。比如硬盤、U盤、SD卡。2、參考答案:查看驅(qū)動(dòng)中的打印信息用dmesg命令。查看內(nèi)核中字符設(shè)備和塊設(shè)備信息可以使用命令cat /proc/devices 。查看正在使用的中斷號(hào)可以使用命令cat /proc/i nterrupts。3、參考答案:Linux內(nèi)核是一種單一大內(nèi)核,如果沒

2、有模塊機(jī)制,在調(diào)試階段,我們需要修改內(nèi)核中的某個(gè)驅(qū)動(dòng),必須把內(nèi)核整個(gè)編譯一遍,還要重新啟動(dòng)機(jī)器,這樣操作會(huì)非常耗時(shí)。有了模塊,我們只需要對(duì)我們關(guān)心的驅(qū)動(dòng)以模塊方式單獨(dú)編譯,無須編譯整個(gè)內(nèi)核,也 不需要重啟機(jī)器。4、參考答案:copy_to_user實(shí)現(xiàn)從內(nèi)核空間向用戶空間拷貝數(shù)據(jù)的功能。copy_from_user實(shí)現(xiàn)從用戶空間向內(nèi)核空間拷貝數(shù)據(jù)的功能。分別用于實(shí)現(xiàn)驅(qū)動(dòng)中的read和write函數(shù)。如果交換數(shù)據(jù)都發(fā)生在內(nèi)核空間中,可以直接使用內(nèi)核定義的memcpy函數(shù)。5、參考答案:主設(shè)備號(hào)用于區(qū)別不同的驅(qū)動(dòng)程序,次設(shè)備號(hào)用于區(qū)別使用同一個(gè)驅(qū)動(dòng)程序的同一類設(shè)備中的不同設(shè)備。chartest使用

3、和ttySO 樣的驅(qū)動(dòng)程序。6、參考答案:register_chrdev(MAJOR_NUMBER, DRIVER_NAME, &xxx_fops)該函數(shù)有三個(gè)參數(shù),分別是主設(shè)備號(hào),驅(qū)動(dòng)名字和file_operatio ns 結(jié)構(gòu)的指針7、參考答案:中斷是一段程序,當(dāng)外部設(shè)備引起中斷時(shí)由CPU執(zhí)行。DMA是直接內(nèi)存訪問,用于外設(shè)與主存儲(chǔ)器之間快速的交換數(shù)據(jù),利用DMA,在交換數(shù)據(jù)時(shí)可以不通過CPU,提高了 CPU的利用率。注冊(cè)中斷使用 request_irq(IRQ_NUMBER, (*ha ndler), IRQ_FLAGS, DRIVER_NAME,dev_id)。該函數(shù)共有5個(gè)參

4、數(shù),分別是要注冊(cè)的中斷號(hào),中斷處理程序的指針,中斷標(biāo)志 位,中斷的名字和 dev_id用于區(qū)別共享同一個(gè)中斷的不同設(shè)備。注銷中斷使用free_irq(u nsig ned int, void *)第一個(gè)參數(shù)是中斷號(hào),第二個(gè)參數(shù)一般是NULL指針。8、參考答案:在一般情況下,由于數(shù)據(jù)量比較小,中斷會(huì)比輪詢更有效率。但是如果數(shù)據(jù) 量比較大的時(shí)候,如果采用中斷,由于 CPU花在進(jìn)程切換和保存現(xiàn)場(chǎng)上的時(shí)間開銷變得比 較大,所以這個(gè)時(shí)候通常采用輪詢更有效率。9、參考答案:802.3 MAC Engine :實(shí)現(xiàn)802.3協(xié)議的核心,實(shí)現(xiàn)對(duì)以太網(wǎng)楨的發(fā)送和接 收。Encoder/Decoder: Enco

5、der/Decoder部分實(shí)現(xiàn)對(duì)曼徹斯特的編碼 /譯碼工作。10Base-T RX/RX filter & Receiver/ Tran smitter:實(shí)現(xiàn)對(duì)物理信號(hào)的發(fā)送和接收。10、參考答案:發(fā)送數(shù)據(jù)frame :a. 關(guān)中斷b. 發(fā)送skbuff中的數(shù)據(jù)到硬件上c. 開中斷d. 釋放 skbuff接收數(shù)據(jù)frame :a. 讀硬件獲得數(shù)據(jù)長(zhǎng)度b. 根據(jù)長(zhǎng)度分配skbuffc. 從硬件上讀數(shù)據(jù)到 skbuff內(nèi)d. 通過netif_rx將skbuff提交到上層,也就是 IP層。11、參考答案:發(fā)送數(shù)據(jù) frame的過程可能在線程的上下文中,關(guān)中斷是為了保證數(shù)據(jù)發(fā) 送的一致性,而接收數(shù)據(jù) frame的過程主要在中斷處理中,這個(gè)過程本身就是原子的,所 以不需要關(guān)中斷。12、參考答案:sk_buff是在Linux網(wǎng)絡(luò)協(xié)議的各個(gè)層次上都用到的一個(gè)數(shù)據(jù)結(jié)構(gòu),目的是 防止數(shù)據(jù)的重復(fù)拷貝。sk_buff的分配由最先使用它的模塊分配,而由最后使用它的模塊進(jìn) 行釋放,具體到網(wǎng)絡(luò)設(shè)備來說,就是,發(fā)送的時(shí)候在網(wǎng)絡(luò)協(xié)議的最高層,也就是TCP層負(fù)責(zé)分配,而在設(shè)備驅(qū)動(dòng)中當(dāng)向

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論