實(shí)驗(yàn)操作步驟說(shuō)明siga-s16開發(fā)板之usb2.0通信_(tái)第1頁(yè)
實(shí)驗(yàn)操作步驟說(shuō)明siga-s16開發(fā)板之usb2.0通信_(tái)第2頁(yè)
實(shí)驗(yàn)操作步驟說(shuō)明siga-s16開發(fā)板之usb2.0通信_(tái)第3頁(yè)
實(shí)驗(yàn)操作步驟說(shuō)明siga-s16開發(fā)板之usb2.0通信_(tái)第4頁(yè)
實(shí)驗(yàn)操作步驟說(shuō)明siga-s16開發(fā)板之usb2.0通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Siga-S16 FPGA 開發(fā)板之 USB2.0 通信實(shí)驗(yàn)Rev. 1.00Rev1.001版本Rev1.002版本時(shí)間作者描述Rev0.012011-07-02LuoFirst Version Release通過(guò)本篇,您可以了解到 MicroBlaze 系統(tǒng)和 USB2.0 環(huán)境下定制 IP 的方法。CY7C68013A 的異步通信原理,EDK本文檔分為以下幾個(gè)部分:一、簡(jiǎn)介二、硬件開發(fā)三、軟件開發(fā)Rev1.003一、 簡(jiǎn)介要實(shí)現(xiàn) FPGA 和 PC 之間的 USB 通信,需要在它們之間加入一個(gè) USB 的控制器,在本開發(fā)板中采用了 Cypress 公司 EZ-USB FX2LP 系列的

2、CY7C68013A,我們先來(lái)介紹一下這款功能強(qiáng)大的 USB2.0控制。CY7C68013A 是一款含高速 USB2.0 通信協(xié)議及兼容的 8051 控制 CYPRESS 公司的 USB2.0 控制芯片。在此中含 16KB 的內(nèi)部 RAM,不需外加器就可以直接運(yùn)行固件程序。CY7C68013A 的內(nèi)部 8051 處理器的工作頻率可以為 48Mhz,24Mhz,12Mhz, 本開發(fā)板中使用了24Mhz 晶體作為時(shí)鐘輸入。CY7C68013A 內(nèi)部集成四個(gè) FIFO,大小共為 4K 字節(jié),用戶可以通過(guò)設(shè)置讓其工作在 Master Slave 模式?;駽Y7C68013A 含有一個(gè) I2C 接口用于

3、連接外部的 EEPROM,用戶先把寫好的固件程序到EEPROM。CY7C68013A 上電啟動(dòng)時(shí)會(huì)自動(dòng)EEPROM 的程序到內(nèi)部的 RAM 開始運(yùn)行。CY7C68013A 的內(nèi)部結(jié)構(gòu)圖如下:如果要了解更詳細(xì)的信息請(qǐng)參考 CY7C68013A 的 Datasheet.本實(shí)驗(yàn)中 MicroBlaze 系統(tǒng)和 USBCY7C68013A 的數(shù)據(jù)通信是通過(guò)異步讀寫 CY7C68013A 的四個(gè)端口(EP2,EP4,EP6,EP8)的 FIFO 的數(shù)據(jù)來(lái)實(shí)現(xiàn)的,其中 MicroBlaze 系統(tǒng)為主設(shè)備, CY7C68013 的端口為從設(shè)備。為了更好的理解下面的內(nèi)容,我們這邊有必要先來(lái)了解一下MicroB

4、laze 系統(tǒng)對(duì) CY7C68013A 的端口 FIFO 的異步讀寫時(shí)序。CY7C68013A FIFO 異步讀:Rev1.004MicroBlaze 控制 FIFOADDR0 和 FIFOADDR1 地址線,選擇需要的端口的 FIFO,拉低 SLOE信號(hào)后,F(xiàn)IFO 的數(shù)據(jù)輸出到數(shù)據(jù)總線。MicroBlaze 拉低 SLRD數(shù)據(jù)。CY7C68013A Slave FIFO 異步讀時(shí)序CY7C68013A FIFO 異步寫:MicroBlaze 控制 FIFOADDR0 和 FIFOADDR1 地址線,選擇需要寫入的端口的 FIFO,輸出要寫入的數(shù)據(jù)到數(shù)據(jù)總線,拉高 SLWR 信號(hào),SLWR

5、的上升沿把數(shù)據(jù)存入 FIFO 中。CY7C68013A Slave FIFO 異步寫時(shí)序二、硬件開發(fā)1電路設(shè)計(jì)本開發(fā)板中使用Spartan6 的Bank2的IO口和CY7C68013A的總線連接。以下為開發(fā)板上的CY7C68013A的接口電路:Rev1.005CY7C68013 和 Spantan6 的接口信號(hào)說(shuō)明如下:因?yàn)?CY7C68013A 工作在 Slave FIFO 模式,所以時(shí)鐘信號(hào) USB_CLKOUT 中沒有使用。和 USB_IFCLK 在本實(shí)驗(yàn)在開發(fā)板中,我們已經(jīng)為用戶配置了 CY7C68013 固件程序,其中設(shè)置 EP2,EP4 的 FIFO 為數(shù)據(jù)輸出,EP6,EP8 的

6、 FIFO 為數(shù)據(jù)輸入,每個(gè)端口的 FIFO 大小為 1K 字節(jié)。另外 FLAGAC 引腳的功能也是在固件程序中配置,其中控制信號(hào)和狀態(tài)信號(hào)都是低電平有效。如果用戶需要改變CY7C68013A 的工作模式,端口或信號(hào)的配置,可以修改 CY7C68013A 的固件來(lái)實(shí)現(xiàn)。關(guān)于如何修改,我們會(huì)在下面的章節(jié)中講到。Rev1.006信號(hào)名輸入輸出(CY7C68013)說(shuō)明USB_FLAGA輸出端口 2 的空信號(hào)“EP2EF”指示。USB_FLAG輸出端口 4 的空信號(hào)“EP4EF”指示。USB_FLAGC輸出端口 6 的空信號(hào)“EP6FF”指示。USB_SLCS輸入CY7C68013 FIFO 的片選

7、信號(hào)USB_SLWR輸入CY7C68013 FIFO 的寫信號(hào)USB_SLRD輸入CY7C68013 FIFO 的讀信號(hào)USB_SLOE輸入CY7C68013 FIFO 的數(shù)據(jù)輸出使能信號(hào)USB_PKTEND輸入數(shù)據(jù)包輸入指示信號(hào)USB_FIFOADDR0輸入Slave FIFO 的端口選通信號(hào): 00:選擇端口 2 的 FIFO;01:選擇端口 4 的 FIFO;10:選擇端口 6 的 FIFO;11:選擇端口 8 的 FIFO;USB_FIFOADDR1輸入U(xiǎn)SB_FD0:15輸入16 位的數(shù)據(jù)信號(hào)2設(shè)計(jì)USB異步控制器IP雖然 Xilinx 的 EDK 中集成了很多外設(shè)控制器,F(xiàn)IFO

8、讀寫控制器,F(xiàn)LASH 控制器。但控制的時(shí)序和 CY7C68013A 的異步讀寫時(shí)序并不一致。所以我們這里自己來(lái)設(shè)計(jì)一個(gè) USB 異步通信 IP 控制器,也可以更好的讓大家學(xué)習(xí)一下定制 IP 控制器的方法。在這前我們先來(lái)了解一下這個(gè) USB 接口的 IP 控制器的功能,它包含四個(gè)寄存器,分別為控制寄存器,狀態(tài)寄存器,寄存器和接收寄存器。MicroBlaze 對(duì) CY7C68013A 的數(shù)據(jù)通信就是通過(guò)操作這四個(gè)寄存器來(lái)實(shí)現(xiàn)的,以下為每個(gè)寄存器的說(shuō)明:寄存器 0:控制寄存器Bit01 會(huì)自動(dòng)清零當(dāng)完成一次讀或?qū)?FIFO 的數(shù)據(jù)(4 字節(jié))。寄存器 1:狀態(tài)寄存器寄存器 2:USB 數(shù)據(jù)寄存器寄

9、存器 3:USB 數(shù)據(jù)接收寄存器下來(lái)我們開始設(shè)計(jì)這個(gè) USB 異步控制器,IP 設(shè)計(jì)的步驟如下: 在 Xilinx 的 EDK 開發(fā)環(huán)境中選擇菜單“Hardwar”“Createand Import PeripheralWizard”,出現(xiàn)以下框。Rev1.007Bit讀/寫說(shuō)明描述Bit3116讀數(shù)據(jù)從 CY7C68013 讀出的高 16 位數(shù)據(jù)Bit015讀數(shù)據(jù)低位從 CY7C68013 讀出的低 16 位數(shù)據(jù)Bit讀/寫說(shuō)明描述Bit3116讀/寫數(shù)據(jù)需要寫入 CY7C68013 的高 16 位數(shù)據(jù)Bit015讀/寫數(shù)據(jù)低位需要寫入 CY7C68013 的低 16 位數(shù)據(jù)Bit讀/寫說(shuō)明

10、描述Bit313只讀-未使用Bit2只讀FLAGC 引腳電平0:CY68013 EP6 FIFO 滿1:CY68013 EP6 FIFO 不滿Bit1只讀FLAGB 引腳電平0:CY68013 EP4 FIFO 空1:CY68013 EP4 FIFO 不空Bit0只讀FLAGA 引腳電平0:CY68013 EP2 FIFO 空1:CY68013 EP2 FIFO 不空Bit讀/寫說(shuō)明描述Bit312讀/寫-不使用Bit1讀/寫USB FIFO 讀命令0:控制器處于空閑狀態(tài)1:EP2 FIFO 數(shù)據(jù)讀到寄存器 3Bit0讀/寫USB FIFO 寫命令0:控制器處于空閑狀態(tài)1:寄存器 2 數(shù)據(jù)寫入

11、 EP6 FIFO 在以下的框中默認(rèn)選擇“Create templates for a new peripheral”, 點(diǎn)擊“Next”。Rev1.008選擇新的外設(shè) IP 的位置,默認(rèn)為項(xiàng)目工程 WorkspacePcores 文件夾。輸入外設(shè)控制器的 IP名字和選擇版本號(hào)。選擇和處理器通信的總線類型為 PLB。Rev1.009在內(nèi)部中選擇軟件復(fù)位和中斷控制如下。默認(rèn)選擇,點(diǎn)“Next”。Rev1.0010默認(rèn)選擇,點(diǎn)“Next”。選擇內(nèi)部寄存器的個(gè)數(shù)為。Rev1.0011 此處顯示設(shè)備控制器和 PLB 接口的信號(hào)名,這里不用管它,直接“Next”。Rev1.0012不用選 BFM 模擬,

12、直接“Next”。選擇第二和第三項(xiàng),生成 ISE工程文件和驅(qū)動(dòng)文件。直接點(diǎn)”Finish”,系統(tǒng)自動(dòng)生成 USB 外設(shè)控制器。Rev1.0013 這時(shí)在 IP Catalog 的界面中會(huì)出現(xiàn) USB 的控制 IP, 狀態(tài)為“DEVELOPMENT”。 在 ISE Project Navigator 中打開剛剛生成的工程文件:Workspacepcoresusb_control_v1_00_adevlprojnavusb_control.xiseRev1.0014 在 usb_control 的工程文件目錄中包含一個(gè) vhd 頂層程序(usb_control.vhd)和四個(gè) vhd子程序 (pl

13、bv46_slave_single.vhd 、 soft_reset.vhd 、interrupt_control.vhd 、user_logic.vhd)。這里我們只需要修改的頂層文件 usb_control.vhd 和用戶邏輯文件 user_logic.vhd 來(lái)實(shí)現(xiàn) USB 控制器的 CY7C68013A 的異步讀寫的數(shù)據(jù)通信功能。 修改頂層文件 usb_control.vhd:1)在端口定義中加入和 CY7C68013A 連接的異步讀寫信號(hào),如下圖紅色圈圈部分:Rev1.00152)同樣在 USER_LOGIC_I 的 port map 中加入這些和 CY7C68013A 連接的異步讀

14、寫信號(hào),如下圖紅色圈圈部分: 對(duì)用戶邏輯文件 usb_control.vhd 作以下的修改: 1)在端口定義中加入和頂層文件的連接信號(hào),如下圖紅色圈圈部分:Rev1.00162)定義以下的內(nèi)部信號(hào)供程序使用:3) 把控制寄存器 0 的 bit0 和 bit1 賦給內(nèi)部信號(hào) TX_enable 和 RX_enable:Tx_enable 和 Rx_enable 信號(hào)為 USB 數(shù)據(jù)和接收令信號(hào):- 如果 TX_enable 為高,把 USB EP6 FIFO。寄存器 2 的數(shù)據(jù)寫入到 CY7C68013-如果 RX_enable 為高,CY7C68013 的 EP2 FIFO 數(shù)據(jù)到 USB 接

15、收寄存器 3 中。4) 修改 SLAVE_REG_WRITE_PROG Process 程序如下:Rev1.0017本 USB 異步控制器只有控制寄存器 0 和寄存器 2 是可寫的。所以在這里刪除了對(duì)寄存器1 和寄存器 3 的寫這部分代碼。另外增加了 USB 數(shù)據(jù)和 bit1 清零的代碼。/接收完成后自動(dòng)對(duì)控制寄存器 bit05)添加 USB_Access_PROC 程序如下:當(dāng) Tx_enable 或 Rx_enable 有效時(shí)產(chǎn)生讀CY7C68013 時(shí)序或?qū)?CY7C68013 時(shí)序。因?yàn)楹蚏ev1.0018CY7C68013 的接口數(shù)據(jù)位為 16bit, 要CY7C68013 的 FI

16、FO 時(shí)序?;蚪邮找粋€(gè)32bit的數(shù)據(jù)需要產(chǎn)生兩次讀寫6)添加 USB_Counter_PROC 代碼如下:產(chǎn)生一個(gè)計(jì)數(shù)器和一個(gè)接收計(jì)數(shù)器,這兩個(gè)計(jì)數(shù)器在上面的 USB_Access_PROC 代碼中需要用到。并在計(jì)數(shù)器計(jì)到“1111110”給信號(hào) TX_finish 和 RX_finish 賦 1,表明完成或接收數(shù)據(jù)完成。數(shù)據(jù)7) 添加 REG1_STATE_PROC 程序如下:Rev1.0019此代碼采樣從 CY7C68013A 的三個(gè)狀態(tài)信號(hào) FLAGA,FLAGB,FLAGC,并保存在狀態(tài)寄存器1 中。) 添加以下的語(yǔ)句為外部接口信號(hào)賦值:因?yàn)?CY7C68013 的片選信號(hào) SLCS

17、 在異步模式下不使用,我們這里一直設(shè)為低,另外在本實(shí)驗(yàn)中只用到 CY7C68013 的 EP2 和 EP6,所以信號(hào) FIFOADDR0的值一直為低。 修改完成并保存后,在工程窗口選中頂層文件 usb_control,點(diǎn)擊右鍵選擇 Implement Top Module 進(jìn)行編譯。Rev1.0020 編譯后如果出現(xiàn)如下錯(cuò)誤,不用理睬。這是因?yàn)?IO 口的編譯的時(shí)候把與 PLB 的接口信號(hào)都當(dāng)成外部的 IO 了。使用太多引起的,因?yàn)?ISE 回到 EDK 開發(fā)環(huán)境,選擇菜單“Hardware”“Create and Import Peripheral Wizard”。Rev1.0021選擇“I

18、mportexistingPeripheral“默認(rèn)位置為項(xiàng)目,點(diǎn)擊“Next”。Rev1.0022在 Name 的下拉菜單中選擇剛才創(chuàng)建的“usb_control”外設(shè)控制器。在彈出的框中選“Yes”。Rev1.0023選“Next”。選“Use existing 按鈕。Peripheral Analysis Order file (*.pao)”, 然后點(diǎn)擊“Browse”Rev1.0024打開 Pao 文件 Workspacepcoresusb_control_v1_00_adatausb_control_v2_1_0.pao后,點(diǎn)擊“Next”。 點(diǎn)擊“Next”。Rev1.0025選

19、擇總線接口模式“PLB46Slave(SPLB)”。點(diǎn)擊“Next”。Rev1.0026選擇外設(shè)控制器的地址為“C_HIGHADDR”。一路點(diǎn)擊“Next”直到完成外設(shè)控制器的設(shè)置。Rev1.0027 回到 EDK 界面,現(xiàn)在看到 usb_control 的狀態(tài)已經(jīng)變?yōu)椤癙RODUCTION”的了。到現(xiàn)在為止 USB IP 異步控制器終于大功告成了, 接下去把它添加到我們的 MicroBlaze 系統(tǒng)中。3EDK硬件開發(fā)添加 usb_control 控制器到 Microblaze 系統(tǒng)的方法與添加其它外設(shè)控制器一樣。 雙擊”usb_control”IP 圖標(biāo)添加,再?gòu)棾龅呐渲么翱邳c(diǎn)擊“OK”完

20、成。Rev1.0028在 Bus Interfaces 界面中點(diǎn)擊 usb_control_0 前面的空心圓使其變?yōu)閷?shí)心, 把usb_control_0 連接到 MicroBlaze 系統(tǒng)的 SPLB 總線上。在“Ports”界面中設(shè)置“usb_control_0”以下的信號(hào)為外部接口信號(hào):在External Ports中把端口名字改成跟開發(fā)板原理圖上的Net名一致。Rev1.0029在“Addresses”界面中設(shè)置點(diǎn)擊“Generate Addresses”按鈕,自動(dòng)進(jìn)行 Address Remap.在 UCF 文件中添加與 CY7C68013 通信的異步接口管腳定義,并保存。配置已經(jīng)完成

21、后,需要保存工程,并重新對(duì)MicroBlaze系統(tǒng)進(jìn)行編譯和生成Bitstream文件:Rev1.0030Hardware-Generate Bitstream.更新后的Bitstream文件到FPGA:Device Configuration - Download Bitstream.再重新Export Hardware design to SDK。接下去就要進(jìn)入 USB 通信的軟件開發(fā)和調(diào)試了。三、軟件開發(fā)USB通信軟件的開發(fā)包含兩部分,一部分為CY7C6803A的固件開發(fā),另一部分為在FPGA MicroBlaze系統(tǒng)的應(yīng)用程序。因?yàn)槲覀円呀?jīng)在開發(fā)板上為大家在EEPROM中配置了CY7C

22、68013A的固件程序,所以在這里對(duì)CY7C68013A固件的開發(fā)只作簡(jiǎn)單的介紹。Rev1.00311CY7C68013A 的軟件開發(fā)USB2.0 CY7C68013A 的固件程序可以用在 Keil uVision 開發(fā)環(huán)境中完成。另外 Cypress 提供的EZ-USB FX2LP 軟件提供了很多 CY68013A 的開發(fā)實(shí)例可作參考。Keil uVision 的開發(fā)環(huán)境:需要的話,大家可以使用 Keil uVision 開發(fā)環(huán)境對(duì) CY7C68013A 的進(jìn)行二次開發(fā)。在開發(fā)板附帶的光盤中有 Keil uVision 4 的安裝軟件。Keil uVision 4 的開發(fā)環(huán)境如下。Keil

23、uVision 4 的環(huán)境的使用在這里不作詳細(xì)介紹,用戶根據(jù)需要可以查看相關(guān)資料。編寫好程序后進(jìn)行編譯,軟件會(huì)自動(dòng)生成一個(gè) hex 文件和 IIC 文件,其中 hex 文件是到CY7C68013 的 RAM 中的目標(biāo)文件,IIC 文件是到 CY7C68013 外部的 EEPROM 中的目標(biāo)文件。在這里我們需要安裝一個(gè) Cypress 的 CyCosole EZ-USB 工具用于固件的上位機(jī)的 USB 通信軟件。及作為 PC在開發(fā)板自帶光盤Tool 目錄下有 EZ-USB FX2LP 安裝軟件,安裝完成后在安裝目錄的CypressUSBExamplesFX2LP 下會(huì)有很多應(yīng)用實(shí)例:Rev1.0

24、032另外在開始菜單中會(huì)多出一個(gè)我們需要的 USB 的通信工具 CyCosole EZ-USB,雙擊打開后如下圖所示,如果 PC 和 FPGA 開發(fā)板的 USB 接口(J6)已經(jīng)連接,而且開發(fā)板已經(jīng)上電,運(yùn)行后 CyCosoleEZ-USB 后軟件會(huì)自動(dòng)識(shí)別 USB 的配置:如果你的 Siga-S16 開發(fā)板的 USB 接口(J6)已經(jīng)連接到 PC,可以單擊”Get Dev”、“GetConf” 和”Get Strings” 等按鈕, 在界面上會(huì)顯示 CY7C68013A 的當(dāng)前的設(shè)置; 單擊”Download”或“Lg EEPROM” 按鈕可以新的固件到 RAM 和 EEPROM 中。2SD

25、K 的軟件開發(fā)在SDK的開發(fā)環(huán)境里,我們?cè)谶@里為USB的串口通信的測(cè)試新建一個(gè)工程,操作方式如下圖所示, 菜單FileNewXilinx C Project 。Rev1.0033在工程向?qū)Ы缑?,紅圈處輸入項(xiàng)目名稱,我將其修改為hello_world 工程模版。hello_usb2,紅圈2處選擇選擇 Target an existingBoard Support Package,如下圖的紅色圈圈部分。Rev1.0034點(diǎn)擊Finish,完成工程向?qū)??;氐介_發(fā)環(huán)境后在工程窗口會(huì)出現(xiàn)hello_usb2的工程目錄:到這一步,hello_usb2的軟件工程已經(jīng)建好了,接下去我們來(lái)編寫USB異步通信的軟

26、件測(cè)試程序。Rev1.0035首先我們先對(duì)helloworld.c重命名為為hello_usb2.c。介紹一下這次USB通信實(shí)驗(yàn)的內(nèi)容。我們?cè)谥鞒绦蛑醒h(huán)CY7C68013A的端口2的FIFO是否有數(shù)據(jù),如果CY7C68013A的端口2的FIFO有接收到從PC發(fā)來(lái)的數(shù)據(jù),程序會(huì)端口2的FIFO數(shù)據(jù)然后把它回到CY7C68013A端口6的FIFO中。下面我們來(lái)編寫USB通信的應(yīng)用程序。首先我們?yōu)楣こ烫砑右粋€(gè)usb_control.h的頭文件。這個(gè)文件在我們?cè)O(shè)計(jì)控制器IP的時(shí)候已經(jīng)生成。我們可以在工作目錄的Workspacedriversusb_control_v1_00_asrc下找到并需要把它添加到SDK的工程中添加usb_control.h文件到工程后顯示如下:再來(lái)修改hello_usb2.c的程序,在程序中我們已經(jīng)添加了中文說(shuō)明,很容易了解每部分程序的功能。修改好的程序如下圖所示:Rev1.0036程序比較簡(jiǎn)單,主函數(shù)在While的循環(huán)體中不斷狀態(tài)寄存器reg1的值,如果檢測(cè)到CY7C68013A的EP2 FIFO不空,EP2 FIFO中的數(shù)據(jù)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論