ADSP技術(shù)與應(yīng)用_第1頁
ADSP技術(shù)與應(yīng)用_第2頁
ADSP技術(shù)與應(yīng)用_第3頁
ADSP技術(shù)與應(yīng)用_第4頁
ADSP技術(shù)與應(yīng)用_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、ADSP技術(shù)與應(yīng)用 實(shí)驗(yàn)報(bào)告班級(jí) 學(xué)號(hào) 姓名實(shí)驗(yàn)一:VISUAL DSP+的使用入門實(shí)驗(yàn)?zāi)康氖煜ISUAL DSP+的開發(fā)環(huán)境。針對ADSP-21065L SHARC DSP,利用幾個(gè)用 C、C+和匯編語言寫成的簡單例子來描述VISUAL DSP +十編程環(huán)境和調(diào)試器 (debugger)的主要特征和功能。對于運(yùn)行在其它類型SHARC處理器的程序只需對其鏈接描述文件(.LDF) 做一些小的變化,就可用于ADSP-21065L的硬件仿真。實(shí)驗(yàn)內(nèi)容練習(xí)一:啟動(dòng)Visual DSP+,建立一個(gè)用C源代碼的工程(Project),同時(shí)用調(diào) 試器來評(píng)估用C語言所編寫代碼的性能;練習(xí)二:創(chuàng)立一個(gè)新的工程

2、,修改源碼來調(diào)用一個(gè)匯編(asm)程序,重新編譯 工程,用調(diào)試器來評(píng)估用匯編語言所寫程序的性能;練習(xí)三:利用調(diào)試器的繪圖(plot)功能來圖形顯示一個(gè)卷積算法中的多個(gè)數(shù)據(jù) 的波形;練習(xí)四:利用調(diào)試器的性能統(tǒng)計(jì)功能(Statistical profile來檢查練習(xí)三中卷積算法 的效率。利用所收集到的性能統(tǒng)計(jì)數(shù)據(jù)就能看出算法中最耗時(shí)的地方。實(shí)驗(yàn)步驟練習(xí)一 C代碼例子Step l 進(jìn)入 Visual DSP +十并打開一個(gè)工程(Project);進(jìn)入 Visual DSP + +,顯 示 Visual DSP+ 的集成 開發(fā)和調(diào)試環(huán)境窗口(Integrated Development and Deb

3、ugger Environment,簡稱 IDDE)。選擇菜單 File 中 Open 打開文件:Step 2 編譯dotprodc工程;在菜單Project中選擇Build Project來對工程進(jìn)行 編譯。此時(shí),輸出窗口顯示程序編譯時(shí)的各種狀態(tài)信息(包括出錯(cuò)和編譯進(jìn)程信 息)。當(dāng)編譯檢測到錯(cuò)誤時(shí),將在輸出窗口出現(xiàn)相應(yīng)的出錯(cuò)信息,用鼠標(biāo)雙擊它, 編譯器將自行打開源文件。這時(shí)可對源文件編輯、修改錯(cuò)誤,再次進(jìn)行編譯。當(dāng) 編譯不再有錯(cuò)時(shí),輸出窗口將顯示“ Build completed successfully”。Step 3運(yùn)行VsualDSP+調(diào)試器;在編譯完成后,環(huán)境將自動(dòng)進(jìn)入調(diào)試狀態(tài),對

4、于初次進(jìn)入debugger,將顯示對象選擇對話框,在其中指定對象和處理器信息。Step 4 運(yùn)行dotprod.c;從Debug菜單中選擇Run項(xiàng),程序?qū)⒈粓?zhí)行,其輸出 結(jié)果在Output window中顯示。Step 5評(píng)估函數(shù)a_doc_c的性能(profile); Profile用來分析程序的運(yùn)行時(shí)間特 性,通過Profile可以找到最耗時(shí)的程序段,這可能就是需要進(jìn)一步優(yōu)化性能的 程序段。練習(xí)二:運(yùn)行C和匯編混合程序Step l創(chuàng)建一個(gè)新的工程(project)從Project菜單中選取New項(xiàng),在彈出的工程 保存對話框中工程名定義為dot_product_asm.dpj,并保存 在DS

5、P_expunit_1dot_product_asm 目錄下。Step 2 向 dot_product 工程中添加文件;選取菜單 ProjectAdd to Projectfile(s). 項(xiàng),按住 Ctrl 鍵來同時(shí)選中 dotprod_main.c, dotprod.c, dotprod_func. asm 和 dotprodasm.ldf文件,點(diǎn)擊“Add”將這幾個(gè)文件加到工程中。Step 3修改工程源文件Step 4 修改鏈接描述文件dotprodasm. LdfStep5編譯和運(yùn)行dot_product;先選取菜單ProjectHuild Project項(xiàng)來編譯工程;再選取菜單Deb

6、ug Run項(xiàng)來運(yùn)行程序。Step 6 評(píng)估a_dot_asm的效率練習(xí)三:數(shù)據(jù)繪圖(Plotting)Step l將算法程序調(diào)入Debugger環(huán)境Step 2 打開繪圖窗口并設(shè)定參數(shù);選擇菜單ViewDebug WindowsPlotNew. 項(xiàng),將出現(xiàn)Plot參數(shù)設(shè)置窗口。Step 3運(yùn)行程序并在圖形窗口中觀察數(shù)據(jù);接 F5運(yùn)行程序,當(dāng)程序Halt (SHIFT-F5)后,Plot窗口中將出現(xiàn)數(shù)據(jù)曲線。圖中的三條曲線分別代表Table、Input和Output三個(gè)數(shù)組的值練習(xí)四:性能統(tǒng)計(jì)(Statistical Profiling)Step l 調(diào)用 convolution 程序Step

7、2打開統(tǒng)計(jì)特性選項(xiàng)Step 3收集和檢查統(tǒng)計(jì)特性數(shù)據(jù)實(shí)驗(yàn)要求練習(xí)一:記錄profile窗口中的程序執(zhí)行時(shí)間數(shù)據(jù),分析程序的執(zhí)行時(shí)間 練習(xí)二:記錄profile窗口中的程序執(zhí)行時(shí)間數(shù)據(jù),將結(jié)果與練習(xí)一進(jìn)行比較 練習(xí)四:記錄statistical profiling results窗口中的數(shù)據(jù),分析耗時(shí)最多的程序段, 并且說明原因?qū)嶒?yàn)數(shù)據(jù)及結(jié)果Histogram幻Execution Unit0 . S彩-c019 - c02e0 . S彩a_dot_b(doub1e*, doub1e*)0 . S彩a_dot_c(doub1e*, doub1e*)10 .-8000 - 3ffffff0 . 6驅(qū)

8、pad0 . 21primIO0 . gmodsi 30 . 7彩float_divide0 .知_PRIMITIVE_URITE21. 67Xf flush0 . 17dev_write0 . 58a_dot_b(doub1e*, doub1e*)0 . 58a_dot_c(doub1e*, doub1e*)0 . ma_dot_d(doub1e*, doub1e*)15 . 12theputchar3 . 21put_string.10 . 62doprnt_3217 . 98print_float_322 . 41年print_f ised14 . 87年parse_f ormat1.

9、67年parse_f ield1. 10long_to_string1. 10flushwritebuf匚 H IJHistogram.XExecution UnitXLine.E:floatunit ldot product asmd.otprod f unc. asm0.35%日c057 - cOGb1/.0.33%_a_do t-_c_asifL ()2/| 10.日?8000 - 3ffffff3/ FILE : dot-prod_f unc. asm0.10%ex i t4/0.61%pad5/ A handtuned assembly version of a_dot_c0.19%

10、pr i Til 106/0.34%mods i :37/.0.73%f 1 口日.t. divide80.53%_PRIMITIE_URITE29# i nc 1 uds 匚1.56%f flush100.16%dev_wri te11#define N 2011.58%divsi3120.33%_a_do t-_c_asm ()13.SECTIONzPMpm_code2;4.07%a._dot_b(doubLe*. doub 1 e*)14.GLOBAL _a_dot_c_asjh2 . S3%a_dot_d(doubLe*._ doub 1 e*)154.79%t- heput char

11、ie._a._dot-_c_asin:3.00%pu t strinq179.9 4%doprnt_3218entry;17.4 7%pr i n t_ f loa. t._ 3 2192.26%pr i n t f ised0.01%20puts=Rll;14.56%para:B_ f orma t0.01%21puts=R15;1.56%parsB_f isld0.01%22puts=18;1.03%Ion g_ t-o_st r i n g0.01%23R15=10;1.03%f1ushwritebuf0.01%24puts=R15;14.69%do_output250.51%prmt-

12、f0.01%2&L0 = 0;32.27%fputc0.01%27L8 = 0;12.26%s t rl etiD280.54%_ma11oc0.015;2910 = R4;5.10%ud i v0.01%3018 = R8;0.2 4%1ib_get_heap_info31匚3.35%1 i b_se tup_env i ronmen t-0.015;32F15 = F15 - F15, F4 = DM(I0,M6), F0 = PM(I8,M14);0.06%Lib setup c0.01%33Fll = F0 * F4. F4 = DM (10 . M6 ) . F0 = PM (18

13、.Ml 4)0.17%_L ib _:setup_ _ar-g:s340.67%getargv0.01%35LCNTR = N - 2, DO dploop UNTIL LCE;0.79%Lib setup processor360.77%matin。0 .13%37dploop: Fll = F0 * F4, F15 = Fll + F15, F4 = DM(I0,M6), F0 = PM(I8,M14);380.01%39Fll = F0 * F4, F15 = Fll + F15;0.01%40F0 = Fl 5 + Fll;410.015;42R15 =gsts( 1)0.01%431

14、0 =R15;0.01%4418 =getsi:; 2)府新功能提醒0.01%45R15 =gets(3);0.01%46Rll =gets( 4)QQ有以下X個(gè)新】公支持同手用4748_a._dot-_c_asin. end :490.05%50bk i tW 專持同手機(jī)5152量訊麗我45354暑期新版舛|Liiiear Profiling: ADSF-21065L PrograaF)eoiy 1Total Samples: 15396|Elapsed Time:0:00:)0夔埴查贈(zèng)uI Linear Profilinj: ADSP-21065LProgram (PI) leBory 1

15、HistogramXEsecution UnitXLine.E:f1oa tun i t_1Xconvo1u t i onConvo1u t i on.epp383.7:孩:CalculateOutputPulse(const floa.744 . 33%udiv75void Genera telnpu t Pu1se( const float Table, float Input, size_.3.84%_co:sf0.00%762.49囂Genera tel n.pu t Pu 1 se (cons t float .0.02:-J:77for( int i=l; i=10; i+ )2.

16、45Xdivsicl781. 41%I n i t i a. 1 i z eS i neTab 1 b ( f 1 oa t *, un .1.皿79for( int j =0; jnSize/10; j+ )11.float divide800.22XIni tia 1 izebineTab 1 b(. f 1 oat *, un .1.40XEllInputj*i = Table(j*i)/i);0.17%GenBra.teliiipuIsbCdbf f :s(. const f lo .820.11%lib :sb tup env i ronriiBn t830.02%1 i h_5:B

17、 t up_proc:Bssor-0. OOX840.01%esi t850.01%iiia i n (_ _)86/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z.0.01%1 i h_5:B tup_args87/ void GenerateImpu1seCoeffs( const float, float, size_t )0.00%_at-BH:i t88/.0.00%geta.r-gw890.00%pr-ocBss_nBeded_dest rue t i ons_F v90void Genera telmpu1seCoe f f s( const float Tablet float

18、 Impulse,.0.00%1 i b_:se tup_c0.00%910.00%PC0h80050.08:-::92for( int i = 0; inSize; i+ )0.00%FCQu8089930.00%PC0 x808d0.09X94Impulsei = Table(i*10);0.00%PC0h8 0a3950.00%PC0 x808a0. OOX960.00%PC0 x82f0970.00%PC 0is8 2ef 98/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z.0.00%PCClH82f 199/ void CalculateOutputPulse( const flo

19、at, size_t, const float.0.00%PC0 x82f2100/.0.00%PCCiH8 2f 31010.00%PCClH82f 4102void CalculateOutput?ulse( const float Input, size_t nlnputSize,0.00%PCClH82f 5103const float Impulse, size_t nlmpulseSize,0.00%PCCiH8 09d104f loat Uutput :i0.00%PC0 x809c0.00%1050.00%PC0 x809b0.74X106for-1 int i = lJicn

20、lnputbize; i+ 】0.00%PC0h8 OaO1070.00%PCClH809f 27.12X108for( int j =0; jnImpulseSize; j+ )0.00%PC 0 x80.3.21090.00:;:PCCiH80al55.07110Outputi+j = Outputi+j + (Inputi * Impulsej);0.00%PC0 x809a1110.00%PCQu80991120.00:;:PC0 x80980.001130.00%PC0 x809e1140.00%PC0h80971150.00:;:PC0 x80961160.00%FCQu80951

21、170.00%PC0 x808c1180.00:;:PCCiH80Sb119Total Samples: 487161Elapsed Time: 00:00:03|Enabled.分析:耗時(shí)最多的程序段含循環(huán)體較多實(shí)驗(yàn)二:用SIMULATOR模擬實(shí)現(xiàn)數(shù)字信號(hào)處理實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)主要通過四個(gè)練習(xí)來了解如何SIMULATOR實(shí)現(xiàn)基本的信號(hào)處理方法。實(shí)驗(yàn)內(nèi)容練習(xí)一:時(shí)域卷積運(yùn)算練習(xí)二:DFT運(yùn)算練習(xí)三:時(shí)域相關(guān)運(yùn)算練習(xí)四:利用相關(guān)函數(shù)計(jì)算信號(hào)的功率譜實(shí)驗(yàn)步驟1時(shí)域卷積運(yùn)算程序中一個(gè)輸入序列X指定到數(shù)組inputx中,另一個(gè)輸入序列Y指定到數(shù)組 inputy中,卷積的輸出指定到數(shù)組output中。根據(jù)卷

22、積原理,兩個(gè)輸入序列長 度為M=N=64,輸出序列長度為M+N-1=127。Step1調(diào)入程序:啟動(dòng)運(yùn)行VisualDSP+,運(yùn)行菜單命令ProjectNew來新建一 個(gè)工程,工程名稱自定義,正確設(shè)置工程的各個(gè)選項(xiàng),將DSP_expunit_2Conv 目錄下的源文件加入到工程中,同時(shí)建立數(shù)據(jù)文件x.dat和y.dat,以及初始化文 件 zeros.datoStep2選擇輸入數(shù)據(jù)文件Step3編譯程序:分析、理解源程序,在此基礎(chǔ)上再編譯運(yùn)行程序??赏ㄟ^點(diǎn)擊按鈕命令或選擇菜單命令ProjectBuild Project來完成編譯。Step4 觀察結(jié)果:按F5運(yùn)行程序,然后執(zhí)行菜單命令ViewDe

23、bug WindowsPlot命令, 分別作出輸入數(shù)據(jù)inputx和inputy與輸出數(shù)據(jù)output的圖形。Step5改變數(shù)據(jù)再運(yùn)行DFT計(jì)算1)調(diào)入程序2)選擇輸入數(shù)據(jù)文件3)編譯程序4)觀察結(jié)果5)改變數(shù)據(jù)再運(yùn)行時(shí)域相關(guān)計(jì)算1)調(diào)入程序2)選擇輸入數(shù)據(jù)文件3)編譯程序4)觀察結(jié)果5)改變數(shù)據(jù)再運(yùn)行4利用相關(guān)函數(shù)計(jì)算功率譜1)調(diào)入程序2)選擇輸入數(shù)據(jù)文件3)編譯程序4)觀察結(jié)果5)改變數(shù)據(jù)再運(yùn)行實(shí)驗(yàn)要求(實(shí)驗(yàn)二的練習(xí)一)利用plot功能,觀察各種輸入數(shù)據(jù)、輸出數(shù)據(jù)的的波形;按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn),比較給定的幾種數(shù)據(jù)的卷積結(jié)果,說明幾種信號(hào) 卷積的差別。在實(shí)驗(yàn)報(bào)告中記錄pulse4和sin64

24、d卷積的輸入和輸出數(shù)據(jù)及其波形,并利 用數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果。(實(shí)驗(yàn)二的練習(xí)二)1利用plot功能,觀察輸入數(shù)據(jù)x、輸出數(shù)據(jù)的實(shí)部real、輸出數(shù)據(jù)的虛部 imag和求模后的modul的波形;觀察各種波形的DFT運(yùn)算和求模運(yùn)算的結(jié)果,比較并且說明不同輸入數(shù) 據(jù)對應(yīng)的DFT運(yùn)算輸出和求模運(yùn)算輸出的結(jié)果;在實(shí)驗(yàn)報(bào)告中記錄square64的DFT輸入和輸出數(shù)據(jù)及其波形,并利用 數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果。(實(shí)驗(yàn)二的練習(xí)三)利用plot功能,觀察各種輸入數(shù)據(jù)、輸出數(shù)據(jù)的的波形;按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn),觀察和比較自相關(guān)和互相關(guān)的計(jì)算結(jié)果,說明它 們的差別。說明輸入序列和輸出序列的長度之間

25、的關(guān)系;在實(shí)驗(yàn)報(bào)告中記錄trig64的自相關(guān)、它與sin64的互相關(guān)輸入和輸出數(shù)據(jù) 及其波形、并利用數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果。(實(shí)驗(yàn)二的練習(xí)四)利用plot功能,觀察各種輸入數(shù)據(jù)、輸出數(shù)據(jù)的的波形;按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn),觀察和比較自相關(guān)譜和互相關(guān)譜的計(jì)算結(jié)果, 說明它們的差別。在實(shí)驗(yàn)報(bào)告中記錄square32的自相關(guān)譜、它與trig32的互相關(guān)譜的輸入 和輸出數(shù)據(jù)及其波形、并利用數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果實(shí)驗(yàn)數(shù)據(jù)及結(jié)果練習(xí)練習(xí)2練習(xí)3互相關(guān)自相關(guān)實(shí)驗(yàn)四自相關(guān)互相關(guān)實(shí)驗(yàn)三利用ADSP-21065L EZ-KIT板實(shí)現(xiàn)數(shù)字信號(hào)處理實(shí)驗(yàn)器材實(shí)驗(yàn)的硬件資源包括:多功能信號(hào)發(fā)生器一臺(tái);示波

26、器一臺(tái);ADSP21065L-EZ-KIT 板一套,含 EZ-KIT 穩(wěn)壓電源;微型計(jì)算機(jī)一臺(tái);RS232串口電纜一根。音頻三通轉(zhuǎn)接器一只;視頻連接轉(zhuǎn)換器2只;音頻連接電纜3根實(shí)驗(yàn)原理調(diào)節(jié)信號(hào)源可以產(chǎn)生的各種波形的信號(hào),該信號(hào)被送到EZ-KIT板的輸入端; 經(jīng)過板內(nèi)置的CODEC的ADC采樣后,轉(zhuǎn)換成數(shù)字信號(hào);該數(shù)字信號(hào)經(jīng)過 ADSP-21065L完成各種運(yùn)算處理后,經(jīng)過板內(nèi)置的CODEC的DA變換轉(zhuǎn)換成模擬 信號(hào),送給示波器觀察。VisualDSP的軟件環(huán)境設(shè)置注意選擇正確的會(huì)話類型,本實(shí)驗(yàn)sessions的有關(guān)參數(shù)應(yīng)該設(shè)置為:DebugTarget 選擇 EZ-KIT 21065LPlan

27、tform 選擇 EZ-KIT LiteProcessor 選擇 ADSP-21065L實(shí)驗(yàn)內(nèi)容數(shù)據(jù)采集與譜分析信號(hào)自相關(guān)的計(jì)算實(shí)驗(yàn)?zāi)康睦斫怆x散傅立葉變化的原理,掌握DFT的快速算法和相關(guān)性運(yùn)算,同時(shí)了解連 續(xù)信號(hào)的采后的頻譜,加深對數(shù)字信號(hào)處理理論的理解。實(shí)驗(yàn)步驟1)連接硬件:斷開所有電源,連接好信號(hào)源,EZ-KIT板,微機(jī),示波器等。檢 查EZ-KIT板上的跳線位置是否正確,按照硬件連接圖檢查確保正確連接各個(gè)硬件 設(shè)備。2)加電和啟動(dòng)程序檢查無誤后,分別打開PC機(jī)、信號(hào)源、評(píng)估板和示波器的電源,啟動(dòng)VisualDSP+, 新建一個(gè)工程,工程名稱自定義,正確設(shè)置工程的各個(gè)選項(xiàng),將DSP_ex

28、punit_3Fft目錄下的源文件3)選擇或者建立正確的會(huì)話類型:按照要求選擇或者建立EZ-KIT類型的會(huì)話,4)編譯鏈接運(yùn)行程序5)改變信號(hào)再觀察6)改變窗函數(shù)再觀察:修改源程序中main()函數(shù)中的windows變量的值,分 別讓其等于1或2觀察、記錄實(shí)驗(yàn)結(jié)果,對實(shí)驗(yàn)結(jié)果作出比較,并得出結(jié)論。實(shí)驗(yàn)要求練習(xí)一利用plot功能,在程序中設(shè)置斷點(diǎn),觀察各種波形的采樣數(shù)據(jù)、輸出數(shù)據(jù)的 的波形;按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn),連續(xù)運(yùn)行程序,觀察示波器的波形,說明它們的差 別。在實(shí)驗(yàn)報(bào)告中記錄方波和三角波的采樣數(shù)據(jù)和FFT結(jié)果數(shù)據(jù),描繪其波形。并利用數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果。練習(xí)二利用plot功能,在程

29、序中設(shè)置斷點(diǎn),觀察各種波形的采樣數(shù)據(jù)、輸出數(shù) 據(jù)的的波形。按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn),連續(xù)運(yùn)行程序,觀察示波器的波形,說明它們的 差別。在實(shí)驗(yàn)報(bào)告中記錄正弦波和三角波的采樣數(shù)據(jù)和自相關(guān)結(jié)果數(shù)據(jù),描繪其 波形。并利用數(shù)字信號(hào)處理課程所學(xué)知識(shí)分析結(jié)果。實(shí)驗(yàn)數(shù)據(jù)及結(jié)果10,000.05,000.0加窗三角波FFT結(jié)果數(shù)據(jù)30.020.010.00.00.0100.0200.0300.0Line Plot加窗方波采樣教據(jù)加窗方波采樣數(shù)據(jù)30.0加窗方波FFT結(jié)果數(shù)據(jù)三角波FFT結(jié)果數(shù)據(jù)24.0Line Plot方波方波FFT結(jié)果數(shù)據(jù)28.016.0100.0200.0300.0三角波采樣數(shù)據(jù)10,000.0-10,000.0100.0200.0300.020.0波采律教括方波采樣數(shù)據(jù)10,000.01

溫馨提示

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

評(píng)論

0/150

提交評(píng)論