第七章PSoC編程和調試接口功能_第1頁
第七章PSoC編程和調試接口功能_第2頁
第七章PSoC編程和調試接口功能_第3頁
第七章PSoC編程和調試接口功能_第4頁
第七章PSoC編程和調試接口功能_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章PSoC編程和調試接口

Chapter7ProgrammingandDebugInterfaceofPSoC3/5PSoC編程和調試接口

--前言本章主要介紹PSoC3/5的編程和調試接口功能,其內容主要包括:測試控制器的模塊結構和連接器接口;JTAG和SWD接口的工作原理;PSoC3/5的JTAG和SWD接口的工作原理;8051的片上調試模塊(DoC);Cortex-M3的調試和跟蹤模塊;非易失性存儲器的編程。測試控制器

--測試控制器模塊結構PSoC3/5結構包括一個測試控制器,主要用于下面的目的:用于邊界掃描測試訪問I/O引腳;通過PSoC3的片上調試DoC模塊或者PSoC5Cortex-M3調試訪問端口(DebugAccessPort,DAP)(用于功能測試,設備編程和程序調試)來訪問芯片的存儲器和寄存器。測試控制器

--測試控制器模塊結構測試控制器通過邊界掃描端口(JointTestActionGroup,JTAG)或者串行調試(SerialWireDebug,SWD)接口連接到片外設備。測試控制器包含下面的特性:支持到調試主機的JTAG或者SWD接口;SWD接口可以使用GPIO或者USB引腳;支持邊界掃描IEEE標準1149.1-2001“TestAccessPortandBoundary-ScanArchitecture”;支持額外的JTAG指令/寄存器,用于訪問芯片的剩余部分;與PSoC3/5的調試模塊接口用于訪問芯片的剩余部分用于編程和調試操作;測試控制器

--測試控制器模塊結構如下圖,PSoC3測試控制器將JTAG或者SWD訪問轉換成DoC模塊內寄存器的訪問。圖PSoC3測試控制器模塊圖測試控制器

--測試控制器模塊結構如下圖,在某些JTAG指令下,JTAG或者SWD信號簡單的傳送到ARM的DAP端口。圖PSoC5測試控制器模塊圖測試控制器

--連接器接口1.5針連接器如下圖所示,5針連接器配置成單排,每針之間間隔為100mil。圖5針連接器測試控制器

--連接器接口2.10針連接器如下圖所示,10針連接器配置成雙排,每針之間間隔為50mil。圖10針連接器測試控制器

--連接器接口表不同通信協議的引腳分配協議信號5針10針ISSPSCLK4SDAT5XRES3JTAGTMS2TCK4TDO6TDI8XRES10SWD/SWVSDIO52SCK44SWV6XRES310I2CSCK4SDA5JTAG與SWD接口的工作原理

--JTAG工作原理為了應對IC芯片日益增加的高引腳密度,聯合行動測試小組(JointTestActionGroup,JTAG)提供了一個用于測試電路板的方法,這個方法就是通過一個獨立的測試接口來控制IC的引腳(和讀取它們的值)。這個解決方案就是后來的IEEE1149.1-2001標準,這個標準基于一個概念,即使用一個布線貫穿所有IC引腳的移位寄存器(這也叫做邊界掃描)。每個引腳上都有一個邊界掃描單元。在PSoC3/5中,大部分的GPIO和SIO端口引腳都有邊界掃描單元。JTAG與SWD接口的工作原理

--JTAG工作原理用于控制邊界掃描單元值的接口叫做測試訪問端口(TestAccessPort,TAP),也就是經常所說的JTAG接口。JTAG接口由:測試數據輸入(TDI);測試數據輸出(TDO);測試模式選擇(TMS);測試時鐘信號(TCK)和其它信號構成。下圖給出了JTAG連接多個IC芯片的結構。JTAG與SWD接口的工作原理

--JTAG工作原理下圖給出了JTAG接口的內部結構。

圖JTAG內部結構JTAG與SWD接口的工作原理

--JTAG工作原理如下圖,TMS信號控制TAP的狀態機,狀態機控制哪個寄存器(包括邊界掃描通路)在TDI-TDO移位通路上。圖TAP狀態機JTAG與SWD接口的工作原理

--JTAG工作原理其中:1)ir:是指令寄存器;2)dr:其它寄存器中的一個(包括邊界掃描路徑),由指令寄存器的內容確定;3)capture:將dr寄存器的內容傳輸到移位寄存器中,然后移出TDO;4)update:傳輸移位寄存器的內容,從TDI移入到一個dr;JTAG與SWD接口的工作原理

--JTAG工作原理TAP內的寄存器包含:1)Instruction:2-4位寬,存放當前指令,該指令定義了在TDI-TDO移位通道上的數據寄存器,引起設備被旁路用于JTAG模式;2)Bypass:1位寬度,TDI和TDO直接連接;3)ID:32位寬,用于讀JTAG的制造商/芯片的ID號;4)BoundaryScanPath(BSR):寬度等于I/O引腳(有邊界掃描單元)的數量,用于設置或者讀寫這些I/O引腳的狀態;JTAG與SWD接口的工作原理

--JTAG工作原理在IEEE1149中,給出了標準的指令集:1)EXTEST:該指令將使得TDI和TDO連接到邊界掃描通路上(BSR),芯片將從普通操作模式改變為測試模式。芯片引腳的狀態可以使用capturedr的JTAG狀態進行采樣,使用updatadr狀態新的值可以用于芯片引腳上。JTAG與SWD接口的工作原理

--JTAG工作原理2)SAMPLE:該指令將使得TDI和TDO連接到邊界掃描通路上(BSR),但是芯片仍然處于普通操作模式。使用該指令,BSR可以使用capturedr的JTAG狀態進行讀取,對進入的功能數據進行采樣,然后移出芯片。3)PERLOAD:該指令將使得TDI和TDO連接到邊界掃描通路上(BSR),但是芯片仍然處于普通操作模式。該指令用于在加載EXTEST指令前,預加載測試數據到BSR。JTAG與SWD接口的工作原理

--JTAG工作原理下面給出了可選的指令:1)IDCODE:該指令使得TDI和TDO線連接到IDCODE寄存器。2)INTEST:該指令將使得TDI和TDO連接到邊界掃描通路上(BSR)。當EXTEST指令允許訪問芯片引腳時,INTEST能訪問芯片內核邏輯的信號。JTAG與SWD接口的工作原理

--SWD工作原理SWD接口是由ARM公司開發出來的,目的是減少調試接口所使用的引腳數。SWD接口使用兩個信號線:雙向的數據線(SWDIO)和用于數據線的時鐘信號(SWDCK)。JTAG與SWD接口的工作原理

--SWD工作原理SWD的每個數據傳輸由2/3個周期組成:1)包請求(PacketRequest):外部主機調試器向目標設備發送一個包請求信號;2)確認響應(AcknowledgeResponse):目標設備向主機發送一個響應信號;3)數據(Data):當包請求跟一個確認響應后,傳輸數據:目標設備到主機-讀請求后為-RDATA;主機到目標設備-寫請求后為-WDATA;JTAG與SWD接口的工作原理

--SWD工作原理下圖給出了一個SWD寫時序圖。圖SWD寫JTAG與SWD接口的工作原理

--SWD工作原理下圖給出了一個SWD讀時序圖。

圖SWD讀JTAG與SWD接口的工作原理

--SWD工作原理下面對SWD的讀/寫序列進行介紹:

1)開始位(邏輯‘1’)初始化傳輸;2)APnDP位確定傳輸是一個訪問端口訪問(邏輯‘1’),還是一個調試端口訪問(邏輯‘0’)。3)下一比特為RnW,‘1’表示從設備讀;‘0’表示設備寫;4)ADD為寄存器選擇位,用于選擇訪問端口或者調試端口;JTAG與SWD接口的工作原理

--SWD工作原理5)Parity位是對APnDP,RnW和ADDR的奇偶校驗位。如果這些位域的邏輯‘1’的個數為奇數,則該位為‘1’;否則為‘0’。如果奇偶位不正確,忽略頭部(header),沒有ACK響應;當主機檢測到頭部被忽略,在進行另外一次傳輸時,必須等待一個完整的讀傳輸時間。6)停止位為邏輯‘0’;7)Park:該位不是由主機驅動,SWD接口將信號線拉高,設備(芯片)讀取該位為邏輯‘1’;8)ACK:為設備到主機的響應。表7.2給出了可能的值。JTAG與SWD接口的工作原理

--SWD工作原理9)地址,ACK和讀/寫數據總是從最低位開始傳輸。SWD接口在50多個時鐘周期復位,此時SWDIO為高。表SWD接口可能的ACK位值ACKCode意義100OK-承認頭部,后面跟著數據;010WAIT-以前的傳輸仍然正在被處理,主機應該重試;001FAULT-在調試端口控制/狀態寄存器設置的一個默認標志。JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理

1.時鐘JTAG接口的TCK時鐘和SWD接口的SWDCLK時鐘共享芯片的P1[1]引腳(一個可替換的SWDCK時鐘能輸入到USBD-引腳,P15[7])。時鐘頻率在1MHz和CPU_CLK/2或者25MHz。

2.PSoC3/5的JTAG指令PSoC3/5JTAG接口與IEEE1149.1-2001規范兼容,同時提供了額外的指令。指令寄存器為4比特寬度。下表給出了PSoC3/5額外的JTAG指令。JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理表PSoC3/5額外的JTAG指令位代碼指令PSoC3/5功能1111BYPASS參考IEEE1149.1-20011110IDCODE參考IEEE1149.1-20010010SAMPLE/PRELOAD參考IEEE1149.1-20010000EXTEST參考IEEE1149.1-20010100INTEST與EXTEST一樣JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理位代碼指令PSoC3/5功能0101CLASMP將TDI和TDO連接到BYPASS寄存器,設置引腳到邊界掃描寄存器的當前內容1010DPACC連接TDI和TDO到DP/AP寄存器,用于訪問調試端口寄存器1011APACC連接TDI和TDO到DP/AP寄存器,用于訪問訪問端口寄存器1000ABORT只存在PSoC5,退出當前的AP訪問指令。連接TDI和TDO到DP/AP寄存器,1100SLEEP通知PSoC3/5電源管理器,如果必要的話,切斷測試控制器TC的電源。如果不設置該指令,則不能進入SLEEP。JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理3.DP/AP訪問寄存器PSoC3/5有一個35位寬的DP/AP訪問寄存器,該寄存器用于在JTAG/SWD接口和調試/訪問端口寄存器之間進行數據傳輸。SWD直接讀/寫DP/AP寄存器;JTAG使用DPACC和APACC指令讀/寫DP/AP寄存器。在JTAGupdatadr狀態或者從SWD接口寫到寄存器,下表給出了DP/AP寄存器的結構。表DP/AP寄存器的結構DATAIN[31:0]A[3:2](訪問端口/調試端口的地址)RnWJTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理注:1)[34:3]位:32個數據位,如果端口寄存器小于32位寬度,只傳輸最低的N(位寬度)比特。2)[2:1]位:2位地址位,用于調試和訪問端口寄存器的選擇,在PSoC5中,該位域傳輸到所選寄存器的[3:2],[1:0]總是0;3)[0]位:‘1’讀,‘0’寫;JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理在JTAGcapturedr狀態下或者從SWD接口讀數據時,下表給出了讀寄存器的格式。

表讀寄存器的格式ReadResult[31:0]ACK[2:0]1)[34:3]位:32位數據,如果端口寄存器小于32位寬度,只傳輸最低的N(位寬度)比特。2)[2:0]位:ACK確認符-取決于接口,下表給出了JTAG/SWD接口的ACK響應。表JTAG/SWD接口的ACK響應ACKJTAGSWDOK010001WAIT001010JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理4.JTAG/SWD地址(PSoC3)在PSoC3結構中,JTAG/SWD接口所傳輸的兩位地址,用來訪問調試端口,訪問端口和I/O代碼寄存器。下表給出了JTAG/SWD地址。表JTAG/SWD地址地址DPACC(APnDP=0)APACC(APnDP=1)00IDCODE(只有SWD)-01DBGPRT_CFGTRNS_ADDR10--11-DATA_RWJTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理5.調試端口和訪問端口寄存器(PSoC3)下表給出來的寄存器都是可讀/寫的,除了DBGPRT_CFG寄存器的第7位。表調試端口和訪問端口寄存器名字指令(AP/DP)地址(選擇寄存器)大小(比特)功能DBGPRT_CFGDPACC018調試端口配置寄存器-傳輸大小(8,16,32),自動遞增TRNS_ADDR,檢測/清除寫錯誤TRNS_ADDRAPACC0124傳輸地址DATA_RWAPACC1132數據寫入/讀出從在TRNS_ADDR的地址JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理

6.PSoC3寄存器訪問實例下面給出使用JTAG或者SWD接口訪問8051xdata空間的方法。假設地址的值為0xADD8E5。1)使用JTAG寫地址值到TRNS_ADDR寄存器,調試主機必須:將APACC指令移入到指令寄存器;移動0(寫),后面跟“01”(選擇訪問端口寄存器),后面跟0x00ADD8E5,到35位的DP/AP寄存器;進入JTAGupdatedr狀態;JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理2)使用SWD寫地址值到TRNS_ADDR寄存器,調試主機必須:發送一個請求包,APnDP=1,RnW=0,ADDR=01;得到來自PSoC3的ACK響應;在數據周期,發送0x00ADD8E5。3)寫值0xDA到地址0x00ADD8E5:類似前面步驟,寫0x00ADD8E5到TRNS_ADDR寄存器;類似前面步驟,寫0x000000DA到DATA_RW寄存器(地址為11,而不是01);測試控制器初始化寫傳輸請求到PSoC3;JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理4)從地址0x00ADD8E5讀數:類似前面步驟,寫0x00ADD8E5到TRNS_ADDR寄存器;類似前面步驟,讀DATA_RW寄存器(地址為11,而不是01,RnW=’1’);測試控制器初始化讀傳輸請求到PSoC3,從DATA_RW讀取的數是無效的;等待至少5個TCK/SWDCK時鐘周期,避免WAIT響應;再讀DATA_RW寄存器。數據現在是有效的。JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理7.調式端口和訪問端口寄存器(PSoC5)下表列出的寄存器是ARMCortex-M3調試訪問端口(DebugAccessPort,DAP)的一部分。在PSoC5中,DAP由SWD/JTAG調試端口SWJ-DP和AHB訪問端口AHB-AP構成。JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理表調試端口和訪問端口寄存器(PSoC5)名字指令(AP/DP)地址(選擇寄存器)功能DPCTRL/STATDPACC01調試端口控制/狀態寄存器SELECTDPACC10訪問端口選擇RDBUFF(只SWD)DPACC11返回最后AP讀訪問的結果,不需要啟動新的AP訪問操作APControlStatusAPACC00(SELECT[7:4]=0)AHB-AP控制狀態寄存器APTransferAddressAPACC01(SELECT[7:4]=0)AHB-AP傳輸地址寄存器JTAG與SWD接口的工作原理

--PSoC3/5的JTAG和SWD接口的工作原理名字指令(AP/DP)地址(選擇寄存器)功能APDataRead/WriteAPACC11(SELECT[7:4]=0)AHB-AP數據讀/寫寄存器APBankedData0APACC00(SELECT[7:4]=1)AHB-AP分組(banked)數據寄存器APBankedData1APACC01(SELECT[7:4]=1)AHB-AP分組(banked)數據寄存器APBankedData2APACC10(SELECT[7:4]=1)AHB-AP分組(banked)數據寄存器APBankedData3APACC11(SELECT[7:4]=1)AHB-AP分組(banked)數據寄存器APDebugROMAddressAPACC10(SELECT[7:4]=0xF)AHB-AP調試ROM地址寄存器(只讀)APIdentificationRegisterAPACC11(SELECT[7:4]=0xF)AHB-APID寄存器(只讀)8051片上調試

--片上調試模塊及特點下圖給出了8051的片上調試器模塊結構圖。

圖8051片上調試模塊結構

8051片上調試

--片上調試模塊及特點DOC能接管8051CPU,并且使用PHUB接口訪問任何CPU可以訪問的地址。該模塊的特點主要有:通過JTAG/SWD訪問的TC接口;訪問CPU的內部存儲器和SFR,程序計數器PC;CPU停止;CPU單步;8個程序地址斷點;1個存儲器訪問斷點;看門狗觸發斷點;斷點鏈接;8051片上調試

--片上調試模塊及特點跟蹤CPU指令執行:跟蹤CPU的程序計數器PC,ACC和CPU內部存儲器或SFR的一個字節;2048個指令跟蹤緩沖區(如果只跟蹤PC)1024個指令跟蹤緩沖區(如果跟蹤PC,ACC和CPU內部存儲器或SFR的一個字節);連續,觸發或者窗口模式;當跟蹤緩沖區滿時,CPU停止或者覆蓋以前的值;當不跟蹤時,跟蹤緩沖區作為普通SRAM;8051片上調試

--片上調試模塊及特點SWV具有下面的特點:32個激勵端口寄存器;簡單,高效封裝和串行化協議;兩針輸出模式,UART或者曼徹斯特編碼方式;8051片上調試

--串行線察看器

除了DoC外,PSoC還包括一個串行線察看器模塊(SerialWireViewer,SWV)。SWV允許目標駐留代碼將診斷信息通過單線傳送到外部。使用例子包括數據監視,察看OS任務切換,Printf調試和調用圖形化性能統計和分析(profiling)。SWD輸出通過TC到SWV引腳。SWV和JTAGTDO信號共享一個引腳。連接引腳到SWV,設置SWD模式,NV鎖存位在復位時,決定JTAG/SWD接口引腳的狀態。8051片上調試

--串行線察看器SWV是由兩個CoreSightTM元件組成(ARM開發的),這兩個元件為儀器跟蹤宏單元(InstrumentationTraceMacrocell,ITM)和串行線輸出(SerialWireOutput,SWO)。這些元件有多個數據、控制和狀態寄存器。1)曼徹斯特編碼在該協議下,SWV輸出最多8個字節,前面和后面分別為起始位和停止位。下表給出了曼徹斯特編碼數據序列。表曼徹斯特編碼數據序列STDATA(1-8字節)SP8051片上調試

--串行線察看器下表給出了曼徹斯特引腳協議編碼。表曼徹斯特引腳協議編碼引腳邏輯0邏輯1Idle狀態有效數據TRACESWO低到高(01)高到低(10)低(00)開始位:邏輯‘1’停止位:邏輯‘0’8051片上調試

--串行線察看器下圖給出了使用曼徹斯特編碼傳輸數據序列的圖。圖使用曼徹斯特編碼傳輸數據序列8051片上調試

--串行線察看器2)UART編碼下圖給出了UART的編碼序列。

下表給出了UART的編碼。

圖UART的編碼序列引腳邏輯0邏輯1Idle狀態有效數據TRACESWO低高高起始位‘0’8個數據位。停止位‘1’表UART引腳協議編碼8051片上調試

--串行線察看器下表給出了SWV寄存器的列表表SWV寄存器寄存器大小(比特)描述SWV_SWO_CAOSD32輸出速度分頻SWV_SWO_SPP32輸出協議(曼徹斯特或UART)SWV_ITM_CR32ITM控制SWV_ITM_TER32使能每個激勵端口SWV_ITM_SPRxx32激勵端口0-31SWV_ITM_SCR32同步包控制PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤

PSoC5支持4種接口:JTAG;SWD;SWV;TRACEPORT。Cortex-M3調試和跟蹤功能可以充分的對芯片進行調試。下圖給出了PSoC5的調試和跟蹤模塊圖。PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤圖PSoC5的調試和跟蹤模塊圖

PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤Cortex-M3的調試特性可以分為兩類:侵入式調試(invasivedebuging);非侵入式調試(noninvasivedebugging)。侵入式調試包括程序的停止和單步運行,斷點,數據監視點,寄存器值訪問和基于ROM調試。非侵入式調試包括存儲器訪問,指令跟蹤,數據跟蹤,軟件跟蹤,性能測試和統計(Profiling)。PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤Cortex-M3的調試和跟蹤模塊的特性包括:當CPU正在運行,停止或者復位時,調試訪問所有系統的存儲器和寄存器,包括Cortex-M3寄存器組;JTAG或者SWD訪問;Flash補丁(FlashPatch,FPB)和斷點(FlashPatchandBreakpoint,FPB)模塊,用于實現斷點和代碼補丁;數據監視點和跟蹤模塊(DataWatchpointandTrace,DWT)用于指令跟蹤,觸發器資源和系統性能測試和統計;跟蹤跟蹤宏(EmbeddedTraceMacrocell,IMT)用于支持printf類型調試;支持6個斷點和4個監視斷點;跟蹤端口單元(TracePortInterfaceUnit,TPIU)用于橋接到跟蹤端口分析儀(TracePortAnalyzer,TPA)。PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤通過高級高性能總線訪問端口(AdvancedHigh-performanceBus-AccessPort,AHB-AP)調試控制和數據訪問。通過串行調試端口(SerialWireDebugPort,SW-DP)或者串行線JTAG調試端口(SerialWireJTAGDebugPort,SWJ-DP)驅動這個接口。PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤通過內部的專用外設總線(PrivatePeripheralBus,PPB),調試器能夠訪問:1)嵌套向量的中斷控制器(NestedVectoredInterruptController,NVIC)。通過NVIC,調試訪問到處理器內核;2)DWT;3)FPB;4)ITM;PSoC編程和調試接口功能

--Cortex-M3調試和跟蹤通過外部PPB,調試器能訪問:1)ETM;2)跟蹤端口接口單元(TracePortInterfaceUnit,TPIU);PSoC編程和調試接口功能

--非易失性存儲器編程

PSoC3/5有三種類型的非易失性存儲器(NonvolatileMemory,NVL):Flash,EEPROM,非易失性鎖存器(NonvoltileLatch,NVL)。這些能使用CPU所運行的啟動引導代碼編程或者通過JTAG/SWD接口連接的外部系統。PSoC編程和調試接口功能

--非易失性存儲器編程下圖給出了Flash的塊圖結構。圖Flash塊圖PSoC編程和調試接口功能

--非易失性存儲器編程非易失性存儲器編程系統的特性主要包括:簡單的命令/狀態寄存器接口;Flash可以在288字節/行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論