嵌入式ADS實(shí)驗(yàn)指導(dǎo)書.doc_第1頁
嵌入式ADS實(shí)驗(yàn)指導(dǎo)書.doc_第2頁
嵌入式ADS實(shí)驗(yàn)指導(dǎo)書.doc_第3頁
嵌入式ADS實(shí)驗(yàn)指導(dǎo)書.doc_第4頁
嵌入式ADS實(shí)驗(yàn)指導(dǎo)書.doc_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一 嵌入式微處理器系統(tǒng)的開發(fā)環(huán)境一、 實(shí)驗(yàn)環(huán)境PC機(jī) 一臺軟件: ADS 1.2集成開發(fā)環(huán)境 一套二、實(shí)驗(yàn)?zāi)康?.了解嵌入式系統(tǒng)及其特點(diǎn);2.熟悉嵌入式系統(tǒng)的開發(fā)環(huán)境和基本配置并能編寫簡單的匯編程序三、實(shí)驗(yàn)內(nèi)容1.嵌入式系統(tǒng)的開發(fā)環(huán)境、基本配置2.使用匯編指令完成簡單的加法實(shí)驗(yàn)四、實(shí)驗(yàn)步驟(1)在D:新建一個目錄,目錄名為experiment。(2)點(diǎn)擊 WINDOWS 操作系統(tǒng)的“開始|程序|ARM Developer Suite v1.2 |Code Warrior forARM Developer Suite”啟動Metrowerks Code Warrior,或雙擊“ADS 1.2”快捷方式啟動。啟動ADS 1.2 如圖1-1所示:圖1-1啟動ADS1.2(3) 在CodeWarrior 中新建一個工程的方法有兩種,可以在工具欄中單擊“New”按鈕,也可以在“File”菜單中選擇“New”菜單。這樣就會打開一個如圖1-2 所示的對話框。選擇【File】-【New】,使用ARM Executable Image工程模板建立一個工程,名稱為ADS,目錄為D:experiment。圖1-2 新建文件在這個對話框中為用戶提供了7 種可選擇的工程類型:1)ARM Executabl Image:用于由ARM 指令的代碼生成一個ELF 格式的可執(zhí)行映像文件;2)ARM Object Library:用于由ARM 指令的代碼生成一個armar 格式的目標(biāo)文件庫;3)Empty Project:用于創(chuàng)建一個不包含任何庫或源文件的工程;4)Makefile Importer Wizard:用于將Visual C 的nmake 或GNU make 文件轉(zhuǎn)入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代碼生成一個可執(zhí)行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令創(chuàng)建一個可執(zhí)行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代碼生成一個armar 格式的目標(biāo)文件庫。(4)選擇【File】-【New】建立一個新的文件TEST1.S,設(shè)置直接添加到項(xiàng)目中。輸入如程序代碼,并保存,此時在工程窗口中可以看到TEST1.S文件。 圖1-3 新建test1.s(5) 選擇【Edit】-【Perferences】,在Font選項(xiàng)設(shè)置字體是Fixedsys,Script是CHINESE_GB2312。圖1-4 設(shè)置字體(6) 選擇【Edit】-【DebugRel Settings】,在DebugRel Settings對話框的左邊選擇ARM Linker項(xiàng),設(shè)置鏈接地址。點(diǎn)擊“DebugRel Settings”圖標(biāo)按鈕,即可進(jìn)行工程的地址設(shè)置、輸出文件設(shè)置、編譯選項(xiàng)等,如圖1-5所示。在“ARM Linker”對話框設(shè)置連接地址,在“Language Settings”中設(shè)置各編譯器的編譯選項(xiàng)。對于簡單的軟件調(diào)試,可以不進(jìn)行連接地址的設(shè)置,直接點(diǎn)擊工程窗口的“Make”圖標(biāo)按鈕,即可完成編譯連接。若編譯出錯,會有相應(yīng)的出錯提示,雙擊出錯提示行信息,編輯窗即會使用光標(biāo)指出當(dāng)前出錯的源代碼行,編譯連接輸出窗口如圖1-6所示。同樣,您可以在【Project】菜單中找到相應(yīng)的命令。圖1-5連接器選項(xiàng)設(shè)置 圖1-6 output選項(xiàng)卡OUTPUT 選項(xiàng)卡:該選項(xiàng)卡用來控制連接器進(jìn)行連接操作的類型。其中Linktype 選項(xiàng)組中的單選按鈕確定使用的連接方式。這里選擇Simple,連接器將根據(jù)連接器選項(xiàng)中指定的地址映射方式,生成簡單的ELF 格式的映像文件,所生成的映像文件中的地址映射關(guān)系比較簡單.當(dāng)選擇Simple 連接類型時,需要設(shè)置下列的連接器選項(xiàng),如圖1-5所示。RO Base 文本框中填入0x40000000。地址0x40000000 是開發(fā)板上SDRAM 的真實(shí)地址,是由系統(tǒng)的硬件決定的;RW Base 文本框中填入0x40003000 指的是系統(tǒng)可讀寫內(nèi)存的地址。也就是說,在0x400000000x40003000 之間是只讀區(qū)域,存放程序的代碼段,從0x40003000 開始是程序的數(shù)據(jù)段。Layout 選項(xiàng)卡:該選項(xiàng)卡在連接方式位Simple 時有效,它用來安排一些輸入段在映像文件中的位置。Place at beginning of image 選項(xiàng)組用于指定將某個輸入段放置在它所在的運(yùn)行時域的開頭。包含復(fù)位異常中斷處理程序的輸入段通常放置在運(yùn)行時域的開頭。這里,在Object/Symbol 文本框中指定目標(biāo)文件的名稱init.o,在Section 文本框中指定輸入段的名稱init,從而確定了init.s 源文件中的init 輸入段位指定的輸入段。如圖1-7所示。圖 1-7 Layout 選項(xiàng)卡中連接器選項(xiàng)(6) 選擇【Project】-【Make】,或者按下快捷鍵F7,將編譯鏈接整個工程。如圖 1-8所示為工程窗口中的圖標(biāo)按鈕,通過這些圖標(biāo)按鈕,可以快速的進(jìn)行工程設(shè)置,編譯連接,啟動調(diào)試等等.它們從左到右分別為圖1-8 工程窗口中的圖標(biāo)按鈕A)DebugRel Settings 工程設(shè)置;B)Synchronize Modification Dates 同步修改日期;C)Make 編譯連接;D)Debug 啟動ADX 進(jìn)行調(diào)試;E)Run 啟動ADX 調(diào)試,并直接運(yùn)行;F)Project Inspector 工程檢查,查看和配置工程中源文件的信息;對于簡單的軟件調(diào)試,直接點(diǎn)擊工程窗口的”Make”圖標(biāo)按鈕,即可完成編譯.編譯連接輸出窗口如圖1-9所示。圖1-9編譯連接輸出窗口(7) 選擇【Project】-【Debug】,或者按下快捷鍵F5。IDE環(huán)境就會啟動AXD調(diào)試軟件,接著可以執(zhí)行單步、全速運(yùn)行調(diào)試。圖1-10 AXD調(diào)試窗口注意:本實(shí)驗(yàn)使用軟件仿真,所以要在AXD中選擇【Options】-【Configure Target】菜單,然后在 Choose Target窗口中選用ARMUL軟件仿真。 圖1-11 目標(biāo)環(huán)境選擇五 思考題1.工程模板有何作用? 2.如何強(qiáng)行重新編譯工程的所有文件?(提示:選擇【Project】-【Remove Object Code】刪除工程中的*.obj文件) 六 參考程序AREAExample1,CODE,READONLY; 聲明代碼段Example1 ENTRY ; 標(biāo)識程序入口CODE32; 聲明32位ARM指令START MOVR0,#15 ; 設(shè)置參數(shù)MOVR1,#8ADDSR0,R0,R1; R0 = R0 + R1BSTARTEND實(shí)驗(yàn)預(yù)作關(guān)鍵過程及結(jié)果圖:實(shí)驗(yàn)二 匯編指令實(shí)驗(yàn)一、實(shí)驗(yàn)環(huán)境 PC機(jī) 一臺 ADS 1.2集成開發(fā)環(huán)境 一套二、實(shí)驗(yàn)?zāi)康?.了解ADS 1.2集成開發(fā)環(huán)境及ARMulator軟件仿真方法;2. 掌握ARM7TDMI匯編指令的用法,并能編寫簡單的匯編程序;3.掌握指令的條件執(zhí)行和使用LDR/STR指令完成存儲器的訪問。三、實(shí)驗(yàn)內(nèi)容1.使用LDR/STR指令完成存儲器的訪問。2.使用數(shù)據(jù)處理指令實(shí)現(xiàn)數(shù)據(jù)傳送和算術(shù)和邏輯運(yùn)算。3.使用ADS 1.2軟件仿真,單步、全速運(yùn)行程序,設(shè)置斷點(diǎn),打開寄存器窗口(Processor Registers)監(jiān)視寄存器的值,打開存儲器觀察窗口(Memory) 監(jiān)視存儲器的值。根據(jù)以上要求完成該操作:使用LDR指令讀取0x40003100上的數(shù)據(jù),將數(shù)據(jù)加1,若結(jié)果小于10則使用STR指令把結(jié)果寫回原地址,若結(jié)果大于等于10,則把0寫回原地址周而復(fù)此循環(huán);使用ADS 1.2軟件仿真,單步、全速運(yùn)行程序,設(shè)置斷點(diǎn),打開寄存器窗口(Processor Registers)監(jiān)視R0、R1的值,打開存儲器觀察窗口(Memory) 監(jiān)視0x40003100上的值。 四、實(shí)驗(yàn)步驟(1) 啟動ADS 1.2,使用ARM Executable Image工程模板建立一個工程Instruction1。(2) 建立匯編源文件TEST2.S,編寫實(shí)驗(yàn)程序,然后添加到工程中。(3) 設(shè)置工程鏈接地址RO Base為0x40000000,RW Base為0x40003000。設(shè)置調(diào)試入口地址Image entry point為0x40000000。(4) 編譯鏈接工程,選擇【Project】-【Debug】,啟動AXD進(jìn)行軟件仿真調(diào)試。(5) 打開寄存器窗口(Processor Registers),選擇Current 項(xiàng)監(jiān)視R0,R1 的值。打開存儲器觀察窗口(Memory),設(shè)置觀察地址為0x40003100,顯示方式Size 為32Bit,監(jiān)視0x40003100 地址上的值。圖2-1 Memory 窗口顯示格式設(shè)置寄存器顯示格式與之類似。使用鼠標(biāo)左鍵選擇某一個寄存器,然后點(diǎn)擊鼠標(biāo)右鍵,F(xiàn)ormat 項(xiàng)中選擇顯示格式Hex,Decimal 等等。如圖2-2 所示。圖2-2設(shè)置寄存器顯示格式(6)單步運(yùn)行程序,可以設(shè)置/取消斷點(diǎn),或者全速運(yùn)行程序,停止程序運(yùn)行,調(diào)試時觀察寄存器和0x40003100地址上的值。 圖2-3 調(diào)試程序窗口六、思考題1.LDR偽指令與LDR加載指令的功能和應(yīng)用有何區(qū)別,舉例說明? 2.LDR/STR指令的前索引偏移指令如何編寫?指令是怎樣操作的? 3.在AXD調(diào)試時如何復(fù)位程序? (提示:選擇【File】-【Reload Current Image】重新加載映象文件) 七、參考程序COUNTEQU0x40003100; 定義一個變量,地址為0x40003100AREAExample2,CODE,READONLY; 聲明代碼段Example2 ENTRY; 標(biāo)識程序入口CODE32; 聲明32位ARM指令STARTLDRR1,=COUNT; R1 = COUNTMOVR0,#0; R0 = 0 STRR0,R1; R1 = R0,即設(shè)置COUNT為0LOOP LDRR1,=COUNTLDRR0,R1; R0 = R1 ADDR0,R0,#1; R0 = R0 + 1CMPR0,#10; R0與10比較,影響條件碼標(biāo)志MOVHSR0,#0; 若R0大于等于10,則此指令執(zhí)行,R0 = 0STRR0,R1; R1 0)。四、實(shí)驗(yàn)預(yù)習(xí)要求 (1)仔細(xì)閱讀ARM嵌入式系統(tǒng)基礎(chǔ)教程中第4章ARM指令系統(tǒng)的內(nèi)容。 (2)仔細(xì)閱讀產(chǎn)品配套光盤附帶文檔ADS集成開發(fā)環(huán)境及仿真器應(yīng)用或其他相關(guān)資料,了解ADS工程編輯和AXD調(diào)試的內(nèi)容。(本實(shí)驗(yàn)使用軟件仿真)五、實(shí)驗(yàn)步驟(1)啟動ADS 1.2,使用ARM Executable Image工程模板建立一個工程ProgramC。(2)建立源文件Startup.S和Test.c,編寫實(shí)驗(yàn)程序,然后添加到工程中。(3)設(shè)置工程鏈接地址RO Base為0x40000000,RW Base為0x40003000。設(shè)置調(diào)試入口地址Image entry point為Ox40000000。 (4)設(shè)置位于開始位置的起始代碼段,如圖3-1,3-2所示。圖3-1設(shè)置位于開始位置的起始代碼段(1)圖3-2 設(shè)置位于開始位置的起始代碼段(2)(5)編譯鏈接工程,選擇ProjectDebug,啟動AXD進(jìn)行軟件仿真調(diào)試。(6)在Startups的“B Main”處設(shè)置斷點(diǎn),然后全速動行程序。(7)程序在斷點(diǎn)處停止。單步運(yùn)行程序,判斷程序是否跳轉(zhuǎn)到C程序中運(yùn)行。(8)詵擇Processor vlewsvariables打開變量觀察窗口,觀察全局變量的值,然后單步全速運(yùn)行程序,判斷程序的運(yùn)算結(jié)果是否正確。如圖3-3所示。圖3-3 ARM實(shí)驗(yàn)3的運(yùn)行觀察結(jié)果六、思考題(1)在實(shí)驗(yàn)參考程序中,Startup.s文件的作用是什么?如果沒有Startup.s文件,C程序運(yùn)行會出錯嗎?(2)實(shí)驗(yàn)程序中的Main()函數(shù)名是否可以更改為其他名字?(提示:Main只是一個標(biāo)號。)七、參考程序;startup fileIMPORT|Image$RO$Limit|IMPORT|Image$RW$Base|IMPORT|Image$ZI$Base|IMPORT|Image$ZI$Limit|IMPORTMAIN;declare the main() in the C ProgAREAstart,CODE,READONLYENTRYCODE32ResetLDRSP,=0x40003f00;initial the C caseLDRR0,=|Image$RO$Limit|LDRR1,=|Image$RW$Base|LDRR3,=|Image$ZI$Base|CMPR0,R1BEQLOOP1LOOP0CMPR1,R3LDRCCR2,R0,#4STRCCR2,R1,#4BCCLOOP0LOOP1LDRR1,=|Image$ZI$Limit| MOVR2,#0LOOP2CMPR3,R1STRCCR2,R3,#4BCCLOOP2BMAINEND/ main file#defineuint8unsigned char#defineuint32unsigned int#defineN100uint32 sum;void MAIN(void)uint32 i;sum = 0;for(i = 0;i 【Debug】,啟動AXD進(jìn)行JTAG仿真調(diào)試(需要正確設(shè)置仿真器,注意:使用DebugInExram生成目標(biāo)時,使用片外RAM進(jìn)行仿真調(diào)試,JP6跳線要設(shè)置為Bank0-RAM、Bank1-Flash,在AXD中設(shè)置仿真器參考如圖5-2所示。圖5-2 片外RAM調(diào)試的仿真器設(shè)置8、若JTAG連接出錯,或AXD主窗口沒有顯示Startup.S源程序,按本書第2.5節(jié)介紹的方法進(jìn)行處理。9、全速運(yùn)行程序,程序?qū)赽eepcon.c的主函數(shù)中停止(因?yàn)閙ain函數(shù)起始處默認(rèn)設(shè)置有斷點(diǎn))。10、單擊Context Variable圖標(biāo)按鈕(或者選擇【Processor Views】-【Variables】)打開變量觀察窗口,通過此窗口可以觀察局部變量和全局變量。選擇【System Views】-【Debugger Internals】即可打開LPC2000系列ARM7微控制器的片內(nèi)外設(shè)寄存器窗口。11、可以單步運(yùn)行程序,可以設(shè)置/取消斷點(diǎn),或者全速運(yùn)行程序,停止程序運(yùn)行,觀察變量的值,判斷蜂鳴器控制是否正確。12、當(dāng)仿真調(diào)試通過后關(guān)閉AXD,在ADS 1.2集成開發(fā)環(huán)境中選用RelOutChip生成目標(biāo),然后編譯連接工程。13、將EasyARM2200開發(fā)板上的JP9跳線短接,JP1、JP4跳線斷開,JP6跳線設(shè)置為Bank0-Flash、Bank1-RAM,JP7跳線設(shè)置為OUTSIDE。14、選擇【Project】-【Debug】,啟動AXD進(jìn)行JTAG仿真調(diào)試。此時EasyJTAG仿真器將會把程序下載到片外FLASH上(需要正確設(shè)置仿真器,參考第2.5節(jié))。注意:使用RelOutChip生成目標(biāo)時,使用片外FLASH進(jìn)行仿真調(diào)試(或固化程序),JP6跳線要設(shè)置為Bank0-Flash、Bank1-RAM,在AXD中設(shè)置仿真器參考如圖5-3所示。圖5-3片外FLASH調(diào)試的仿真器設(shè)置15、按EasyARM2200開發(fā)板上的RST復(fù)位鍵,觀察程序是否能脫機(jī)運(yùn)行。16、實(shí)驗(yàn)結(jié)束后,在AXD中設(shè)置仿真器為片外RAM調(diào)試方式的設(shè)置,以便于后面實(shí)驗(yàn)的正確操作。七、思考題為什么這個實(shí)驗(yàn)的工程不需要設(shè)置連接地址?(提示:LPC2200專用工程模板已集成了起動代碼、編譯選項(xiàng)和連接地址設(shè)置等等)在實(shí)驗(yàn)參考程序中,如何控制蜂鳴器報警的速度?在LPC2000系列ARM7微控制器中,有哪兩個管腳作GPIO輸出時需要外接上拉電阻?八、參考程序GPIO輸出控制實(shí)驗(yàn)1的參考程序見程序清單。GPIO輸出控制實(shí)驗(yàn)1參考程序/*文件名:BEEPCON.C*功能:蜂鳴器控制。對蜂鳴器B1進(jìn)行控制,采用軟件延時方法。*使用I/O口直接控制,采用灌電流方式。*說明:將跳線器JP9短接,JP4斷開。*/#includeconfig.h#define BEEPCON 0x00000080/*P0.7引腳控制B1,低電平蜂鳴*/*名稱:DelayNS()*功能:長軟件延時。*入口參數(shù):dly延時參數(shù),值越大,延時越久*出口參數(shù):無*/void DelayNS(uint32 dly)uint32 i;for(;dly0;dly-)for(i=0;i【Debug】,啟動AXD進(jìn)行JTAG仿真調(diào)試。(6)單步運(yùn)行程序,先短接JP1,觀察IO0PIN寄存器的值,然后斷開JP1,觀察IO0PIN寄存器的值。全速運(yùn)行程序,短接/斷開JP1,控制蜂鳴器的蜂鳴。說明:可以通過Watch窗口觀察寄存器的值。選擇【Processor Views】-【W(wǎng)atch】打開Watch窗口,在Watch窗口內(nèi)點(diǎn)擊鼠標(biāo)右鍵,選擇Add Watch項(xiàng)添加變量,如圖6-2所示。圖6-2 Watch窗口在Add Watch窗口中的Expression項(xiàng)輸入*(unsigned long*)0xE0028000),然后回車,如圖6-3所示,然后選擇Add To View按鈕,即可在Watch窗口觀察IO0PIN寄存器(IO0PIN寄存器的地址0xE0028000)。圖6-3 Add Watch對話框在Watch窗口中選擇一個觀察變量,按Del鍵即可刪除此觀察變量。注意:有些寄存器不能讀出顯示或讀操作會影響到其它寄存器的值。七、思考題如果將P0.30設(shè)置為GPIO輸入模式,且管腳懸空,那么讀取P0.30得到的值是0還是1?或者是不確定?如果需要讀取當(dāng)前P0.7的輸出值(不是管腳上的電平),如何實(shí)現(xiàn)?八、參考程序GPIO輸入控制實(shí)驗(yàn)的參考程序見程序清單。GPIO輸入控制實(shí)驗(yàn)參考程序/*文件名:READPIN.C*功能:讀取I/O引腳值,并輸出控制蜂鳴器。*使用I/O口輸入方式對P0.14口進(jìn)行掃描。*說明:將跳線器JP9短接,JP4斷開,然后短接/斷開JP1(使P0.14為低/高電平)。*/#includeconfig.h#define BEEPCON 0x00000080/*P0.7引腳控制B1,低電平蜂鳴*/#define PIN_P014 0x00004000/*定義P0.14屏蔽字*/*名稱:main()*功能:讀取P0.14口的值,并輸出控制蜂鳴器B1。*/int main(void)uint32 i;PINSEL0=0x00000000;/設(shè)置管腳連接GPIOIO0DIR=BEEPCON;/設(shè)置B1控制口為輸出,其它I/O為輸入while(1)if(IO0PIN&PIN_P014)!=0)IO0SET=BEEPCON;else IO0CLR=BEEPCON;for(i=0;i【發(fā)送數(shù)據(jù)】,在彈出的發(fā)送數(shù)據(jù)窗口中點(diǎn)擊“高級”即可打開接收窗口。(6)選擇【Project】-【Debug】,啟動AXD進(jìn)行JTAG仿真調(diào)試。(7)全速運(yùn)行程序,PC機(jī)上的EasyARM軟件會不斷的顯示“Hello World!”。如圖7-1所示。圖7-1 UART實(shí)驗(yàn)運(yùn)行結(jié)果七、思考題U0RBR寄存器和U0THR寄存器的地址是完全一樣的,是不是說明接收寄存器和發(fā)送寄存器是同一物理寄存器呢?如果將實(shí)驗(yàn)參考程序中等待數(shù)據(jù)發(fā)送完畢的代碼改為“while(U0LSR&0x20)=0);”,程序運(yùn)行能得到正確結(jié)果嗎?八、參考程序UART實(shí)驗(yàn)的參考程序見程序清單。UART實(shí)驗(yàn)參考程序/*文件名:SENDSTR.C*功能:向串口發(fā)送數(shù)據(jù)。*說明:使用外部11.0592MHz晶振,根據(jù)CONFIG.H文件配置,F(xiàn)pclk=11.0592MHz;*通訊波特率115200,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)。*/#includeconfig.h/*名稱:DelayNS()*功能:長軟件延時*入口參數(shù):dly延時參數(shù),值越大,延時越久*出口參數(shù):無*/void DelayNS(uint32 dly)uint32 i;for(;dly0;dly-)for(i=0;i【發(fā)送數(shù)據(jù)】,在彈出的發(fā)送數(shù)據(jù)窗口中點(diǎn)擊“高級”即可打開接收窗口(不要選擇“十六進(jìn)制方式顯示”)。

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論