基于VxWorks的以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)_第1頁(yè)
基于VxWorks的以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)_第2頁(yè)
基于VxWorks的以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)_第3頁(yè)
基于VxWorks的以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、 ( ) ( ) 釋放 : :結(jié)構(gòu) 釋放存有數(shù)據(jù)的 鏈表 ) ( ) ( 從內(nèi) 存池中 取 結(jié)構(gòu) 從內(nèi)存池中 結(jié)構(gòu) 取 從 得到。 存中 從內(nèi)存中得到 并聯(lián)結(jié)它到指定的 從存中得到 勺 結(jié)構(gòu) 將 。 與存有數(shù)據(jù)的 聯(lián)結(jié)起來(lái) ) ( 將 與 結(jié)構(gòu)聯(lián)接起來(lái) 從與指定的 緩沖區(qū)尺寸相匹配的 獲取 一 池中 值 拷貝 鏈中數(shù)據(jù)到緩沖區(qū)中 ( ) ( ) 對(duì) 結(jié)構(gòu)中的 進(jìn)行復(fù)制 復(fù)制 鏈 中斷處理 網(wǎng) 卡的中斷處理函 數(shù)用于當(dāng)網(wǎng)卡以中斷方式工作時(shí), 如果設(shè)備產(chǎn)生中斷, 進(jìn)行中斷響應(yīng), 進(jìn)而根據(jù)中斷狀態(tài)寄存器的值來(lái)處理報(bào)文接收,出 錯(cuò)處理等不同的中斷。中斷函數(shù)一般分為 兩部分。 第一部分是一些耗時(shí)較小的響

2、應(yīng)中斷的函數(shù) ( 溢出錯(cuò)誤處理、 如 報(bào)文接收錯(cuò)誤處理、 報(bào)文發(fā)送錯(cuò)誤處理等中斷例程)。 這些中斷例程通過(guò) 中 提供的系統(tǒng)函 掛接 數(shù) ) ( 到系統(tǒng)的中 斷結(jié)構(gòu)上, 一般在 ( ) 完成此操作。 第二部分是耗費(fèi)時(shí)間的中斷處理例 程( 如數(shù)據(jù)報(bào)處理例程)。 在實(shí)時(shí)系統(tǒng)中驅(qū)動(dòng)程序應(yīng)避免對(duì)這些數(shù)據(jù)報(bào)處理例程直接調(diào)用, 以 減少中斷 關(guān)閉的 時(shí)間, 通過(guò)調(diào) 而是 用系統(tǒng)函 將數(shù) 數(shù) ( 據(jù)處理函 在 ) 數(shù)放 任務(wù)的 網(wǎng)絡(luò)隊(duì)列中,通過(guò)系統(tǒng)任務(wù) 來(lái)處理。 數(shù)據(jù)報(bào)的 接收 設(shè)備直接將接收到的數(shù)據(jù)報(bào)放入內(nèi) 存池預(yù)先分配的 中 和產(chǎn)生一個(gè)中斷。 如果設(shè)備不 能完成上述功能, 驅(qū) 動(dòng)函數(shù)完成將數(shù)據(jù)從 中的拷貝

3、。 到 數(shù)據(jù)被放 中后, 驅(qū)動(dòng)程序?qū)⑼ㄟ^(guò)對(duì) 數(shù)的調(diào)用來(lái)完成 中函 鏈的創(chuàng)建, 從而為數(shù)據(jù)在 網(wǎng)絡(luò)協(xié)議各層之間的傳遞做好準(zhǔn)各,創(chuàng)建此結(jié)構(gòu)鏈一般需要以下四步: ) 存池中取 調(diào)用函數(shù) 從內(nèi) ( 結(jié)構(gòu)。 ) 調(diào)用函數(shù)將 ( 與存有數(shù)據(jù)的 聯(lián)結(jié)起來(lái)。 從內(nèi) 調(diào)用函數(shù) ) 存池中取 結(jié)構(gòu) ( ( 調(diào)用函數(shù) ) 結(jié)構(gòu)連接起來(lái)。 將 與 為了向 上層協(xié)議棧傳遞此結(jié)構(gòu)鏈,還將調(diào)用 中 所提供的函數(shù), 具體的 傳遞過(guò)程一般 分為以下兩步: 調(diào)用 結(jié)構(gòu)中的成員 己 ( 將 ( ) 成員初始化位 函數(shù)二 ( ) 調(diào)用協(xié)議層的入口 函數(shù) 數(shù)據(jù)報(bào)的接收過(guò)程如圖 所示, ( ) 南 曰 曰 ( ) 圖數(shù)據(jù)報(bào)的接收過(guò)程 圖

4、數(shù)據(jù)報(bào)的發(fā)送過(guò)程 當(dāng) 數(shù)據(jù)報(bào)到 會(huì)觸發(fā)一個(gè)中斷,中 服務(wù) 序 ( ) 通過(guò)調(diào)用 ( 一個(gè) 來(lái)時(shí) 斷 程 將 項(xiàng) ) 任務(wù)隊(duì) 列添加一個(gè)網(wǎng) 絡(luò)任務(wù), 此網(wǎng) 絡(luò)任務(wù)為數(shù)據(jù)報(bào)接收函數(shù) ( ),它通過(guò)系統(tǒng)任務(wù) 來(lái)調(diào)用。 然后接收函數(shù)調(diào)用 的接口 函數(shù) ,而 又調(diào)用協(xié)議層 提供的接口函數(shù) 將數(shù)據(jù)報(bào)傳遞到協(xié)議層, 最終數(shù)據(jù)將通過(guò)協(xié)議層到達(dá)應(yīng)用程序的 緩沖區(qū)中, 應(yīng)用程序通過(guò) 函 ( 數(shù)對(duì)其讀取。 ) 從圖 中 我們可以 看到, 數(shù)據(jù)報(bào)經(jīng)過(guò)物理層到 達(dá)數(shù)據(jù)鏈路層, 然后再通過(guò) 層到達(dá)網(wǎng)絡(luò)層, 在通過(guò) 協(xié)議層到達(dá)應(yīng)用層, 完成了數(shù)據(jù)報(bào) 接收的全過(guò)程。 數(shù)據(jù)報(bào)的發(fā)送 數(shù)據(jù)報(bào)的發(fā)送基本上是數(shù)據(jù)報(bào)接收的反過(guò)程, 如

5、圖 所示。 應(yīng)用程序通過(guò)( ) 數(shù)調(diào)用, 將要發(fā)送的數(shù)據(jù)放入應(yīng)用程序數(shù)據(jù)緩沖區(qū) ( )中。網(wǎng) 絡(luò)協(xié)議負(fù)責(zé)將 中的數(shù)據(jù)放入 為其分配的內(nèi)存池中, 并以 鏈的形式來(lái)存儲(chǔ), 這樣實(shí)現(xiàn)了再往下層協(xié)議傳遞數(shù) 據(jù)報(bào)時(shí), 傳遞的只是 指向 此數(shù)據(jù)鏈結(jié)構(gòu)的指針, 而代替了數(shù)據(jù)在各層協(xié)議之間的拷貝。當(dāng)由 數(shù)據(jù)要發(fā)送時(shí), 協(xié)議 網(wǎng)絡(luò) 層通過(guò) 其與 接口 用 函 而 ( 層的 調(diào) 數(shù), 函數(shù)又 ) 通 過(guò)調(diào)用 數(shù)負(fù)責(zé)將利用指針傳遞來(lái)的數(shù)據(jù)報(bào)送到發(fā)送 隊(duì)列中, 然后起動(dòng)網(wǎng)卡設(shè)備 的發(fā)送功能,發(fā)送完后將隨之產(chǎn)生中斷信號(hào), 調(diào)用中斷服務(wù)程序, 清除設(shè)備緩沖區(qū)。 四、結(jié)束語(yǔ) 本文對(duì) 驅(qū)動(dòng)程序所涉及的一些問(wèn) 題進(jìn)行了總結(jié), 但還有更多復(fù)雜的問(wèn)題本文并未進(jìn) 行討論。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論