嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐5_第1頁(yè)
嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐5_第2頁(yè)
嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐5_第3頁(yè)
嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐5_第4頁(yè)
嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐5_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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、作者盧有亮 圖書(shū)PPT和全部代碼下載/15441嵌入式實(shí)時(shí)操作系統(tǒng)C/OS原理與實(shí)踐教材 :嵌入式實(shí)時(shí)操作系統(tǒng)C/OS原理與實(shí)踐電子工業(yè)作者:盧有亮電子科技大學(xué)能源科學(xué)與工程學(xué)院作者盧有亮 圖書(shū)PPT和全部代碼下載/15441PPT和全部代碼下載 /15441說(shuō)明面世來(lái)受到歡迎,除不能免費(fèi)的書(shū)之外本書(shū)籍2012年2月在電子工業(yè)人提供了1.教學(xué)PPT2.15個(gè)學(xué)時(shí)實(shí)驗(yàn)教學(xué)PPT3.示例代碼(含UCOSV2.91

2、全部源碼,用于實(shí)驗(yàn)和源碼學(xué)習(xí),可在 VC下單步運(yùn)行,直觀方便)4.29個(gè)視頻5.交流微群(人數(shù)無(wú)限制)這些全部免費(fèi),最新的以上內(nèi)容下載地址不清楚可以到本人博客留言!代碼的下載地址也在博客提供(因?yàn)榻?jīng)常會(huì)更新會(huì)變化)!配套代碼請(qǐng)查看本人博客(另外微博昵稱 90):/u/2630123921在 網(wǎng) 上 觀 看 視 頻 ( 土 豆 、 優(yōu) 酷 ) /playlist/id/15295771/ /playlist_show/id_17137380.html新浪交流微群:PPT和全部代

3、碼下載 /15441第5章 消息管理5.1 消息郵箱5.1.1 建立消息郵箱5.1.2 等消息5.1.3 發(fā)消息5.1.4 刪除消息郵箱5.1.5 放棄郵箱等待5.1.6 無(wú)等待請(qǐng)求消息5.1.7 查詢郵箱狀態(tài)5.1.8 消息郵箱的例子5.2 消息隊(duì)列5.2.1 消息隊(duì)列數(shù)據(jù)結(jié)構(gòu)5.2.2 初始化消息隊(duì)列5.2.3 建立消息隊(duì)列5.2.4 發(fā)消息到消息隊(duì)列5.2.5 等待消息隊(duì)列中的消息5.2.6 刪除消息隊(duì)列5.2.7 取得消息隊(duì)列的狀態(tài)5.2.8 消息隊(duì)列應(yīng)用舉例習(xí)題新浪交流微群:PPT和全部代碼下載 http:/www.broadvie

4、/15441在信號(hào)量、互斥信號(hào)量和標(biāo)志組的內(nèi)容結(jié)束后,讀者對(duì)之間如何同步,如何根據(jù)不同需要設(shè)計(jì)同步程序,應(yīng)該有了深入的理解和提高。本章的消息管理中包括消息郵箱和消息隊(duì)列兩方面的內(nèi)容,適用于任務(wù)之間的信息交流和同步。從原理上講,消息管理也應(yīng)該屬于疇 。管理的范新浪交流微群:PPT5和.1全部消代碼息下郵載 h箱ttp://15441消息郵箱是C/OS-II中的另一種通信機(jī)制,可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送一個(gè)消息。傳遞這個(gè)消息的媒體是一個(gè)指針型變量,該指針指向一個(gè)包含了“消息”的某種數(shù)據(jù)結(jié)構(gòu)。新浪交流微群:PPT在系統(tǒng)初始

5、化之后,并不存在一個(gè)消息郵箱。這時(shí)操數(shù)據(jù)結(jié)構(gòu)控制塊ECB為全空,所有的控表中排隊(duì)。消息郵箱的建立函數(shù)OSMboxCreate將個(gè)ECB,使其具備消息郵箱的屬性。表5.2創(chuàng)建信號(hào)量函數(shù)OSMboxCreate解析1.檢查是否這中斷服務(wù)程序中創(chuàng)建消息郵箱。同不允許在中斷服務(wù)程序中創(chuàng)建信號(hào)量一樣,操作系許在中斷服務(wù)程序中創(chuàng)建消息郵箱。2.檢查是否有空閑的控制塊。將OSEventFreeList賦值給pevent,如果pevent為空控制塊,函數(shù)返回。3.在控制塊空閑鏈表中取下表頭。因?yàn)閜event現(xiàn)在已經(jīng)是用于郵箱的控制塊,讀者一個(gè)郵箱。那么,需要執(zhí)行的操作顯然就是在 將他刪除,這時(shí)候OSEvent

6、FreeList應(yīng)該指向第二4.對(duì)控制塊賦值和全部代碼下載 /154415.1.1 建立消息郵箱作系統(tǒng)中的管理制塊都在ECB空閑鏈?zhǔn)褂靡粋€(gè)并配置一統(tǒng)C/OS-II同樣不允 指針,表示沒(méi)有空閑的可以直接把他理解為控制塊空閑鏈表中個(gè)ECB。假設(shè)信號(hào)量值為5,則賦值后的ECB應(yīng)該如圖5-1所示5.返回ECB地址。新浪交流微群:PPT/15441和全部代碼下載新浪交流微群:PPT新浪交流表5.3等待消息郵箱函數(shù)OSMboxPend解和.1.2全部等消息代碼下載 http:/www.broadview

7、./1等消息也稱為請(qǐng)求消息。含義是當(dāng)消息存在的時(shí)候在的時(shí)候就放棄對(duì)CPU的占有,直到有消息的時(shí)候的操作離不開(kāi)消息,這時(shí)任務(wù)就不該死死占著CPU就應(yīng)該去休息,而當(dāng)消息到來(lái)的時(shí)候系統(tǒng)會(huì)將消息得消息后繼續(xù)運(yùn)行。析54415開(kāi)始參數(shù)檢查是否通過(guò)是pmsg是否否不為空否獲取消息,當(dāng)消息不存才被喚醒。當(dāng)任務(wù)后續(xù)不讓其他的任務(wù)運(yùn)行,perr中填寫(xiě)對(duì)應(yīng)的出錯(cuò)信息喚醒回就緒態(tài),任務(wù)獲是是 這里任務(wù)被執(zhí)行一次任務(wù)調(diào)度了CPU! 進(jìn)入阻塞態(tài)!等待標(biāo)志是否有效 這里任務(wù) 又一次被調(diào)度 了!從阻塞態(tài)回到就緒態(tài)又被調(diào)度是否是否是等待超時(shí)是否返回值設(shè)置為OS_NO_ERR任務(wù)可使用資源清除任務(wù)塊相關(guān)等待標(biāo)志返回

8、值設(shè)置為OS_ERR_PEND_ABORT任務(wù)仍不能使用資源返回值設(shè)置為OS_TIMEOUT任務(wù)仍不能使用資源微群:返回調(diào)用OS_EventTaskRemove 清除任務(wù)塊相關(guān)等待標(biāo)志和任務(wù)塊OSTCBStat如果是資源滿足而結(jié)束等待,只需要設(shè)置任務(wù)塊的ECB 指針為空調(diào)用OS_EventTaskWait終止當(dāng)前任務(wù),ECB表中添加當(dāng)前任務(wù)存儲(chǔ)超時(shí)時(shí)間到OSTCBDly 及等待狀況OSTCBStatPend置位OSTCBStat中等待消息標(biāo)志將郵箱中的消息地址送pmsgPPT和全部代碼下載 /154415.1.3 發(fā)消息當(dāng)一個(gè)任務(wù)因?yàn)榈却?/p>

9、而被阻塞的時(shí)候,只有當(dāng)其他任務(wù)被阻塞的任務(wù)才能被恢復(fù)到就緒態(tài),從而獲得消息后繼續(xù)運(yùn)數(shù)在前一節(jié)分析過(guò)了,發(fā)消息的函數(shù)為OSMboxPost,參數(shù)ECB的指針,以及消息的地址。表5.4發(fā)消息函數(shù)OSMboxPost解析開(kāi)始參數(shù)檢查是否通過(guò)是是否有任務(wù)等待是該信號(hào)量發(fā)出了消息, 行。阻塞的函是消息類型的否返回值進(jìn)行相應(yīng)設(shè)置,提示出錯(cuò)否調(diào) 用 OS_EventTaskRdy 使等待該消息的最高優(yōu)先級(jí)任務(wù)就緒郵箱是否是滿的是否將消息放入郵箱返回新浪交流微群:返回值設(shè)置為OS_ERR_MBOX_FULL返回值設(shè)置為OS_NO_ERR返回值設(shè)置為或OS_NO_ERR執(zhí)行一次任務(wù)調(diào)度PPT和全部代碼下載 ht

10、tp://15.1.4 刪除消息郵箱當(dāng)消息郵箱不再使用了,就應(yīng)該盡快歸還給系統(tǒng), 空閑鏈表以備它用。消息郵箱的刪除函數(shù)是OSMbo 方方面面,因?yàn)榭赡苡腥蝿?wù)正在等待這個(gè)郵箱中的表5.5刪除消息郵箱的函數(shù)OSMboxDel解析新浪交開(kāi)始參數(shù)檢查是是否通過(guò)即將消息占用的ECB歸還給ECB xDel。刪除一個(gè)消息也要涉及 消息。OS_DEL_ALWAYS根據(jù)opt值進(jìn)行分支轉(zhuǎn)移OS_DEL_NO_PEND否無(wú)任務(wù)等待該郵箱?其他值是設(shè)置該ECB屬性為否未用空閑ECB鏈表表頭插入該ECB流微群:返回5441若有任務(wù)等待該信號(hào)量執(zhí)行一次任務(wù)調(diào)度設(shè)置該ECB屬性為未

11、用空閑ECB鏈表表頭插入該ECB使所有的等待該信號(hào)量的任務(wù)就緒若有任務(wù)等待該郵箱Tasks_waiting=TRUE 否則為FALSEPPT和全部代碼下載 /154415.1.5放棄郵箱等待同放棄對(duì)信號(hào)量的等待類似,放棄等待郵箱也絕對(duì)不會(huì)是放棄本任務(wù)對(duì)郵箱的等待。放棄等待郵箱函數(shù)將放棄的是所有等待某郵箱的任務(wù)對(duì)該郵箱的等待或等待某郵箱的優(yōu)先級(jí)最高的任務(wù)對(duì)郵箱的等待。表5.6放棄等待郵箱函數(shù)OSMboxPendAbort解析流程如下: 1.檢查控制塊指針是否有效及控制塊類型是否有效。2. 如果pevent-OSEventGrp為0說(shuō)明沒(méi)有任務(wù)等

12、待消息郵箱,取消等待的任務(wù)數(shù)是0,返回0。3. 否則根據(jù)參數(shù)opt(選項(xiàng))進(jìn)行分支轉(zhuǎn)移,如為OS_PEND_OPT_BROADCAST,使用while語(yǔ)句循環(huán)地將等待該郵箱的每個(gè)任務(wù)用OS_EventTaskRdy來(lái)取消等待并使其就緒(除非任務(wù)還被掛起);如果為其他值則只將最高優(yōu)先級(jí)的任務(wù)取消等待并就緒之。4. 返回取消等待信號(hào)量的任務(wù)數(shù)。新浪交流微群:PPT和全部代碼下載 /154415.1.6 無(wú)等待請(qǐng)求消息新浪交流微群:在中斷服務(wù)程序和有些用戶任務(wù)中,需要無(wú)等待的請(qǐng)求消息郵箱。也就是說(shuō),到郵箱中取郵件,如果有郵件就獲得郵件,如果沒(méi)有并不

13、阻塞自己,而是繼續(xù)執(zhí)行其他代碼。OSMboxAccept就是無(wú)等待的請(qǐng)求消息郵箱函數(shù),參數(shù)是請(qǐng)求的消息郵箱的ECB指針。該函數(shù)的返回值是指向郵箱的指針,如果沒(méi)有取得消息,那么就返回空指針。表5.7無(wú)等待地請(qǐng)求消息郵箱函數(shù)OSMboxAccept解析首先參數(shù)檢查ECB是否有效,如果有效,將消息郵箱中郵件的地址OSEventPtr賦值給pmsg,然后清郵箱內(nèi)容,返回獲得的郵件的地址pmsg。這樣,如果郵箱中有郵件,那么返回郵件的地址,如果沒(méi)有,返回值就是空地址。PPT和全部代碼下載 /154415.1.7查詢郵箱狀態(tài)新浪交流微群:消息郵箱狀態(tài)查詢

14、函數(shù)OSMboxQuery的參數(shù)是ECB地址和一個(gè)指向OS_MBOX_DATA類型的地址。ECB地址指向郵箱,OS_MBOX_DATA類型的地址指向返回結(jié)果的一個(gè)S_MBOX_DATA類型的對(duì)象。表5.9查詢消息郵箱狀態(tài)函數(shù)OSMboxQuery解析PPT5.1.8 消息郵箱的例子假設(shè)有任務(wù)TaskMessageSen和TaskMessageRec, TaskMessageSen在 片1創(chuàng)建一個(gè)郵箱,如果郵箱中已沒(méi)有郵件,每秒向郵箱發(fā)送一個(gè)消息,消息內(nèi)容為從0 開(kāi)始的計(jì)數(shù)值,該計(jì)數(shù)值每秒加1。任務(wù)TaskMessageRec從時(shí)間1開(kāi)始,做的事情就是查看郵箱,然后把郵件打印出來(lái)?,F(xiàn)在我們采用郵

15、件管理完成這兩個(gè)任務(wù)的設(shè)計(jì)。新浪交流微群:和全部代碼下載 /15441PPT新浪交流微群:和全部代碼下載 /154415.2 消息隊(duì)列消息郵箱中只能存放一則消息,太少了,能不能像電子郵件一樣,管理多條消息呢?C/OS為實(shí)現(xiàn)這一目的,設(shè)計(jì)了消息隊(duì)列管理。使用消息隊(duì)列管理,就允許使用可以容納多條信息的大郵箱,按照先進(jìn)先出(FIFO)的原則,發(fā)送和接收郵件。需要注意的是,這樣的郵箱不是操作系統(tǒng)提供的,而是要由用戶任務(wù)來(lái)提供。操作系統(tǒng)提供的是對(duì)其進(jìn)行管理的程序。另外,郵箱中的內(nèi)容仍然是郵件的地址。消

16、息隊(duì)列的代碼單獨(dú)存放在os_q.c中PPT和全部代碼下載 /154415.2.1 消息隊(duì)列數(shù)據(jù)結(jié)構(gòu)1消息隊(duì)列及其控制塊typedef struct os_q struct os_q*OSQPtr;/* 隊(duì)列控制塊QCB*/*在空閑QCB鏈表中,指示下一個(gè)QCB*/*隊(duì)列數(shù)據(jù)的首地址*/*隊(duì)列數(shù)據(jù)的末地址*/*指示下次插入消息的位置 */* 指示下次提取消息的位置*/*隊(duì)列的最大容量*/*隊(duì)列中當(dāng)前的消息量*/void void void void*OSQStart;*OSQEnd;*OSQIn;*OSQOut;INT16U INT16U OS

17、_Q;OSQSize; OSQEntries;2消息控制塊實(shí)體OS_QOSQTblOS_MAX_QS;3空閑消息隊(duì)列鏈表消息控制塊QCB中OSQWaitList用來(lái)指示空閑消息控制塊QCB鏈表中的下一個(gè)消息控制塊QCB。新浪交流微群:PPT和全部代碼下載 /15441新浪交流微群:PPT和全部代碼下載 /154415.2.2 初始化消息隊(duì)列消息隊(duì)列初始化函數(shù)在操作系統(tǒng)初始化時(shí)被調(diào)用,主要用于初始化消息隊(duì)列使用的數(shù)據(jù)結(jié)構(gòu)。消息隊(duì)列初始化函數(shù)的名稱為OS_QInit表5.13消息隊(duì)列初始化函數(shù)O

18、S_QInit解析1. 將所有QCB全部清為全0。2. 使用for循環(huán)將除最后一個(gè)消息控制塊OSQTblOS_MAX_QS - 1之外的所有消息控制塊初始化,構(gòu)建了單向的消息隊(duì)列空閑鏈表。3. 初始化最后一個(gè)QCB,將消息隊(duì)列空閑鏈表完善。新浪交流微群:PPT5.2.和3 建全立部消代息碼隊(duì)下列載 /15441創(chuàng)建消息隊(duì)列就是將從ECB空閑鏈表中取下一個(gè)控制塊ECB來(lái),將其用于消息隊(duì)列管理。并從QCB空閑鏈表的表頭取下一個(gè)消息控制塊QCB,將其各種屬性進(jìn)行設(shè)置,用于指示消息的位置以及提取和插入消息的位置。創(chuàng)建消息隊(duì)列的函數(shù)名稱為OSQCrea

19、te。表5.14消息隊(duì)列創(chuàng)建函數(shù)OSQCreate分析1. 判斷是否在中斷服務(wù)程序中調(diào)用本函數(shù),如果是就返回。2. 取得消息隊(duì)列的鏈表首地址送pevent。3. 判斷pevent是否為空指針,如果是則說(shuō)明是系統(tǒng)已經(jīng)沒(méi)有空閑的ECB可供使用, 填寫(xiě)錯(cuò)誤信息,返回空指針。4. 從空閑ECB鏈表取下表頭。5. 空閑QCB鏈表首地址送pq。6. 如果沒(méi)有有效的空閑QCB鏈表,恢復(fù)空閑ECB鏈表,返回空ECB指針。7. 在空閑QCB鏈表中取一個(gè)pq指向的QCB,對(duì)其進(jìn)行初始化。設(shè)置OSQStart為消息指針數(shù)組的首地址start。OSQEnd值為&startsize即消息指針數(shù)組(消息隊(duì)列)中最后一個(gè)指

20、針后面的一個(gè)地址。OSQIn和OSQOut也設(shè)置為start。OSQSize的值為size。OSQEntries為0表示該隊(duì)列中還沒(méi)有消息。8. 接下來(lái)對(duì)pevent指向的ECB進(jìn)行初始化。OSEventType為OS_EVENT_TYPE_Q表示用于消息隊(duì)列管理。OSEventCnt在這里沒(méi)有用,設(shè)置為0。OSEventPtr指向QCB,即設(shè)置為pq。調(diào)用OS_EventWaitListInit初始化ECB中的等待表和等待組。9.返回ECB指針。新浪交流微群:PPT和全部代碼下載 /154415.2.4發(fā)消息到消息隊(duì)列發(fā)消息到消息隊(duì)列的函數(shù)

21、名稱為OSQPost。參數(shù)是和消息的地址pmsg??刂茐KECB的地址pevent表5.15發(fā)消息到消息對(duì)列函數(shù)OSQPost分析1. 首先進(jìn)行參數(shù)檢查,如果參數(shù)檢查失敗則返回。2. 如果有任務(wù)等待消息隊(duì)列中的消息,那么消息隊(duì)列現(xiàn)在必然是空的。不需要將消息存入隊(duì)列,而直接將消息給在等待的優(yōu)先級(jí)最高的消息,并將其就緒。執(zhí)行一次任務(wù)調(diào)度然后返回。3. 如果沒(méi)有任務(wù)等待消息隊(duì)列中的消息,那么就需要將該消息加入消息隊(duì)列。如果消息隊(duì)列是滿的,不能容納更多的消息,返回出錯(cuò)信息。否則,在消息控制塊QCB 的OSQIn所指示的消息指針數(shù)組位置存入該消息,然后將OSQIn 指向下一個(gè)單元以便下次使用。判斷OSQI

22、n是否到超過(guò)了表尾,如果超過(guò)了,將其指向隊(duì)首。然后返回。新浪交流微群:PPT和全部代碼下載 /154415.2.5等待消息隊(duì)列中的消息等待消息隊(duì)列的消息是消息隊(duì)列管理中的又一核心函數(shù)。如果消息隊(duì)列中有消息, 那么就取出消息,然后返回;如果沒(méi)有消息,只有在ECB中標(biāo)記自己的等待,然后阻塞。等待消息隊(duì)列的函數(shù)的名稱為OSQPend,參數(shù)是ECB的指針、等待超時(shí)時(shí)間和返回函數(shù)執(zhí)行信息的指針的perr。函數(shù)的返回值是指向消息的指針。表5.16消息隊(duì)列等待函數(shù)OSQPend分析1. 首先進(jìn)行參數(shù)、ECB類型、中斷、調(diào)度鎖檢查,失敗則返回。2. 取得EC

23、B中的QCB指針,查詢消息隊(duì)列中是否有消息。如果有消息,那么請(qǐng)求直接成功,取得消息隊(duì)列中OSQOut所指的消息,將OSQOut指向消息隊(duì)列中的下一個(gè)元素以備下一次的消息提取。如果OSQOut指向了消息隊(duì)列之外,就指向消息隊(duì)列的首地址。將OSQEntries減1表示消息數(shù)量減少了一個(gè)。然后返回消息的指針。3. 如果沒(méi)有消息,那么任務(wù)就只有被阻塞。首先在TCB中的STCBStat中添加消息隊(duì)列等待標(biāo)志,任務(wù)延時(shí)時(shí)間,初始化等待狀態(tài),然后調(diào)用OS_EventTaskWait 添加等待標(biāo)志和取消就緒標(biāo)志,接著調(diào)用OS_Sched執(zhí)行一次任務(wù)調(diào)度。4. 任務(wù)恢復(fù)運(yùn)行后,根據(jù)TCB中的等待狀態(tài)OSTCBS

24、tatPend決定程序走向。如果獲得了消息,進(jìn)行一些處理后返回該消息。如果是退出等待,或是等待超時(shí),分別填寫(xiě)沒(méi)有取得消息的原因,然后返回空指針。新浪交流微群:PPT和全部代碼下載 /154415.2.6刪除消息隊(duì)列新浪交流微群:當(dāng)消息隊(duì)列不再使用了,就應(yīng)該盡快歸還給系統(tǒng),即將消息占用的ECB歸還給ECB 空閑鏈表以備它用,將QCB也歸還給空閑QCB鏈表。刪除消息隊(duì)列的函數(shù)的名稱為OSQDel,參數(shù)是ECB的指針、刪除操作的選項(xiàng)opt和返回函數(shù)執(zhí)行信息的指針的perr。 其中opt的值為 OS_DEL_NO_PEND 表示只有當(dāng)沒(méi)有任務(wù)等待該消息隊(duì)列的時(shí)候才允許刪除,opt的值為OS_DEL_ALWAYS 表示無(wú)論如何都刪除。如果成功刪除,返回空指針;否則返回ECB的指針。表5.17消息隊(duì)列刪除函數(shù)OSQDel解析1. 首先進(jìn)行參數(shù)的檢查。2. 根據(jù)選項(xiàng)opt決定程序的分支3. 如果opt不是這兩個(gè)值當(dāng)中的一個(gè),那就是說(shuō)明是錯(cuò)誤的選項(xiàng),也屬于參數(shù)檢查失敗。因此,標(biāo)記錯(cuò)誤信息perr為OS_ERR_IN

溫馨提示

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