国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

   PCI 設(shè)備 RTX 驅(qū)動(dòng)開發(fā)方法 

發(fā)布時(shí)間:2018-1-1 11:05    發(fā)布者:trueleven
關(guān)鍵詞: 反射內(nèi)存卡
1. RTX 下操作外設(shè)時(shí), 需要把設(shè)備從 Windows 移動(dòng)到 RTX 下面,

具體移植方法可以參考 RTX Help 文檔中間 Converting a Windows Device to an RTX Device 一節(jié)或者參考附件<<串口設(shè)備移植向?qū)?doc>>


2. PCI驅(qū)動(dòng)程序的特點(diǎn)

在設(shè)計(jì)驅(qū)動(dòng)程序之前,首先要對(duì)欲控制的硬件設(shè)備進(jìn)行細(xì)致地分析,更需要詳細(xì)了解硬件設(shè)備的特性。硬件設(shè)備的特性會(huì)對(duì)驅(qū)動(dòng)程序設(shè)計(jì)產(chǎn)生重大的影響。需要了解的最主要的硬件特性包括:

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

設(shè)備采用什么總線結(jié)構(gòu)非常關(guān)鍵,因?yàn)椴煌目偩類型(如ISA和PCI)在許多硬件工作機(jī)制上是不同的,所以驅(qū)動(dòng)程序設(shè)計(jì)也不同。

(2) 寄存器

要了解設(shè)置的控制寄存器、數(shù)據(jù)寄存器和狀態(tài)寄存器,以及這些寄存器工作的特性。

(3) 設(shè)備錯(cuò)誤和狀態(tài)

要了解如何判斷設(shè)備的狀態(tài)和錯(cuò)誤信號(hào),這些信號(hào)要通過驅(qū)動(dòng)程序返回給用戶。

(4) 中斷行為

要了解設(shè)備產(chǎn)生中斷的條件和使用中斷的數(shù)量。

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

最常見的數(shù)據(jù)傳輸機(jī)制是通過I/O端口(port),也就是通過CPU進(jìn)行數(shù)據(jù)讀寫。PC的另一種重要的傳輸機(jī)制是DMA,但PCI規(guī)范不包括從屬DMA的說明。

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

許多設(shè)備自身帶有內(nèi)存,PCI設(shè)備大多是采用映射的方式映射到PC系統(tǒng)的物理內(nèi)存。有的設(shè)備還要通過驅(qū)動(dòng)程序設(shè)置設(shè)備的接口寄存器


3. RTX 驅(qū)動(dòng)整體架構(gòu)

使用 RTX Device Driver 開發(fā)向?qū)? 選擇支持

(1) Interrupt Service Routine (ISR)

(2) Support for Sharing an Interrupt

(3) Basic Port I/O Support

(4) Basic Mapped Memory Support,

即可生成 RTX PCI 設(shè)備驅(qū)動(dòng)程序框架。

該程序框架分成兩個(gè)函數(shù), Driver 文件和 DriverFunc 文件:

Driver 文件主要包括 main 函數(shù),中斷服務(wù)程序和中斷服務(wù)線程;

DriverFunc 文件主要是對(duì) PCI 設(shè)備的基本操作函數(shù), 包括 PCI 設(shè)備搜索, PCI 設(shè)備初始化,使能或關(guān)閉中斷, 處理 PCI 設(shè)備共享中斷, 以及 PCI 驅(qū)動(dòng)程序資源清理等函數(shù)。

4. 完整的 RTX PCI驅(qū)動(dòng)

基于RTX PCI 設(shè)備驅(qū)動(dòng)程序框架, 用戶需要添加相應(yīng)的代碼, 下面基于反射內(nèi)存卡的 RTX 驅(qū)動(dòng)進(jìn)行分析。

反射內(nèi)存卡的基本特點(diǎn):

(1) PCI、PCIe、PMC、VME 外形, 節(jié)點(diǎn)之間組成環(huán)形連接或通過光纖 Hub 組成星型連接

(2) 節(jié)點(diǎn)之間數(shù)據(jù)確定性的傳輸延遲, 延遲小于 750us

PCI 反射內(nèi)存卡的 RTX 驅(qū)動(dòng)也分成 Driver 文件和DriverFunc 文件兩個(gè)文件。Driver 文件主要包括 main 函數(shù),中斷服務(wù)程序和中斷服務(wù)線程, 下面是詳細(xì)的分析:

(1) Main 函數(shù):

Main 函數(shù)并不是 RTX PCI 驅(qū)動(dòng)程序的一部分, 準(zhǔn)確的講它是如何使用 RTX PCI驅(qū)動(dòng)程序的流程。用戶需要做的工作:

a. 在 RTX PCI 設(shè)備驅(qū)動(dòng)程序框架生成的 main 函數(shù)需要在設(shè)備初始化 (DeviceInit()) 完成之后與使能 PCI 中斷之前添加設(shè)備打開(open())函數(shù), 該函數(shù)的功能主要是創(chuàng)建信號(hào)量和初始化板卡.

b. 使能 PCI 中斷之后, 用戶即可調(diào)用 PCI驅(qū)動(dòng)程序里的讀寫等函數(shù)寫一段簡單的讀寫測試程序。

(2) 中斷服務(wù)程序:

這個(gè)函數(shù)接收到中斷后交給中斷服務(wù)線程來處理, 用戶一般不需要改動(dòng)。

(3) 中斷服務(wù)線程:

中斷服務(wù)線程主要完成讀取和記錄 PCI 板卡的中斷信息, 釋放相關(guān)的信號(hào)量等工作, 一般不完成具體的中斷處理工作。PCI 驅(qū)動(dòng)程序一般還提供一個(gè)函數(shù)來捕捉這些釋放的信號(hào)量, 完成中斷具體含義的解析工作。

DriverFunc 文件主要是對(duì) PCI 設(shè)備的基本操作函數(shù), 包括 PCI 設(shè)備搜索, PCI 設(shè)備初始化,使能或關(guān)閉中斷, 處理 PCI 設(shè)備共享中斷, 以及 PCI 驅(qū)動(dòng)程序資源清理, 數(shù)據(jù)讀寫, 發(fā)送和接收消息類中斷等函數(shù)。下面是詳細(xì)的分析:

(1) DeviceSearch 函數(shù)

這個(gè)函數(shù)根據(jù) PCI 設(shè)備的 Vendor ID 和 Device ID 搜索 PCI 設(shè)備, 返回 PCI 配置信息和 slot Number. 用戶修改 Vendor ID 和 Device ID 即可。

(2) DeviceInit 函數(shù)

PCI設(shè)備初始化函數(shù). 該函數(shù)中間調(diào)用了兩個(gè)RTX 系統(tǒng)函數(shù)RtTranslateBusAddress() 和 RtMapMemory(), RtTranslateBusAddress() 作用為把 PCI 設(shè)備地址轉(zhuǎn)換為 CPU 可以直接訪問的物理地址, RtMapMemory() 函數(shù)把物理地址映射到虛擬地址。映射到虛擬地址空間后 ring3用戶即可以讀寫 PCI 內(nèi)存空間或者 I/O 空間了。用戶需要關(guān)注的是物理地址到虛擬地址映射的地址范圍,一般設(shè)置為 4K Bytes. RtMapMemory() 函數(shù)默認(rèn)最大可以映射的地址范圍為 64M Bytes, 如果需要更大的范圍, 可以參考內(nèi)存管理一節(jié)。

(3) Enable/Disable Interrupts On Chip 函數(shù)

使能或者關(guān)閉 PCI 設(shè)備上的中斷。用戶根據(jù) PCI 設(shè)備進(jìn)行修改。

(4) IsMyInterrupt函數(shù)

RTX 下 PCI 設(shè)備中斷號(hào)可以共享。如果有 RTX 下 PCI 設(shè)備共享, 需要在該函數(shù)中間區(qū)分是否是該設(shè)備的中斷.

(5) DeviceCleanup 函數(shù)

該函數(shù)釋放中斷句柄和解除物理地址于虛擬地址之間的映射。用戶基本不需要修改該函數(shù)。

(6) RFM2gOpen 函數(shù)

反射內(nèi)存功能函數(shù)。該函數(shù)的功能主要是為 DMA 通道,發(fā)送和接收Event(反射內(nèi)存的一種消息類中斷)等硬件功能模塊創(chuàng)建信號(hào)量和初始化板卡。為了防止對(duì)硬件資源的訪問沖突, 使用這些硬件資源前需要先拿到信號(hào)量, 使用結(jié)束后釋放這些信號(hào)量。

(7) RFM2gEnableEvent函數(shù)

反射內(nèi)存功能函數(shù)。使能板卡接收消息類中斷。

(8) RFM2gSendEvent 函數(shù)

反射內(nèi)存功能函數(shù)。向其它節(jié)點(diǎn)發(fā)送消息類中斷。

(9) RFM2gWaitForEvent函數(shù)

反射內(nèi)存

本文地址:http://www.qingdxww.cn/thread-521525-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程3
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程2
  • 為何選擇集成電平轉(zhuǎn)換?
  • 想要避免發(fā)生災(zāi)難,就用MPLAB® SiC電源仿真器!
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产va免费精品 | 可以免费观看一级毛片黄a 可以免费观看的黄色网址 可以看的黑人性较视频 | 97视频在线观看免费视频 | 日韩一级大片 | 老司机日日摸夜夜摸精品影院 | 日韩在线视精品在亚洲 | 亚洲欧美v视色一区二区 | 黄页网站视频免费 视频 | 欧美成人国产一区二区 | 四虎精品永久免费 | 亚洲视频在线观看 | 在线播放国产区 | 在线亚洲观看 | 国产 欧美 日本 | 中文字幕一区二区三区精品 | 西瓜影院在线理论片 | 成人日韩在线观看 | 春日迟迟再出发综艺在线观看免费 | 弄农村老妇呻吟 | 久久综合结合久久很很很97色 | 四虎精品永久在线 | 久久99久久99精品免观看 | 日日噜噜夜夜狠狠tv视频免费 | 四虎影视永久在线精品免费 | 男女免费视频 | 国产日韩欧美在线播放 | 91精品在线免费视频 | 成年人免费在线看惊悚片动作片 | 精品国产一区二区在线观看 | 丁香狠狠色婷婷久久综合 | 日韩免费看 | 亚洲动漫在线观看 | 国产三区视频 | 欧洲免费在线视频 | 在线国产一区二区三区 | 日日操操干干 | 日韩在线国产 | 国产精品欧美一区二区三区 | 好爽毛片一区二区三区四区 | 好吊色欧美一区二区三区四区 | 免费人成在线观看网站视频 |