ARM體系結(jié)構(gòu)實驗報告_第1頁
ARM體系結(jié)構(gòu)實驗報告_第2頁
ARM體系結(jié)構(gòu)實驗報告_第3頁
ARM體系結(jié)構(gòu)實驗報告_第4頁
ARM體系結(jié)構(gòu)實驗報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 目 錄-1-2-22334 5.3 液晶顯示模塊設(shè)計-5 6.1 VS1003 的初始化-5 6.2 MP3文件數(shù)據(jù)寫入- 779 7.1 SD模塊-9 7.2 VS1003模塊-14 7.3 圖形人機(jī)交互模塊-168 -16緒論 隨著消費(fèi)類電子產(chǎn)業(yè)的蓬勃發(fā)展,越來越多的嵌入式電子產(chǎn)品走進(jìn)了千家萬戶。電腦的形態(tài)也不再局限于以前的PC機(jī),各式各樣的嵌入式系統(tǒng)出現(xiàn)在了眾多的行業(yè)和應(yīng)用中,其中ARM和Linux結(jié)合的產(chǎn)品在市場上最受青睞。ARM由于其低功耗、高性能、小體積、低成本受到了越來越廣泛的重視,成為眾多公司產(chǎn)品開發(fā)的主流硬件。而Linux則因其開放的源代碼,可裁剪

2、的內(nèi)核,便利的開發(fā)環(huán)境,各硬件平臺的通用性,逐漸成為嵌入式開發(fā)的主流操作系統(tǒng)。本課題的嵌入式MP3設(shè)計就是基于ARM和linux平臺的。本課題實現(xiàn)了一個完整的嵌入式系統(tǒng),選用zq2410開發(fā)板為目標(biāo)平臺,linux作為目標(biāo)操作系統(tǒng),在這樣的軟硬件環(huán)境下研究實現(xiàn)MP3播放器。文章首先綜述了嵌入式系統(tǒng)開發(fā)方法,介紹了ARM處理器及其特點(diǎn),Linux操作系統(tǒng),嵌入式系統(tǒng)的開發(fā)模式以及如何搭建交叉開發(fā)環(huán)境,然后介紹了所選硬件平臺zq2410目標(biāo)板的各種資源,在系統(tǒng)軟件開發(fā)中,介紹Uboot、Linux的裁剪和移植,根文件系統(tǒng)的制作以及核心驅(qū)動程序的開發(fā),應(yīng)用程序開發(fā)中,介紹了MP3的原理,移植Madp

3、lay MP3播放器,最后成功對Madplay播放器實現(xiàn)了綜合控制。 關(guān)鍵詞:嵌入式ARM Linux驅(qū)動程序MP3第1章 課程設(shè)計的目標(biāo) 1.通過鍵盤輸入,進(jìn)入MP3播放器相應(yīng)的功能選項。 2.MP3播放器具備的功能選項為:播放、暫停、停止、音量控制、音樂下載。 3.MP3播放器響應(yīng)進(jìn)入各功能狀態(tài)時,蜂鳴器蜂鳴。 4.流水燈表示MP3播放器當(dāng)前所處的功能狀態(tài)。 5.蜂鳴器蜂鳴聲音的大小代表音量的大小,音量控制狀態(tài)和音樂下載狀態(tài)可分別與其他3種狀態(tài)同事存在。 6.數(shù)碼管數(shù)字大小表示執(zhí)行MP3各功能狀態(tài)的時間。第2章 課程設(shè)計的意義 1.熟悉ARM & ADS V1.2 的環(huán)境。 2.理

4、解LPC2131芯片引腳功能的選。 3.理解GPIO的使用設(shè)置、輸入驅(qū)動方法。 4.理解PWM的通信原理,學(xué)習(xí)ARM PWM資源的通信編程。 5.學(xué)習(xí)在LPC2131上移植ucos系統(tǒng)。第3章 需求分析采用STM32系列微控制器, 結(jié)合解碼芯片VS1003、SD卡、LCD等外圍設(shè)備設(shè)計并實現(xiàn)了MP3播放器。其主要功能有:播放VS1003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過觸摸屏實現(xiàn)按鍵功能,控制播放上一首/下一首、音量增減等;通過LCD顯示歌曲名字和播放狀態(tài);本系統(tǒng)還實現(xiàn)了讀卡器功能,PC機(jī)可通過USB接口直接對開發(fā)板上的SD卡進(jìn)行讀寫操作, 以方便拷貝音頻文件

5、。MP3播放過程是STM32通過SPI1接口將數(shù)據(jù)從SD卡中取出,然后通過SPI2接口送至解碼芯VS1003解碼播放。這里解碼模塊單獨(dú)使用一個SPI接口,以減小干擾和噪聲、提高音質(zhì)。第4章 概要設(shè)計本系統(tǒng)在硬件上分為6個模塊: 微控制器STM32F103、解碼模塊VS1003、存儲模塊SD卡、觸摸屏、USB接口和顯示屏LCD。系統(tǒng)硬件框架如圖5所示。 系統(tǒng)硬件框架圖4.1 存儲模塊設(shè)計SD卡在現(xiàn)在的日常生活與工作中使用非常廣泛,時下已經(jīng)成為最為通用的數(shù)據(jù)存儲卡。在諸如MP3、數(shù)碼相機(jī)等設(shè)備上也都采用SD卡作為其存儲設(shè)備。SD卡之所以得到如此廣泛的使用,是因為它價格低廉、存儲容量大、使用方便、通

6、用性與安全性強(qiáng)等優(yōu)點(diǎn)。SD卡支持兩種總線方式: SD方式與SPI方式。其中SD方式采用6線制,而SPI方式采用4線制,采用單片機(jī)對SD卡進(jìn)行讀寫時一般都采用SPI模式??捎貌煌某跏蓟绞绞筍D卡工作于SD方式或SPI方式。在本設(shè)計中,音頻數(shù)據(jù)MP3文件是以SD卡為載體。所以在電路設(shè)計中必須含有讀取SD卡模塊。該系統(tǒng)使用STM32內(nèi)部接口SPI1與SD卡進(jìn)行通信,下面介紹其引腳連接情況。PE3:低電平有效,連接到SD卡的片選引腳CD/DAT3。SPI在和SD卡進(jìn)行通信時,需要將PE3拉低才能對SD卡進(jìn)行操作。PA7:映射為STM32內(nèi)部接口SPI1的主輸出從輸入(MOSI)信號線。這里STM3

7、2是主設(shè)備,SD卡是設(shè)備。數(shù)據(jù)流的傳輸方向是從STM32傳輸給SD卡。該信號線用于傳輸一些控制命令來完成SD卡的操作,如讀、寫等。PA5: 已連接到STM32內(nèi)部接口SPI1的時鐘(SCL K)信號線??稍O(shè)置SPI的時鐘頻率來調(diào)整讀取SD卡數(shù)據(jù)的快慢。PA6 :已連接到STM32內(nèi)部接口SPI1的主輸入從輸出(MISO)信號線。數(shù)據(jù)的傳輸方向是從SD卡傳輸給STM32 ,主要返回SD卡的一些狀態(tài)、內(nèi)部寄存器值等。PC12 :用于檢測SD卡是否完全插入。當(dāng)SD卡完全插入時,PC12為低電平,否則為高電平。4.2 音頻解碼模塊設(shè)計音頻解碼模塊完成MCU從SD卡里讀取的數(shù)字MP3音頻數(shù)據(jù)流進(jìn)行解析、

8、并轉(zhuǎn)化成模擬信號進(jìn)行輸出。在這里,系統(tǒng)使用VS1003音頻解碼芯片來實現(xiàn)音樂數(shù)據(jù)流的解析。VS1003是由芬蘭VLSI公司出品的一款單芯片的MP3/WMA音頻解碼芯片,其擁有一個高性能低功耗的DSP處理器核VS_DSP, 5K的指令ROM, 0.5K的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口, 4個通用I/O口,一個UART口,同時片內(nèi)帶有一個可變采樣速率的ADC、一個立體聲DAC以及音頻耳機(jī)放大器接口。VS1003與核心控制器MSP430F149的數(shù)據(jù)通信是通過SPI總線方式進(jìn)行的。VS1003主要通過串行命令接口(SCI)和串行數(shù)據(jù)接口(SDI)來接收MSP430F149控制器的控制命令和MP

9、3的數(shù)據(jù)。通過XCS、XDCS引腳的置高、置低來確認(rèn)是哪一個接口處于傳送狀態(tài)。對于VS1003芯片的功能控制,如初始化、軟復(fù)位、暫停、音量控制、播放時間的讀取等,均是通過SCI寫入到特定寄存器的內(nèi)容來實現(xiàn)的。兩條SCI指令之間要通過DREQ引腳信號判斷上次處理是否完成。該系統(tǒng)使用STM32 內(nèi)部接口SPI2 與VS1003 進(jìn)行通信,下面介紹其引腳連接情況。PA3 :VS1003 的中斷請求引腳。當(dāng)VS1003 內(nèi)部數(shù)據(jù)已處理完畢,需要新的數(shù)據(jù)時,將DREQ 拉高。STM32根據(jù)這個信號來給VS1003 發(fā)送新的數(shù)據(jù)流。PB13 : 已連接到STM32 內(nèi)部接口SPI2 的時鐘(SCL K)

10、信號線。PB14 :已連接到STM32 內(nèi)部接口SPI2 的主輸入從輸出(MISO) 信號線。這里STM32 是主設(shè)備,VS1003 是從設(shè)備。數(shù)據(jù)流的傳輸方向是從VS1003 傳輸給STM32 。主要用于讀取VS1003 的一些狀態(tài)和內(nèi)部寄存器值,比如寄存器測試返回的內(nèi)部寄存器的值。PB15 :已連接到STM32 內(nèi)部接口SPI2 的主輸出從輸入(MOSI) 信號線。這里STM32 是主設(shè)備,VS1003 是從設(shè)備。數(shù)據(jù)流方向是從STM32 傳輸給VS1003 ,主要傳輸給VS1003 一些控制命令、MP3/ WMA 數(shù)據(jù)流等。PA1 :低電平有效,如果拉低該引腳,那么通過SPI 傳輸?shù)氖强?/p>

11、制信號??刂菩盘柊ㄗx寫VS1003 的內(nèi)部寄存器、對VS1003 進(jìn)行初始化、設(shè)置左右聲道音量等。PA2 :低電平有效,如果拉低該引腳,那么通過SPI 傳輸?shù)氖菙?shù)據(jù)信號。比如在向VS1003 傳輸MP3/ WMA 的數(shù)據(jù)流時需要拉低該引腳。PA0 :低電平有效,拉低該引腳則硬件復(fù)位VS1003 。4.3 液晶顯示模塊設(shè)計 LCD3310芯片是一個48行84列的液晶顯示器主要模塊。其內(nèi)存帶有低功耗PCD8544的CMOSLCD控制驅(qū)動器,串行輸入速度最高可達(dá)4. 0Mbits/S,而且所有必須的顯示功能集成在一塊芯片上,包括LCD電壓及偏置電壓發(fā)生器,所以LCD3310是一款低功耗的液晶顯示器

12、。為了讓LCD3310液晶能夠顯示4行12* 12的漢字,系統(tǒng)開辟了一個6* 84字節(jié)的緩沖區(qū),要寫液晶時,就不用直接寫LCD3310的靜態(tài)DDRAM了,可以先寫系統(tǒng)為它開辟的數(shù)據(jù)緩沖區(qū),最后再刷新修改的部分就可以顯示出要顯示的內(nèi)容,LCD3310與主控制器是SPI接口方式。第5章 相關(guān)技術(shù)說明5.1 VS1003 的初始化如其它芯片一樣,初始化對于VS1003 來說同樣是極其重要的。初始化的過程大致是這樣的: 1.硬件復(fù)位:接XRESET 拉低。 2.延時,將XDCS、XCS、XRESET 置高。 3.向MODE 中寫入0X0804。 4.等待DREQ 為高。 5.設(shè)置VS1003 的時鐘:

13、SCI_CLOCKF=0x9800,3 倍頻。 6.設(shè)置VS1003 的采樣率:SPI_AUDATA=0xbb81,采樣率48k,立體聲。 7.設(shè)置重音:SPI_BASS=0x0055。 8.設(shè)置音量:SCI_VOL=0x2020。9. 這一步被很多人忽視,向VS1003 發(fā)送4 個字節(jié)的無效數(shù)據(jù),用以啟動SPI發(fā)送。實現(xiàn)代碼如下:void Mp3Reset(void)XRESET=0delay(100)XDCS=XCS=XRESET=1wr_commad(0x00,0x08,0x04)delay(10)DREQ=1while(!DREQ)wr_commad(0x03,0x98,0x00)de

14、lay(10)wr_commad(0x05,0xbb,0x81)delay(10)wr_commad(0x02,0x00,0x55)delay(10)wr_commad(0x0b,VOL_VALUE,VOL_VALUE) / 音量delay(10)spi_write(0)spi_write(0)spi_write(0)spi_write(0)在進(jìn)行了正確的初始化后,還要著重檢查一下VS1003 的模擬部分是否正常將VS1003 的所有DVDD、AVDD 管腳以及XRESET、TEST(第32 個引腳)接+3.0V,然后測量RCAP 引腳,它應(yīng)該是1.3V 左右,否則芯片模擬部分未正常工作。5.

15、2 MP3 文件數(shù)據(jù)寫入 以上的對VS1003 的初始化與測試都通過后,現(xiàn)在就可以給它發(fā)送MP3 文件了。但是這時就又出現(xiàn)一個新的問題。MP3 文件通常是比較大的,小的也要1M2M,如果使單片機(jī)內(nèi)部的Flash Rom 的話,容量是遠(yuǎn)遠(yuǎn)不夠的。需要有一種大容量的存儲器來作為MP3 文件的載體。在筆者的調(diào)試系統(tǒng)中采用了SD 卡(256M)、U 盤(1G)與移動硬盤(40G)來存儲MP3 文件。關(guān)于SD 卡與U盤的讀寫方法可以參看相關(guān)章節(jié)。這些大容量的存儲設(shè)備通常也是按照扇區(qū)來進(jìn)行讀寫的,但在實際的應(yīng)用中更多的是結(jié)合FAT32 等文件系統(tǒng)來進(jìn)行文件讀寫。文件系統(tǒng)部分可以參照FAT32 的存儲機(jī)制及

16、其在單片機(jī)中的實現(xiàn)。這里拋開存儲介質(zhì)不談,只談數(shù)據(jù)的寫入方法。其實寫入數(shù)據(jù)的方法十分簡單。主要就是看DREQ 信號,在VS1003 的FIFO 能夠接受數(shù)據(jù)的時候輸出高電平。每次可以寫入32 個字節(jié)的數(shù)據(jù)。而DREQ 變低時,單片機(jī)就要停止數(shù)據(jù)的發(fā)送。具體的寫數(shù)據(jù)的方法如下: 1.將XDCS 拉低。 2.等待DREQ 為高。 3.通過SPI 寫入數(shù)據(jù)。 4.在文件沒有結(jié)束前不斷重復(fù)2 與3 操作。 5.在所有的數(shù)據(jù)都發(fā)送完畢后,最后發(fā)送2048 個無效字節(jié),用以清除VS1003 的數(shù)據(jù)緩沖區(qū)。6.將XDCS 置高。實現(xiàn)代碼如下:XDCS=0for(j=621j<2783j+)for(k=

17、0k<8k+)MMC_get_data_LBA(j,64,get)for(i=0i<64i+)DREQ=1while(!DREQ)spi_write(geti)/delay(60000)for(temp=0temp<2048temp+)DREQ=1while(!DREQ)spi_write(0)XDCS=1第6章 詳細(xì)設(shè)計6.1 MP3播放器軟件系統(tǒng)流程原理系統(tǒng)啟動后,先初始化硬件模塊。由MCU通過FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT表及根目錄所在的啟始扇區(qū)等。通過獲得這些信息后,就可以找出SD卡是否有我們可以播放的音樂文件。若有音樂文件,

18、微處理器將通過SPI總線方式讀出該文件的音頻信息,并將歌曲的碼流信息送入到VS1003芯片中,通過VS1003芯片解碼以及其內(nèi)含的高質(zhì)量的立體DAC和耳機(jī)驅(qū)動電路,實現(xiàn)MP3歌曲的播放功能。在觸摸鍵的控制下,通過LCD3310中菜單選項的選擇,實現(xiàn)對歌曲選擇及音量控制等功能;在播放的同時, LCD3310上顯示的信息除歌曲名稱信息外,還包括進(jìn)度和音量等信息。由于SPI1 讀取SD 卡文件的速度遠(yuǎn)超過VS1003 播放數(shù)據(jù)流的速度,因此VS1003 在播放來自SPI2 的數(shù)據(jù)流期間,SPI1 能從SD 卡中讀取下次播放所需的數(shù)據(jù),不會產(chǎn)生聲音不連續(xù)的情況。由于使用了2 個SPI 接口,相互之間無

19、干擾,且提高了文件系統(tǒng)的效率,因此本系統(tǒng)能得到非常高品質(zhì)的音樂。6.2 SD模塊SD 模塊主要提供SD 卡驅(qū)動以及對FAT 文件系統(tǒng)操作的函數(shù),F(xiàn)AT 文件系統(tǒng)支持長文件名。該模塊主要含有2 個文件msd.c 和fat16.c 。下面分別介紹其主要函數(shù)的功能。(1) msd.c該文件用于提供SD 卡的驅(qū)動,主要包括以下函數(shù)。SPI_ Config : 配置與SD 卡相連接的SPI1 及相關(guān)GPIO。MSD_Init :初始化SD 卡通信。Get_Medium_Characteristics :獲取SD 卡的容量和塊大小等相關(guān)信息。MSD_GoIdleState :令SD 卡處于空閑態(tài)。MSD_

20、SendCmd :向SD 卡發(fā)送命令。MSD_GetResponse :從SD 卡獲取響應(yīng)。MSD_GetStatus :獲取SD 卡的狀態(tài)。MSD_WriteBlock :向SD 卡寫入1 個塊的數(shù)據(jù)。MSD_ReadBlock :從SD 卡讀取1 個塊的數(shù)據(jù)。以下是函數(shù)MSD_ReadBlock 的實現(xiàn): u8 MSD_ ReadBlock ( u8 * pBuffer , u32 ReadAddr , u16 NumByte ToRead) u32 i = 0 ;u8 rvalue = MSD_RESPONSE_FAILURE;MSD_CS_LOW() ; / / 拉低片選信號,選中SD

21、 卡MSD_SendCmd (MSD_READ_ SIN GL E_BLOCK, ReadAddr ,0xFF) ; / / 發(fā)送讀取塊命令/ / 檢測SD 卡是否有返回信息,若是則返回0x00if ( !MSD_GetResponse (MSD_RESPONSE_NO_ERROR) ) if ( !MSD_ GetResponse (MSD_ START_DA TA_ SIN GL E_BLOCK_READ) ) / / 等待數(shù)據(jù)令牌,標(biāo)志數(shù)據(jù)傳輸開始for (i = 0 ; i < NumByte ToRead ; i + + ) / / 讀取數(shù)據(jù)* pBuffer = MSD_Re

22、adByte() ; / / 緩存收到的數(shù)據(jù)pBuffer + + ; / / 緩存指針后移rvalue = MSD_RESPONSE_NO_ERROR ;/ / 修改rvalue 的值為成功MSD_CS_HIGH() ; / / 拉高片選信號,禁用SD 卡MSD_WriteByte(DUMMY) ; / / 寫無效字節(jié),傳輸結(jié)束return rvalue ; / / 返回(2)fat16. c該文件提供對FAT16 文件系統(tǒng)的支持,主要包含以下函數(shù)。ReadMBR :讀取MBR 數(shù)據(jù)結(jié)構(gòu)。ReadBPB :讀取BPB 數(shù)據(jù)結(jié)構(gòu)。ReadFAT :讀取文件分配表指定項。ReadBlock :讀

23、取SD 卡的一個扇區(qū)。FAT_Init :獲取FAT16 文件系統(tǒng)的基本信息。DirStartSec :獲取根目錄的開始扇區(qū)號。DataStartSec :獲取數(shù)據(jù)區(qū)的開始扇區(qū)號。ClusConvLBA :獲取一個簇的開始扇區(qū)號。LBAConvClus :轉(zhuǎn)換扇區(qū)號與簇號之間的關(guān)系。Get FileName :獲取指定文件的首扇區(qū)號。ListDate Time :列出文件或子目錄創(chuàng)建的時間日期。SearchFoler :在指定范圍內(nèi)查找文件或子目錄。ListDir :列出指定范圍內(nèi)的文件或子目錄及相關(guān)信息。FAT_FileOpen :打開指定文件。FAT_FileRead :讀取文件數(shù)據(jù)。6.

24、3 VS1003模塊VS1003 模塊主要提供對解碼芯片VS1003 的驅(qū)動,為應(yīng)用層播放音頻數(shù)據(jù)、控制音量聲道等提供基本接口。該模塊主要含文件vs1003. c 。其主要函數(shù)的功能如下。vs1003. c 文件主要提供VS1003 芯片的驅(qū)動,包含以下幾個主要函數(shù)。VS1003_Config :配置STM32 與VS1003 連接的相關(guān)引腳,包括SPI2 、PA0 、PA1 、PA2 、PA3 。SPIGetChar :通過SPI 從VS1003 讀取1 個字節(jié)。SPIPutChar :通過SPI 向VS1003 寫入1 個字節(jié)。如果是MP3/ WMA 數(shù)據(jù)流,則VS1003 將開始解碼并播

25、放。Mp3ReadRegister :讀取VS1003 寄存器的值。Mp3WriteRegister :寫VS1003 寄存器。Mp3Reset :VS1003 復(fù)位,包括軟件復(fù)位和硬件復(fù)位。Mp3SoftReset :VS1003 軟件復(fù)位,設(shè)置時鐘、采樣率、重音、音量、立體聲等參數(shù),一般在2 首樂曲之間需要一次軟件復(fù)位。VsSine Test : 播放正弦聲波, 用于測試VS1003 和STM32 的連接是否完好。以下是VS1003音頻解碼芯片初始化的部分代碼:void init_vs1003()vs1003_dir|=0X2C;VS1003_xResetDIR |=BIT5;printf

26、s(“n-hard_reset-n”);hard_reset; /硬件復(fù)位delay_ms(10);sotf_send_bit2(0XFF);hard_set;sotf_send_bit2(0XFF);Wait_Vs1003_DREQ();printfs(“n-soft_reset_vs1003-n”);soft_reset_vs1003();printfs(“n -vs1003initok-n”);6.4 圖形人機(jī)交互模塊(觸摸屏支持庫的安裝)網(wǎng)絡(luò)MP3播放器搭載了一塊觸摸屏作為系統(tǒng)硬件的控制模塊,有了觸摸屏的支持,用戶就可以通過點(diǎn)擊圖形人機(jī)交互界面中的窗體控件對播放器進(jìn)行管理。在設(shè)計播放器的圖形人機(jī)交互界面之前,還需要一層應(yīng)用程序庫封裝系統(tǒng)對底層觸摸屏驅(qū)動的操作,將觸摸控制以一個統(tǒng)一的接口提供給上層GUI應(yīng)用程序使用。該設(shè)計使用了tslib應(yīng)用程序庫來封裝圖形用戶界面對底層觸摸屏的操作。tslib是一個開源的觸摸屏支持庫,它

溫馨提示

  • 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

提交評論