www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]PCI設備Windows通用驅(qū)動軌范設計

我們開發(fā)了一套通用的PCI設備驅(qū)動軌范,它可以完成一般PCI設備驅(qū)動所需的功能,可以作為其它PCI設備驅(qū)動開發(fā)的框架。

  1 驅(qū)動軌范的模式和開發(fā)工具的選擇

  設備驅(qū)動軌范是指打點某個外圍設備的一段代碼。驅(qū)動軌范不會獨登時存在,而是操作系統(tǒng)的一部門。經(jīng)由過程設備驅(qū)動軌范,多個歷程可以同時使用這些資本,從而可以實現(xiàn)多歷程并走運行。不才文中,將挪用設備驅(qū)動軌范的PC機軌范稱為用戶軌范。

  Windows 95和Windows NT采用的驅(qū)動軌范系統(tǒng)分歧,所以年夜年夜都情形下驅(qū)動軌范也不能通用。若是設備需要在Windows 9x/NT下使用,一般至少要設計Windows 9x和Windows NT兩個驅(qū)動軌范版本。Windows 98 可以兼容Windows 95的驅(qū)動軌范,同時它又推出一個新的Win32 Drivers Mode(WDM)驅(qū)動類型。Windows 98中有些設備(如USB設備)的驅(qū)動軌范必需為WDM模式。這個新的類型現(xiàn)實是在Windows NT的驅(qū)動模子的基本上增添了即插即用等內(nèi)容。WDM驅(qū)動也可以用在Windows 2000(先前叫Windows NT 5.0)中。從久遠的角度看。此后開發(fā)人員只要開發(fā)WDM驅(qū)動就可以了,但從今朝的市場情形來看,Windows 95是無法拋卻的,所以WDM在近一兩年還無法替代其它類型的設備驅(qū)動。

  Intel 80386以上的微措置器有4個優(yōu)先級別:0級、1級、2級和3級,一般操作系統(tǒng)運行于優(yōu)先級0級上,而用戶軌范運行在3級上,在對硬件操作上有一些限制(具體的限制在分歧的操作系統(tǒng)中是分歧的)。Windows 95撐持的驅(qū)動類型良多,但針對一般硬件設備而言,主若是VxD和打印機驅(qū)動兩類。VxD指的是Virtual Device Drivers。VxD運行在Intel系統(tǒng)的0級上,可以執(zhí)行特權(quán)級指令,對任何I/O設備有全數(shù)訪謁權(quán),所以年夜年夜都硬件驅(qū)動軌范都是VxD。VxD驅(qū)動凡是以.vxd為擴展名,放在WindowsSystem目錄下,可以在Windows 95啟動時裝入,也可以在軌范運行時按照需要動態(tài)地載入。動態(tài)加載有助于節(jié)約系統(tǒng)內(nèi)存和資本。但打印機驅(qū)動軌范不是VxD,它運行在3級上。同Windows 95近似,Windows NT的驅(qū)動也有可以運行在0級的內(nèi)核模式(Kernel Mode)和運行在3極的用戶模式(User Mode)之分。因為Windows NT禁止用戶模式的軌范訪謁I/O端口(Windows 95/98則許可用戶軌范直接訪謁I/O端口),直接節(jié)制物理設備的驅(qū)動軌范都是內(nèi)核模式的。而我們設計的PCI通用驅(qū)動軌范要求對各類硬件資本訪謁,所以應該選擇工作在0級的驅(qū)動軌范模式。

  開發(fā)設備驅(qū)動采用的首要開發(fā)工具是微軟為設備開發(fā)者供給的軟件包Device Driver Kit(DDK)。這個軟件包搜羅有關(guān)設備開發(fā)的文檔、編譯需要的頭文件和庫文件、調(diào)試工具和軌范典型。在DDK中還界說了一些設備驅(qū)動可以挪用的系統(tǒng)底層處事,象DMA處事、間斷處事、內(nèi)存打點處事、可安裝文件系統(tǒng)處事等等。這些都是編寫設備驅(qū)動所必需的。但Windows 95的DDK因為首要使用匯編說話描述。開倡議來斗勁堅苦。是以,我們在Windows 95操作系統(tǒng)中同時采用了Numega公司的產(chǎn)物VtoolsD。VtoolsD是基于C/C++的,撐持Borland C++和Visual C++,使用和維護都較Windows 95 DDK輕易。

  2 PCI驅(qū)動軌范的特點

  在設計驅(qū)動軌范之前,首先要對欲節(jié)制的硬件設備進行詳盡地剖析,更需要具體體味硬件設備的特征。硬件設備的特征會對驅(qū)動軌范設計發(fā)生重年夜的影響。需要體味的最首要的硬件特征搜羅:

  (1)設備的總線結(jié)構(gòu)

  設備采用什么總線結(jié)構(gòu)很是關(guān)頭,因為分歧的總線類型(如ISA和PCI)在良多硬件工作機制上是分歧的,所以驅(qū)動軌范設計也分歧。

  (2)寄放器

  要體味設置的節(jié)制寄放器、數(shù)據(jù)寄放器和狀況寄放器,以及這些寄放器工作的特征。

  (3)設備錯誤和狀況

  要體味若何判定設備的狀況和錯誤旌旗燈號,這些旌旗燈號要經(jīng)由過程驅(qū)動軌范返回給用戶。

  (4)間斷行為

  要體味設備發(fā)生間斷的前提和使用間斷的數(shù)目。

  (5)數(shù)據(jù)傳輸機制

  最常見的數(shù)據(jù)傳輸機制是經(jīng)由過程I/O端口(port),也就是經(jīng)由過程CPU的IN/OUT指令進行數(shù)據(jù)讀寫。PC的另一種主要的傳輸機制是DMA,但PCI規(guī)范不搜羅隸屬DMA的聲名。

  (6)設備內(nèi)存

  良多設備自身帶有內(nèi)存,PCI設備年夜多是采用映射的體例映射到PC系統(tǒng)的物理內(nèi)存。有的設備還要經(jīng)由過程驅(qū)動軌范設置設備的接口寄放器。

  有關(guān)驅(qū)動軌范的加載和響應用戶請求的內(nèi)容,在DDK文檔中有劃定,所以設計設備驅(qū)動軌范首要的面臨問題是若何進行硬件操作,這是按照設備的分歧而分歧的。而硬件驅(qū)動軌范的功能雖然千差萬別,但根基功能就是完成設備的初始化、對端口的讀寫操作、間斷的設置、響應和挪用以及對內(nèi)存的直接讀寫。如前面所說,Windows 9x和Windows NT的操作系統(tǒng)模子分歧,但驅(qū)動軌范所要完成的工作卻是不異的,所以下面以Windows 9x為主進行介紹,僅在需要的處所指出兩個操作系統(tǒng)的分歧。下面從這幾方面談判解決這些問題的路子#e#下面從這幾方面談判解決這些問題的路子:

 

  (1)設備初始化

  PCI設備驅(qū)動軌范要實現(xiàn)識別PCI器件、尋址PCI器件的資本和對PCI器件間斷的處事。PCI系統(tǒng)BIOS功能供給了BIOS的訪謁與節(jié)制的具體特征,所有軟件(設備驅(qū)動軌范、擴展ROM碼)將經(jīng)由過程尺度間斷號1AH挪用BIOS功能訪謁非凡部件。PCI BIOS規(guī)范有完整的有關(guān)PCI BIOS功能的描述[3]。

  在PCI設備驅(qū)動軌范的初始化過程中,操作指定器件識別號(device_id)、廠商識別號(vendor_id)、檢索號(index)搜索PCI器件,經(jīng)由過程挪用PCI BIOS確認其存在,并確定其物理位置:總線號、器件號和功能號,這是該器件/功能在系統(tǒng)中的獨一尋址標識表記標幟。操作總線號、器件號和功能號可以尋址該器件/功能的PCI設置裝備擺設空間(configuration space)。

  接下來,設備驅(qū)動就需要從設置裝備擺設空間獲得硬件的參數(shù)。PCI設備的良多參數(shù),搜羅所用的間斷號,端口地址的規(guī)模(I/O)體例、存儲器的地址(存儲器映射體例)等,都可以從PCI設置裝備擺設空間的各基址所對應的尋址空間中獲得。讀寫設置裝備擺設空間可以挪用BIOS間斷1AH,

  也可以先向設置裝備擺設空間地址寄放器(0CF8H)寫入總線和設備號(在前面搜索PCI器件時獲得的)和寄放器號,再對設置裝備擺設空間數(shù)據(jù)寄放器(0CFCH)進行讀寫。對設備驅(qū)動來說,最主要的是獲得基址寄放器(BADR),不能認為PCI器件資本老是設計設備時設置的初值,系統(tǒng)可能會按照硬件情形為PCI設備分配新的資本。我們所設計的PCI設備使用的基址1-3都是按I/O空間映射的,而基址4是按內(nèi)存體例映射的。確定一個端口是按什么體例映射的,可以讀對應端口的設置裝備擺設寄放器(Configuration Register)。讀出后,判定其0位,若是0位為數(shù)值0,暗示其是按內(nèi)存體例設置的,否則為I/O體例設置的。內(nèi)存體例和I/O體例的設置裝備擺設寄放器的寄義參見文獻[3]。若是要獲得基址的巨細,可以向基址寄放器寫入FFFFH,然后讀基址寄放器,若是是內(nèi)存體例,從第4位起頭的0的數(shù)目暗示基址的巨細,若是是I/O體例,則從第2位起頭的0的數(shù)目暗示基址的巨細。

  在Windows NT下,查找PCI設備的工作是由HalGetBusData完成的,也可以使用前述的法子讀取設置裝備擺設寄放器,但DDK舉薦使用HaiGetBusDataOffset函數(shù)。

  (2)端口操作

  在PC機上,I/O端口尋址空間和內(nèi)存尋址空間是分歧的,所以措置體例也分歧。I/O空間是一個64K字節(jié)的尋址空間,它不象內(nèi)存有實模式和呵護模式之分,在各類模式下尋址體例不異。在Windows 9x下,用戶軌范可以直接使用I/O指令,而不必然非經(jīng)由過程專門的驅(qū)動軌范來完成,所以若是軟件對硬件的操作美全是經(jīng)由過程I/O端口操作來完成的,甚至可以不用專門設計驅(qū)動軌范,直接由應用軌范來完成對硬件的節(jié)制。因為PCI總線是32位的總線尺度,在進行I/O操作時凡是要進行雙字(DWORD)操作,而且以前年夜年夜都C/C++編譯軟件都沒有供給雙字的函數(shù),所以需要機關(guān)雙字操作讀寫函數(shù)inpd/outpd。

  在Windows NT下,系統(tǒng)不許可處于優(yōu)先級3級的用戶軌范和用戶模式驅(qū)動軌范直接使用I/O指令,若是使用了I/O指令將會導致特權(quán)指令意外(privileged instruction exception)。所以任何對I/O的操作都需要借助內(nèi)核模式驅(qū)動來完成。具體的做法有兩種:一是在驅(qū)動軌范中使用IoReportResourceUsage陳述資本占用,然后使用READ_PORT_XXX、WRITE_PORT_XXX函數(shù)讀寫,最后使用IoReportResourceUsage打消資本占用;另一種是驅(qū)動軌范改削NT的I/OPermissions Map (IOPM),以使系統(tǒng)許可用戶軌范對指定的I/O端口進行操作,這時用戶軌范采用凡是的I/O指令進行操作。后者的利益是速度快、用戶軌范設計簡單,但犧牲了移植性,軌范不能移植到非Intel的系統(tǒng)中,而且若是多個軌范同時讀寫統(tǒng)一端口輕易導致沖突。

  (3)內(nèi)存的讀寫

  Windows工作在32位呵護模式下,呵護模式與實模式的根柢區(qū)別在于CPU尋址體例上的分歧,這也是Windows驅(qū)動軌范設計中需要著重解決的問題。Windows采用了分段、分頁機制(圖1),這樣使應用軌范發(fā)生一種錯覺,好象軌范中可以使用很是年夜的物理存儲空間。這樣做最年夜的益處就是一個軌范可以很輕易地在物理內(nèi)存容量紛歧樣的、設置裝備擺設規(guī)模分歧很年夜的計較機上運行,編程人員使用虛擬存儲器可以寫出比任何現(xiàn)實設置裝備擺設的物理存儲器都年夜得多的軌范。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

開創(chuàng)中國文旅產(chǎn)業(yè)AI深度應用新樣本 北京2025年8月22日 /美通社/ -- 以下為來自億歐的報道: 8月22日,桂林旅游股份有限公司旗下銀子巖景區(qū)聯(lián)合合作伙伴正式發(fā)布全球首款AI伴游財神玩具 —— "五...

關(guān)鍵字: AI IP 數(shù)字化 硬件

北京2025年8月18日 /美通社/ -- 2025年8月,軟通動力集團一項關(guān)鍵決策引發(fā)行業(yè)矚目——以自有資金8億元向全資子公司軟通計算機有限公司完成實繳增資,使其注冊資本增加至23億元。這筆戰(zhàn)略注資不僅彰顯集團對信創(chuàng)核...

關(guān)鍵字: AI 硬件 計算機 智能化

臺北 2025年7月16日 /美通社/ -- 作為物聯(lián)網(wǎng)(IoT)智能系統(tǒng)及嵌入式平臺領(lǐng)域的全球領(lǐng)導者,研華科技(Advantech)今天宣布推出其AMAX物聯(lián)網(wǎng)控制平臺。這一創(chuàng)新解決方案將可編程邏輯控制器(PLC)、...

關(guān)鍵字: 物聯(lián)網(wǎng) 控制平臺 I/O PLC

在科技飛速發(fā)展的今天,硬件更新?lián)Q代的速度日新月異。然而,許多企業(yè)或個人仍在使用著老舊硬件設備,這些設備雖然性能有限,但在一些對性能要求不高的場景中,仍有其存在的價值。通過合理的內(nèi)核參數(shù)調(diào)優(yōu)和輕量級服務部署方案,我們可以充...

關(guān)鍵字: 硬件 內(nèi)核參數(shù)

高 I/O、低功耗及先進的安全功能,適用于成本敏感型邊緣應用

關(guān)鍵字: FPGA I/O 機器視覺

北京 2025年5月27日 /美通社/ -- 日前,軟通華方(清華同方)推出全新超銳T40-Z70國產(chǎn)筆記本,主打更輕、更強、更安全。這款新品國產(chǎn)筆記本采用鋁合金材質(zhì)機身,搭載國產(chǎn)高性能兆芯開先KX-7000八核處理器...

關(guān)鍵字: 筆記本電腦 鋁合金 硬件 BSP

隨著科技的飛速發(fā)展,人工智能(AI)已經(jīng)從科幻作品中的概念逐漸走進了我們的日常生活,深刻地改變著各個行業(yè)的面貌。在這一變革中,硬件作為 AI 技術(shù)運行的物理基礎,其重要性不言而喻。對于硬件工程師而言,如何在人工智能時代找...

關(guān)鍵字: 人工智能 硬件 工程師

上海 2025年5月15日 /美通社/ -- 近日在CHINASHOP2025期間,商米以"SUPER Solution雙系統(tǒng)高效切換助力商業(yè)環(huán)保"的案...

關(guān)鍵字: 硬件 BSP 雙系統(tǒng) 大賽

在軟件和硬件之間,似乎還有一些不軟不硬的存在?沒錯,那就是固件(Firmware)。固件,其實也是一種軟件,但他比普通的軟件更硬。一般是不能隨便改的,改了以后可能整個系統(tǒng)都得完蛋。它是連接普通軟件和硬件的橋梁。

關(guān)鍵字: 軟件 硬件

上海 2025年5月8日 /美通社/ -- 前沿動態(tài) 德州儀器 (TI) 于 5 月 6 日至 8 日在德國紐倫堡舉辦的電力轉(zhuǎn)換與智能運動(Power Conver...

關(guān)鍵字: PCI 德州儀器 功率密度 BSP
關(guān)閉