




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)中平臺PCI模塊驅(qū)動講解1、 PCI系統(tǒng)需求PCI網(wǎng)卡2、 PCI總線的基礎(chǔ)知識PCI是Peripheral Component Interconnect(外設(shè)部件互連標準)的縮寫,它是目前個人電腦中使用最為廣泛的接口,其位寬為32位或64位,工作頻率為33MHz,最大數(shù)據(jù)傳輸率為133MB/sec(32位)和266MB/sec(64位)??刹褰语@卡、聲卡、網(wǎng)卡、內(nèi)置Modem、內(nèi)置ADSL Modem、USB2.0卡、IEEE1394卡、IDE接口卡、RAID卡、電視卡、視頻采集卡以及其它種類繁多的擴展卡. 目前PCI-E是PCI最新的發(fā)展方向,串行,點對點傳輸,每個傳輸通道獨享帶
2、寬;支持雙向傳輸模式和數(shù)據(jù)分通道傳輸模式;在PCI-E 3.0規(guī)范中,X32端口的雙向速率高達320Gbps,可以滿足新一代的I/O接口,比如:千兆(GE)、萬兆(10GE)的以太網(wǎng)技術(shù)、4G/8G的FC技術(shù)。實現(xiàn)PCI驅(qū)動開發(fā)需要了解的基礎(chǔ)知識主要包括三個方面,PCI 控制器、PCI 設(shè)備以及 PCI 總線。PCI拓撲結(jié)構(gòu)如下圖,在總線結(jié)構(gòu)中,ethernet、SCSI、video設(shè)備和pci-pci bridge都為PCI設(shè)備, CPU中包含PCI控制器、Pci bus0 和pci bus1為PCI設(shè)備總線。1、PCI總線每一個PCI device都有其unique PFA(PCI Fcn
3、tion Address)PFA由 bus number、device number、function number組成。一條PCI總線支持256個PFA,即支持256個PCI device。 每個PCI芯片都有自己的device number(取決于IDSEL管腳),每個PCI芯片占用8個PFA。 每個PCI芯片的第一個PCI device的PFA必為8的倍數(shù)。 若PCI device的配置空間中PCI_HEADER_TYPE寄存器的最高bit為1,說明此芯片還有其他PFA,即還有其他device,即當前芯片是 multi-function device. 在系統(tǒng)中,每個PCI芯片上的所獨有
4、的信號線是:INTA、INTB、INTC、INTD、IDSEL 每個芯片上的IDSEL需要連到PCI總線中AD31:11中的一根,這對應(yīng)于PCI device PFA的device number(1) 接口控制管腳 (出問題時常測這些管腳)FRAME#:幀周期信號。Master驅(qū)動,表示一次訪問的開始和持續(xù)時間。 FRAME#無效時,是傳輸?shù)淖詈笠粋€數(shù)據(jù)周期。IRDY#:Master準備好信號。TRDY#:Slave準備好信號。當這兩者同時有效時,才能進行完整的數(shù)據(jù)傳輸,否則即為等待周期。在寫周期,IRDY#信號有效時,表示有效的數(shù)據(jù)信號已在AD0AD31中建立;在讀周期,IRDY#信號有效時
5、,表示Master已做好接收數(shù)據(jù)的準備。在寫周期,TRDY#信號有效,表示Slave已做好了接收數(shù)據(jù)的準備。在讀周期,TRDY#信號有效,表示有效數(shù)據(jù)已被送入AD0AD31中,STOP#:停止數(shù)據(jù)傳送信號,由Slave發(fā)出。當它有效時,表示Slave請求Master終止當前的數(shù)據(jù)傳送。IDSEL:初始化設(shè)備選擇信號。在讀寫配置空間時,用作Slave的片選信號(Slave通常把IDSEL連到AD31:0上的一根,PFA中的device id就是這么確定的)DEVSEL#:設(shè)備選擇信號,由Slave驅(qū)動,該信號有效時,當前Slave設(shè)備已被選中 (2)時序讀時序?qū)憰r序: 2、P
6、CI設(shè)備 每個PCI邏輯設(shè)備都有自己的配置空間,里面存儲了一些基本信息,生產(chǎn)商,IRQ中斷號,還有就是定義了mem空間和io空間的起始地址和大小。256字節(jié)的PCI配置空間分為64字節(jié)的頭標區(qū)和192字節(jié)的設(shè)備相關(guān)區(qū)兩部分。頭標區(qū)的各個寄存器用來唯一地識別設(shè)備;設(shè)備相關(guān)區(qū)則保存一些與設(shè)備相關(guān)的數(shù)據(jù)。配置空間的頭標區(qū)又分為兩部分:前16個字節(jié)的定義在各種類型的PCI設(shè)備中都是一樣的;剩余的字節(jié)隨設(shè)備類型不同而有所不同。位于偏移地址0EH處的頭標類型字段規(guī)定了頭標區(qū)的布局結(jié)構(gòu)。目前,規(guī)范定義了三種頭標類型。嵌入式系統(tǒng)中中的PCI網(wǎng)卡的頭標類型是0,所以下面我們就來詳細說說其布局結(jié)構(gòu),至于其他類型的
7、頭標請讀者自行閱讀。圖3就是頭標類型0的頭標區(qū)的布局。頭標區(qū)中的寄存器根據(jù)功能可分成下面幾組:1. 設(shè)備的識別(1) 供應(yīng)商代碼:該寄存器用于識別PCI設(shè)備的制造商,具體代碼由PCI SIG()分配。0FFFFH是無效的供應(yīng)商代碼。(2)設(shè)備代碼。該寄存器用來標識某供應(yīng)商生產(chǎn)的具體設(shè)備,代碼由各供應(yīng)商定義。供應(yīng)商代碼和設(shè)備代碼,讀者可以到網(wǎng)站(3)版本號。該寄存器用來定義指定設(shè)備的版本信息。(4)頭標類型。該字段的第7位為“1”標識該設(shè)備是多功能設(shè)備,為“0”標識為單功能設(shè)備;該字段的06位就是上文表中所述的頭標類型。(5)設(shè)備分類代碼。用來標識設(shè)備的總體功能和特定的寄存器級編程接口。上面5個
8、字段均為只讀類型,所有的PCI設(shè)備都必須實現(xiàn)其功能。2. 設(shè)備控制和設(shè)備狀態(tài)(1) 命令寄存器為一個設(shè)備發(fā)出和響應(yīng)PCI總線命令提供粗略的控制。下圖就是命令寄存器格式。圖 命令寄存器格式 我們比較關(guān)注的位有:a.位0(I/O空間控制):控制對I/O空間訪問的響應(yīng)。該位為0時,禁止設(shè)備響應(yīng)對I/O空間的訪問;該位為1時,允許設(shè)備響應(yīng)I/O空間的訪問。缺省設(shè)置為0。b.位1(存儲器空間控制):控制一個設(shè)備對存儲器空間訪問的響應(yīng)。該位為0時,禁止響應(yīng);該位為1時,允許設(shè)備響應(yīng)對存儲器空間的訪問。缺省設(shè)置為0。 (2) 狀態(tài)寄存器用來記錄PCI總線有關(guān)的狀態(tài)信息
9、。 3. 基址寄存器PCI設(shè)備中,除了配置空間外,還有兩個物理空間:內(nèi)存空間和I/O空間。為了訪問這兩個地址空間,就必須使用基址寄存器。頭標類型0中涉及3種基址寄存器:內(nèi)存空間基址寄存器、I/O空間基址寄存器和擴展ROM基址寄存器。在所有的基址寄存器中,位0均為只讀位并且用來決定能夠是存儲器空間還是I/O空間。如果該位為0,則表示映射到存儲器空間;若為1則表示映射到I/O地址空間。 (1)存儲器基地址寄存器映射到存儲器空間的基址寄存器可以是32位寬度,也可以是64位寬度(支持映射 到一個64位地址空間時)32/64存儲器基地址寄存器格式 其中位0要用硬件方法使其恒
10、為0。而位2和位1兩位用來表示映射類型,具體如下: 位2和位1映射類型00基地址寄存器為32位寬,可以在32位表示的存儲器地址范圍的任何地方進行映射01保留10基地址寄存器為64位寬,可以映射到以64位表示的存儲器空間的任何地方11保留至于位3,若數(shù)據(jù)是可預(yù)取的,就應(yīng)將它置為1,否則清0。該寄存器的區(qū)域各位用來將一設(shè)備映射到存儲器空間?;刂芳拇嫫髦杏糜?2位存儲器譯碼器的位【314】和用于64位存儲器譯碼器的位【634】稱為基地址單元。它的作用是:確定與譯碼器相關(guān)的存儲器的大??;給譯碼器分配地址。如果存儲器設(shè)備需要小于4K的存儲空間,規(guī)范建議存儲器范圍強行設(shè)為4KB。 (
11、2) I/O基地址寄存器映射到I/O空間的基址寄存器寬度總是32位:I/O基地址寄存器格式 其中位0值為1(用硬件實現(xiàn)的),位1為保留位并且其讀出值必須為0,其余各位用來把設(shè)備映射到I/O空間。當基地址寄存器位0的返回值為1時,表示這是一個I/O譯碼器,而不是存儲器譯碼器,位1保留并總是返回0,【31:2】是基地址單元,并用于確定需要的I/O塊容量,設(shè)置它的起始地址。規(guī)范要求映射它的控制寄存器組到I/O空間的 設(shè)備不必請求每個I/O基地址寄存器超過256個單元。 (3)確定塊容量和分配地址范圍要確定存儲器的容量或I/O空間大小可以通過簡單地向基地址寄存器寫入全“1”并回讀來
12、確定。若返回一個是0值,則表示未實現(xiàn)基地址寄存器;如果讀回地值為非0,則編程人員通過從基地址單元的最低有效位向上掃描返回值以找到第一個被成功置“1”的位來確定所需存儲器的容量或I/0空間的大小。假設(shè)寄存器的位0是一個加權(quán)二進制1,那么位1的值就是2,位2的值就是4,依此類推。這樣,在基地址單元中第一個發(fā)現(xiàn)的1所對應(yīng)的加權(quán)二進制值便是所需的空間數(shù)。這也是寄存器的第一個可讀/可寫位,在它之上的所有位鈞定義為可讀/可寫位。這個信息發(fā)現(xiàn)后,程序?qū)?2/64位存儲器起始地址或32位I/O地址寫入基地址寄存器中。 (4)擴展ROM基地址寄存器有些PCI設(shè)備,尤其是那些準備用于PC結(jié)構(gòu)擴展板上的設(shè)
13、備,需要EPROM作為擴展ROM。為此,在配置空間偏移地址30H處開始定義了四個字節(jié)的寄存器,用來處理這個擴展ROM的基地址和大小。 擴展ROM基地址寄存器格式 該寄存器和32位基地址寄存器相比,除了位的編碼和用途不同之外,其它功能完全相似。它的高21位對應(yīng)于擴展ROM基地址的高21位。一個設(shè)備實際實現(xiàn)的位數(shù)取決于該設(shè)備要求多大的地址空間。例如,一個設(shè)備要求它的擴展ROM映射到一64KB存儲區(qū)域時,它就應(yīng)該實現(xiàn)此寄存器的高16位,其它5位用硬件方法使它們恒為0。凡是支持擴展ROM的設(shè)備必須實現(xiàn)這個寄存器。與設(shè)備無關(guān)的配置軟件通過對擴展ROM基址寄存器的地址位上寫入全“1”,
14、然后再讀回以確定設(shè)備要求多大的地址范圍。所有的無關(guān)位上都返回0,從而有效地指出了地址邊界,也就知道了設(shè)備要求的這一塊地址空間的大小。一個設(shè)備要求的地址空間范圍不能超過16MB。 這個寄存器的位0用來控制相應(yīng)的設(shè)備是否能夠接受對其擴展ROM的訪問。當該位為0時,禁止訪問設(shè)備的擴展ROM地址空間;當該位為1時,允許將本寄存器的其它位作為參數(shù)進行地址譯碼。命令寄存器中的存儲器空間位優(yōu)先于擴展ROM的使能位,但是,如果存儲器空間位和擴展ROM的的使能位同時為1時,設(shè)備就必須響應(yīng)對其擴展ROM的訪問。擴展ROM的使能位在復位后應(yīng)該為0。 4. 其他寄存器其他寄存器包括一些本文不涉及到
15、的寄存器,如中斷引腳、中斷線等等。3、 PCI控制器PCI 控制器擔當 PCI 接口與 CSB(統(tǒng)一系統(tǒng)總線) 之間的橋,如下圖為MPC8349的PCI控制器結(jié)構(gòu)主要完成如下功能:(1) PCI設(shè)備配置空間的訪問, 配置訪問寄存器;(2) CPU和內(nèi)存空間地址映射(outbound), I/O定序器實現(xiàn);(3) PCI設(shè)備地址空間的映射(inbound), ATU寄存器;(4) PCI總線錯誤和狀態(tài)等;1、 PCI設(shè)備配置空間的訪問CPU通過兩個寄存器訪問上面介紹的PCI設(shè)備配置空間:CFG_ADDR 和 CFG_DATA。下圖我MPC8349中對應(yīng)的兩個寄存器:(1)PCI配置空間對應(yīng)于一個
16、PCI邏輯設(shè)備,所以要訪問一個配置空間的某個寄存器,必須要指定:PCI總線號、PCI設(shè)備號、PCI設(shè)備功能號和寄存器號。配置地址寄存器的格式如下: 3130 2423 1615 1110 87 210使能位保留總線號設(shè)備號功能號寄存器號00第0、1位上的“0”是用來要求你只能按雙字(4字節(jié))來讀寫配置空間寄存器。第31位“使能位”用來決定是否允許訪問配置空間:為“1”時表示可以訪問;為“0”時表示不可以訪問; (2)對CFG_DATA的操作就是對配置空間相應(yīng)寄存器的操作數(shù); (3)PCI配置空間中的BAR(Base Address Register)用來映射PCI設(shè)備的寄存器,里面的
17、值是bus地址首地址,至于空間的大小,先向bar中寫0xFFFFFFFFF,然后讀取,選最低的一位非0的,比如為0x1000,那個空間的大小就為0x1000。 這里需要注意,當PCI配置成64bit或32bit時,BAR有區(qū)別。2、 CPU和內(nèi)存地址空間映射到PCI地址空間(outbound) 當CPU訪問PCI設(shè)備的mem空間和io空間的寄存器時,需要進行地址轉(zhuǎn)換。MPC8349有6個outbound窗口05用來將CPU內(nèi)部地址轉(zhuǎn)換為PCI總線地址。每個outbound窗口有如下三類寄存器: (1)外部PCI總線地址的基址outbound窗口轉(zhuǎn)換后(外部PCI總線地址
18、的基址,當使用64bit PCI時會用到第二個擴展寄存器) (2)CPU內(nèi)部32bit地址的基址(EA) (3) 窗口屬性寄存器,大小、轉(zhuǎn)換類型等等EN:設(shè)置此窗口是否使能RTT/WTT:分別設(shè)置此窗口的存取方式(memory或io)OWS:設(shè)置此窗口大小3、 PCI地址映射到CPU和內(nèi)存地址空間(inbound)當PCI設(shè)備訪問MPC8349時,有3個inbound窗口13用來將PCI總線地址轉(zhuǎn)換為CPU內(nèi)部地址。和outbound窗口一樣,inbound窗口有如下三類寄存器: (1)CPU內(nèi)部32bit地址的基址(TA)
19、; (2)外部PCI總線地址的基址(使用64bit PCI時會用到第二個擴展寄存器)(3) 窗口屬性寄存器,大小、轉(zhuǎn)換類型等等EN:設(shè)置此窗口是否使能PF:設(shè)置此窗口是否開啟prefetchable特性TGI:Target Interface,見datasheet P883RTT/WTT:設(shè)置PCI外設(shè)訪問CPU時的存取方式(snoop L2cache 等等)IWA:設(shè)置此窗口的大小3、 驅(qū)動的實現(xiàn)嵌入式系統(tǒng)中平臺PCI驅(qū)動目錄結(jié)構(gòu)如下:該PCI驅(qū)動主要分為三個主要部分:(1)PCI總線的基本操作;(2) mpc8349的pci控制器的配置;(3
20、) 板級PCI總線的支持和注冊;1、 PCI總線的基本操作(1)數(shù)據(jù)結(jié)構(gòu)PCI控制器數(shù)據(jù)結(jié)構(gòu),包括了PCI控制基本的信息typedef struct tagDRV_PciCtrlerInfo_T PLT_INT32 lCtrlId; /*< pci控制器id */ PLT_UINT32 ulState; /*< pci控制器狀態(tài) */ PLT_UINT32 ulCacheLine; /*< cache line大小 */ PLT_UINT32 ulLatencyTimer; /*< 延遲時序參數(shù) */ reg32_t *pulCfgAddr; /*< 配置寄存器地
21、址 */ reg8_t *pucCfgData; /*< 配置數(shù)據(jù)地址 */ void *pvIoseq; /*< io排序器地址 */ void *pvCtrl; /*< 控制器私有指針 */ PLT_UINT32 ulFirstOutbNum;/*< outbound區(qū)域在apstRegion中的第一個編號,must less than ulFirstInbNum */ PLT_UINT32 ulFirstInbNum; /*< inbound區(qū)域在apstRegion中的第一個編號 */ PLT_UINT32 ulTotalRegion; /*< ap
22、stRegion中pci region的總數(shù) */ DRV_PciRegion_S *apstRegion; /*< pci region區(qū)域指針 */ DRV_PciCfgTable_S *pstCfgTable; /*< pci 設(shè)備配置表指針 */ DRV_PciDevInfo_S*apstDevicesDRV_PCI_BUS_NUM_MAXDRV_PCI_DEVICES_NUM_MAX; /*<pci設(shè)備信息指針 */ void (*fpPciReset)(const struct tagDRV_PciCtrlerInfo_T *pstCtrl, PLT_UINT32
23、 ulVal); /*< pci控制器復位函數(shù)指針 */ PLT_INT32 (*fpPciInit)(struct tagDRV_PciCtrlerInfo_T *pstCtrl); /*< pci控制器初始化函數(shù)指針 */ DRV_PciCtrlerInfo_S;PCI總線地址訪問映射區(qū)域數(shù)據(jù)機構(gòu)/* * brief pci region信息 */typedef struct tagDRV_PciRegion_T DRV_PCI_ADDR_T ulBusStart; /*< pci總線起始地址,低32bits */ DRV_PCI_ADDR_T ulExtBusStart
24、; /*< pci總線起始地址,高32bits */ DRV_PHYS_ADDR_T ulPhysStart; /*< 物理地址 */ DRV_PHYS_ADDR_T ulAddrAlloc; /*< 空閑的物理地址,已經(jīng)分配好的物理地址的尾部 */ DRV_PCI_SIZE_T ulSize; /* region大小 */ PLT_UINT32 ulFlags; /* region資源標記 */ DRV_PciRegion_S;(2) PCI總線的操作a)PCI設(shè)備配置空間的訪問接口,實現(xiàn)對PCI設(shè)備的配置:void DRV_PciConfigByteRead0(const
25、 DRV_PciCtrlerInfo_S *pstCtrl, DRV_PCI_DEV_T ulDev, PLT_UINT32 ulWhere, PLT_UINT8 *pucVal);DRV_PciConfigWordRead0();DRV_PciConfigDwordRead0();DRV_PciConfigByteWrite0();DRV_PciConfigWordWrite0();DRV_PciConfigDwordWrite0();b)PCI控制器實例的注冊接口, 在MPC8349控制器配置后調(diào)用此接口完成注冊PLT_INT32 DRV_PciCtrlerRegister(DRV_Pci
26、CtrlerInfo_S *pstCtrlInfo);c) 向pci控制器注冊pci設(shè)備, 例如DM9102網(wǎng)卡PCI設(shè)備注冊到PCI控制器,就需要調(diào)用此接口PLT_INT32 DRV_PciDevAttach(DRV_PciDevInfo_S *pstDev);d) pci總線地址到內(nèi)存物理地址的轉(zhuǎn)換PLT_INT32 DRV_PciBusToPhys(const DRV_PciCtrlerInfo_S *pstCtrlInfo, DRV_PCI_ADDR_T ulBusAddr, PLT_UINT32 ulFlags, DRV_PHYS_ADDR_T *pulPhyAddr);e ) 內(nèi)存
27、物理地址到pci總線地址的轉(zhuǎn)換PLT_INT32 DRV_PciPhysToBus(const DRV_PciCtrlerInfo_S *pstCtrlInfo, DRV_PHYS_ADDR_T ulPhyAddr, PLT_UINT32 ulFlags, DRV_PCI_ADDR_T *pulBusAddr);f)為pci分配outbound空間,輸出pci總線地址PLT_INT32 DRV_PciOutBRegionAllocate(const DRV_PciCtrlerInfo_S *pstPciCtrl, PLT_UINT32 ulSize, PLT_UINT32 ulIoMem, D
28、RV_PCI_ADDR_T *pulBase);g)為pci分配inbound空間,輸出內(nèi)存物理地址PLT_INT32 DRV_PciInBoundRegionAllocate(const DRV_PciCtrlerInfo_S *pstPciCtrl, PLT_UINT32 ulSize, PLT_UINT32 ulIoMem, DRV_PHYS_ADDR_T *pulPhys);h) pci初始化 - 1.注冊pci控制器 - 2.解復位pci總線 - 3.pci總線初始化 PLT_INT32 DRV_PciInit(void)2、 MPC8349的PCI控制器基本操作(1)數(shù)據(jù)結(jié)構(gòu)a)P
29、CI配置空間訪問寄存器typedef struct tagDRV_PciCfgMpc834x_T reg32_t ulCfgAddr; reg32_t ulCfgData; reg32_t ulAck; reg8_t aucRes116U; DRV_PciCfgMpc834x_S;b)PCI 控制器outbound空間數(shù)據(jù)結(jié)構(gòu)typedef struct tagDRV_PciOutBWinMpc834x_T reg32_t ulPotar; reg32_t ulRes0; reg32_t ulPobar; reg32_t ulRes1; reg32_t ulPocmr; reg32_t ulR
30、es2; DRV_PciOutBWinMpc834x_S;typedef struct tagDRV_IosMpc834x_T DRV_PciOutBWinMpc834x_S astPot6U; reg32_t ulres00x60; reg32_t ulPmcr; reg32_t ulRes1; reg32_t ulDtcr; reg32_t ulRes2; DRV_IosMpc834x_S;.c) PCI控制器錯誤和狀態(tài)數(shù)據(jù)結(jié)構(gòu)typedef struct tagDRV_PciCtrlMpc834x_T reg32_t ulEsr; /* 0x00 */ reg32_t ulEcdr; /
31、* 0x04 */ reg32_t ulEer; /* 0x08 */ reg32_t ulEatcr; /* 0x0C */ reg32_t ulEacr; /* 0x10 */ reg32_t ulEeacr; /* 0x14 */ reg32_t ulEdlcr; reg32_t ulEdhcr; reg32_t ulGcr; /* 0x20 */ reg32_t ulEcr; reg32_t ulGsr; /* 0x28 */ reg32_t aulRes03; /* 0x34 */ reg32_t ulPitar2; /* 0x38 */ reg32_t ulRes1; reg32_
32、t ulPibar2; /* 0x40 */ reg32_t ulPiebar2; reg32_t ulPiwar2; reg32_t ulRes2; reg32_t ulPitar1; /* 0x50 */ reg32_t ulRes3; reg32_t ulPibar1; reg32_t ulPiebar1; reg32_t ulPiwar1; /* 0x60 */ reg32_t ulRes4; reg32_t ulPitar0; reg32_t ulRes5; reg32_t ulPibar0; /* 0x70 */ reg32_t ulRes6; reg32_t ulPiwar0;
33、/* 0x78 */ reg32_t ulRes733; DRV_PciCtrlMpc834x_S;2、 基本操作 a) MPC8349的PCI控制器初始化,完成PCI控制器的注冊PLT_INT32 DRV_PciMpc834xBoardInit(void) b) 初始化PCI控制的映射空間區(qū)域DRV_LOCAL DRV_PciRegion_S g_astPciMpc834xRegionsDRV_SYS_USE_PCI_INTF3U + 3U c) PCI控制器的復位和解復位接口實例DRV_LOCAL void DRV_PciMpc834xReset(const DRV_PciCtrlerIn
34、fo_S *pstPciCtrlInfo, PLT_UINT32 ulVal)d) PCI控制器初始化接口實例, 將astPciMpc834xRegions的地址配置到PCI控制器對應(yīng)的寄存器中DRV_LOCAL PLT_INT32 DRV_PciMpc834xInit(DRV_PciCtrlerInfo_S *pstPciCtrlInfo)*完成outbound窗口映射,outbound窗口用于cpu訪問pci設(shè)備內(nèi)部空間*完成inbound窗口映射,用于pci設(shè)備訪問cpu內(nèi)部空間,比如pci設(shè)備搬移數(shù)據(jù)到cpu內(nèi)存e) MPC834x pci控制器實例的初始化信息, 嵌入式系統(tǒng)中平臺中使用到PCI1控制器DRV_LOCAL DRV_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款 民間借貸 合同范本
- 任意健身合同范本
- 醫(yī)院吊頂合同范本
- 醫(yī)師合同范本
- 獸醫(yī)聘用勞動合同范本
- 關(guān)于按揭車合同范本
- 個人租賃司機合同范本
- 出口業(yè)務(wù)合同范本
- 免租期補充合同范本
- 買賣小區(qū)用地合同范本
- 個人保證無糾紛承諾保證書
- DB51T10009-2024DB50T10009-2024康養(yǎng)度假氣候類型劃分
- 華文版六年級下冊書法教案
- 生產(chǎn)安全重大事故隱患檢查表(根據(jù)住建部房屋市政工程生產(chǎn)安全重大事故隱患判定標準(2022版)編制)
- 期末模擬測試卷(試卷)2024-2025學年六年級數(shù)學上冊人教版
- 2024屆護士資格考試必考基礎(chǔ)知識復習題庫及答案(共170題)
- 小學生防性侵安全教育主題班會課件
- 幸福心理學智慧樹知到答案2024年浙江大學
- 人教版一年級數(shù)學下冊教案全冊(完整版下載打印)
- 2024至2030年全球及中國消費電子磁阻隨機存取存儲器(MRAM)行業(yè)深度研究報告
- 云南省2023年秋季學期期末普通高中學業(yè)水平考試信息技術(shù)(含答案解析)
評論
0/150
提交評論