單片機(jī)原理、接口及應(yīng)用_第1頁(yè)
單片機(jī)原理、接口及應(yīng)用_第2頁(yè)
單片機(jī)原理、接口及應(yīng)用_第3頁(yè)
單片機(jī)原理、接口及應(yīng)用_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余29頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 內(nèi)內(nèi)內(nèi)內(nèi)內(nèi)內(nèi) 容容容容容容 提提提提提提 要要要要要要 前言前言 RTX51 系統(tǒng)特點(diǎn)系統(tǒng)特點(diǎn) RTX51 的程序結(jié)構(gòu)的程序結(jié)構(gòu) RTX51的功能函數(shù)的功能函數(shù) RTX51的任務(wù)調(diào)度的任務(wù)調(diào)度 RTX51的系統(tǒng)配置的系統(tǒng)配置 RTX51的應(yīng)用舉例的應(yīng)用舉例 小結(jié)小結(jié)第第第第第第111111章章章章章章 RTX51R

2、TX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.1 前言前言 RTX51是一款小巧的針對(duì)基于是一款小巧的針對(duì)基于8051系列嵌入式系統(tǒng)的多任系列嵌入式系統(tǒng)的多任務(wù)實(shí)時(shí)操作系統(tǒng)。它的使用可以簡(jiǎn)化比較復(fù)雜、有嚴(yán)格時(shí)務(wù)實(shí)時(shí)操作系統(tǒng)。它的使用可以簡(jiǎn)化比較復(fù)雜、有嚴(yán)格時(shí)間限制的軟件的設(shè)計(jì)過(guò)程。間限制的軟件的設(shè)計(jì)過(guò)程。RTX51主要有兩個(gè)不同的可用主要有兩個(gè)不同的可用版本:版本:RTX5lFull版。這里稱之為版。這里稱之為RTX51的標(biāo)準(zhǔn)版,既可以以循環(huán)的標(biāo)準(zhǔn)版,既可以以循環(huán)(Round 一一Robin )方式執(zhí)行任務(wù),也可以按)方式執(zhí)行任務(wù),也可以按4

3、 級(jí)任務(wù)優(yōu)級(jí)任務(wù)優(yōu)先級(jí)的方式切換不同優(yōu)先級(jí)的任務(wù)。標(biāo)準(zhǔn)版以并行方式工先級(jí)的方式切換不同優(yōu)先級(jí)的任務(wù)。標(biāo)準(zhǔn)版以并行方式工作,支持中斷管理,信號(hào)和消息可以通過(guò)郵箱系統(tǒng)在不同作,支持中斷管理,信號(hào)和消息可以通過(guò)郵箱系統(tǒng)在不同任務(wù)之間傳遞。任務(wù)之間傳遞。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) RTX5lTiny版。這里稱之為版。這里稱之為RTX5l的精簡(jiǎn)版,是其標(biāo)準(zhǔn)版的精簡(jiǎn)版,是其標(biāo)準(zhǔn)版的一個(gè)子集。它可以很容易地運(yùn)行在的一個(gè)子集。它可以很容易地運(yùn)行在8051 的單芯片系統(tǒng)而的單芯片系統(tǒng)而不需要任何外

4、部數(shù)據(jù)存儲(chǔ)器。通用性強(qiáng),系統(tǒng)需求低,但不需要任何外部數(shù)據(jù)存儲(chǔ)器。通用性強(qiáng),系統(tǒng)需求低,但功能上受到限制。它只支持循環(huán)方式和信號(hào)方式的任務(wù)切功能上受到限制。它只支持循環(huán)方式和信號(hào)方式的任務(wù)切換,而不支持優(yōu)先級(jí)方式的任務(wù)切換。換,而不支持優(yōu)先級(jí)方式的任務(wù)切換。 由于由于KEIL C中自帶了中自帶了RTX5l的精簡(jiǎn)版的精簡(jiǎn)版RTX5lTiny,事,事實(shí)上精簡(jiǎn)版也能夠滿足絕大部分場(chǎng)合的應(yīng)用要求,所以以實(shí)上精簡(jiǎn)版也能夠滿足絕大部分場(chǎng)合的應(yīng)用要求,所以以下只講解下只講解RTX5lTiny的內(nèi)容,出現(xiàn)的內(nèi)容,出現(xiàn)RTX51的地方默認(rèn)為其的地方默認(rèn)為其精簡(jiǎn)版精簡(jiǎn)版RTX51Tiny。 第第第第第第111111

5、章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.2 RTX51 11.2 RTX51 系統(tǒng)特點(diǎn)系統(tǒng)特點(diǎn) RTX51 RTX51 可以在所有的可以在所有的8051 8051 系列芯片上運(yùn)行。用戶只需系列芯片上運(yùn)行。用戶只需要用標(biāo)準(zhǔn)的要用標(biāo)準(zhǔn)的C C語(yǔ)言編寫語(yǔ)言編寫RTX51 RTX51 程序,然后用程序,然后用C51C51編譯器編譯編譯器編譯即可生成代碼。其中,僅有少數(shù)內(nèi)容和標(biāo)準(zhǔn)即可生成代碼。其中,僅有少數(shù)內(nèi)容和標(biāo)準(zhǔn)C C 語(yǔ)言有差異,語(yǔ)言有差異,這些內(nèi)容是為了實(shí)現(xiàn)任務(wù)標(biāo)識(shí)和優(yōu)先級(jí)而設(shè)置的。這些內(nèi)容是為了實(shí)現(xiàn)任務(wù)標(biāo)識(shí)和優(yōu)

6、先級(jí)而設(shè)置的。RTX51 RTX51 程序設(shè)計(jì)需要包含實(shí)時(shí)運(yùn)行頭文件和必要的庫(kù)文件,并且程序設(shè)計(jì)需要包含實(shí)時(shí)運(yùn)行頭文件和必要的庫(kù)文件,并且要用要用BL51 BL51 連接定位器來(lái)實(shí)現(xiàn)連接。在連接定位器來(lái)實(shí)現(xiàn)連接。在KeilKeil中,你只需要中,你只需要在目標(biāo)選項(xiàng)的在目標(biāo)選項(xiàng)的TargetTarget標(biāo)簽中的標(biāo)簽中的OperatingOperating中選擇中選擇RTX-51 RTX-51 TinyTiny,在你的頭文件中加上,在你的頭文件中加上#include #include 即可。即可。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作

7、系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 在在RTX51 TINY環(huán)境下生成代碼,需要用到下列工具:環(huán)境下生成代碼,需要用到下列工具:C51編譯器編譯器BL51連接連接/定位器定位器A51宏匯編器宏匯編器 此外,庫(kù)文件此外,庫(kù)文件RTX51TNY.LIB必須存放在環(huán)境變量必須存放在環(huán)境變量C51LIB所指定的路徑下。所指定的路徑下。 RTX51 TinyRTX51 Tiny版可以運(yùn)行在版可以運(yùn)行在80518051的單芯片嵌入式系統(tǒng)上,的單芯片嵌入式系統(tǒng)上,且不需要任何外部數(shù)據(jù)存儲(chǔ)器,但也不排斥應(yīng)用程序訪問(wèn)且不需要任何外部數(shù)據(jù)存儲(chǔ)器,但也不排斥應(yīng)用程序訪問(wèn)外部的數(shù)據(jù)存儲(chǔ)器。外部的數(shù)據(jù)存儲(chǔ)器。RT

8、X51 TinyRTX51 Tiny版本可以使用版本可以使用C51C51所支持的所支持的所有存儲(chǔ)模式。所使用的存儲(chǔ)模式只影響應(yīng)用對(duì)象的存儲(chǔ)所有存儲(chǔ)模式。所使用的存儲(chǔ)模式只影響應(yīng)用對(duì)象的存儲(chǔ)位置。位置。RTX51 TinyRTX51 Tiny的系統(tǒng)變量和應(yīng)用程序的堆棧區(qū)總是存的系統(tǒng)變量和應(yīng)用程序的堆棧區(qū)總是存儲(chǔ)在儲(chǔ)在80518051的片內(nèi)的片內(nèi)RAMRAM中(即中(即DATADATA和和IDATAIDATA)。典型的)。典型的RTX51 RTX51 TinyTiny應(yīng)用程序一般運(yùn)行于應(yīng)用程序一般運(yùn)行于SMALLSMALL存儲(chǔ)模式下。存儲(chǔ)模式下。 第第第第第第111111章章章章章章 RTX51R

9、TX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) RTX51 TinyRTX51 Tiny版本使用了版本使用了80518051的定時(shí)器的定時(shí)器0 0和定時(shí)器和定時(shí)器0 0的中斷的中斷信號(hào)。信號(hào)。SFRSFR中的全局中斷允許位或定時(shí)器中的全局中斷允許位或定時(shí)器0 0中斷屏蔽位都可中斷屏蔽位都可能使能使RTX51 TinyRTX51 Tiny停止運(yùn)行。因此,除非有特殊的應(yīng)用目的,停止運(yùn)行。因此,除非有特殊的應(yīng)用目的,應(yīng)該使定時(shí)器應(yīng)該使定時(shí)器0 0的中斷始終開(kāi)啟,以保證的中斷始終開(kāi)啟,以保證RTX51 TinyRTX51 Tiny的正常的正常運(yùn)行。運(yùn)行。 實(shí)

10、時(shí)操作系統(tǒng)的性能參數(shù)對(duì)嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)也有實(shí)時(shí)操作系統(tǒng)的性能參數(shù)對(duì)嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)也有著直接影響,著直接影響,RTX51RTX51的性能參數(shù)如表的性能參數(shù)如表11-111-1所示。所示。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.3 RTX51 的程序結(jié)構(gòu)的程序結(jié)構(gòu) RTX51Tiny通過(guò)循環(huán)(通過(guò)循環(huán)(Round-Robin)方式來(lái)實(shí)現(xiàn)多)方式來(lái)實(shí)現(xiàn)多任務(wù),以達(dá)到多個(gè)無(wú)限循環(huán)或任務(wù)的準(zhǔn)并行執(zhí)行。這里的任務(wù),以達(dá)到多個(gè)無(wú)限循環(huán)或任務(wù)的準(zhǔn)并行執(zhí)行。這里的多任務(wù)并不是真正同時(shí)執(zhí)行的,而

11、是使用不同的時(shí)間片來(lái)多任務(wù)并不是真正同時(shí)執(zhí)行的,而是使用不同的時(shí)間片來(lái)執(zhí)行,即只是宏觀上的同時(shí)執(zhí)行。它將可用的執(zhí)行,即只是宏觀上的同時(shí)執(zhí)行。它將可用的CPU周期分周期分成多個(gè)時(shí)間片,由成多個(gè)時(shí)間片,由RTX51把這些時(shí)間片分配給每一個(gè)任務(wù)把這些時(shí)間片分配給每一個(gè)任務(wù)使用。每個(gè)任務(wù)只能在預(yù)定的時(shí)間片里運(yùn)行。然后,使用。每個(gè)任務(wù)只能在預(yù)定的時(shí)間片里運(yùn)行。然后,RTX51再切換到另一個(gè)己經(jīng)準(zhǔn)備就緒的任務(wù),讓它再執(zhí)行再切換到另一個(gè)己經(jīng)準(zhǔn)備就緒的任務(wù),讓它再執(zhí)行一定的時(shí)間片。一定的時(shí)間片。時(shí)間片一般是比較短促的,一個(gè)時(shí)間片大約只有毫秒時(shí)間片一般是比較短促的,一個(gè)時(shí)間片大約只有毫秒級(jí)時(shí)間。正是由于這個(gè)原因

12、,在用戶看來(lái),多個(gè)任務(wù)似乎級(jí)時(shí)間。正是由于這個(gè)原因,在用戶看來(lái),多個(gè)任務(wù)似乎是在同時(shí)執(zhí)行的。是在同時(shí)執(zhí)行的。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) RTX51 利用了一個(gè)由利用了一個(gè)由8051定時(shí)器中斷信號(hào)驅(qū)動(dòng)的定時(shí)程定時(shí)器中斷信號(hào)驅(qū)動(dòng)的定時(shí)程序來(lái)實(shí)現(xiàn)控制。定時(shí)器產(chǎn)生的周期性中斷信號(hào)用來(lái)驅(qū)動(dòng)序來(lái)實(shí)現(xiàn)控制。定時(shí)器產(chǎn)生的周期性中斷信號(hào)用來(lái)驅(qū)動(dòng)RTX51的定時(shí)節(jié)拍。的定時(shí)節(jié)拍。RTX51與用戶程序中的與用戶程序中的main函數(shù)是無(wú)關(guān)的。用戶程序中函數(shù)是無(wú)關(guān)的。用戶程序中即使沒(méi)有即使沒(méi)有main 程

13、序,操作系統(tǒng)也會(huì)自動(dòng)從設(shè)定的任務(wù)程序,操作系統(tǒng)也會(huì)自動(dòng)從設(shè)定的任務(wù)0開(kāi)始開(kāi)始執(zhí)行。如果用戶程序中已經(jīng)有了執(zhí)行。如果用戶程序中已經(jīng)有了main 函數(shù),就必須用人工方函數(shù),就必須用人工方式來(lái)啟動(dòng)式來(lái)啟動(dòng)RTX51。這對(duì)于。這對(duì)于RTX51 Tiny版,可以調(diào)用版,可以調(diào)用os_create_task函數(shù)來(lái)完成函數(shù)來(lái)完成.下面是一個(gè)只使用下面是一個(gè)只使用Round-Robin Round-Robin 任務(wù)方式的簡(jiǎn)單任務(wù)方式的簡(jiǎn)單RTX51 RTX51 程序?qū)嵗?。程序中的兩個(gè)任務(wù)都是簡(jiǎn)單的計(jì)數(shù)循環(huán)。程序?qū)嵗?。程序中的兩個(gè)任務(wù)都是簡(jiǎn)單的計(jì)數(shù)循環(huán)。RTX51 RTX51 從從job0job0函數(shù)(設(shè)定為任

14、務(wù)函數(shù)(設(shè)定為任務(wù)0 0)開(kāi)始執(zhí)行。程序中還有另一個(gè))開(kāi)始執(zhí)行。程序中還有另一個(gè)名為名為job1job1的任務(wù)(設(shè)定為任務(wù)的任務(wù)(設(shè)定為任務(wù)l l)。系統(tǒng)一旦啟動(dòng),在)。系統(tǒng)一旦啟動(dòng),在job0 job0 執(zhí)行一段時(shí)間后,執(zhí)行一段時(shí)間后,RTx51 RTx51 就自動(dòng)切換到就自動(dòng)切換到j(luò)ob1job1的執(zhí)行;而的執(zhí)行;而job1job1執(zhí)行一段時(shí)間后,執(zhí)行一段時(shí)間后,RTX51RTX51又切換回又切換回job0job0, 如此無(wú)限循如此無(wú)限循環(huán)地重復(fù)執(zhí)行下去環(huán)地重復(fù)執(zhí)行下去 。第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)

15、時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) #include int counter0;int counter1;void job0(void) _task_ 0os_create_task(1); /*任務(wù)任務(wù)l 己準(zhǔn)備就緒己準(zhǔn)備就緒*/while (1) /*無(wú)限循無(wú)限循環(huán)環(huán)*/ counter0+; /*更新計(jì)數(shù)更新計(jì)數(shù)值值counter0*/ void job1(void) _task_ 1while(1) /*無(wú)限循環(huán)無(wú)限循環(huán)*/counter1+; /*更新計(jì)數(shù)值更新計(jì)數(shù)值counter1*/第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操

16、作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.4 RTX51的功能函數(shù)的功能函數(shù) RTX51精簡(jiǎn)版支持的功能函數(shù)如表精簡(jiǎn)版支持的功能函數(shù)如表11-2所示,具體含義分別介紹如下。所示,具體含義分別介紹如下。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.4.1 信號(hào)控制函數(shù)信號(hào)控制函數(shù) isr_send_signal函數(shù)原型函數(shù)原型 char isr_send_signal(unsigned char task_id);功能說(shuō)明功能說(shuō)明 發(fā)送一個(gè)信號(hào)到發(fā)送一個(gè)信號(hào)到task_id說(shuō)明的任務(wù)。如果此任務(wù)已

17、說(shuō)明的任務(wù)。如果此任務(wù)已在等待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備執(zhí)行。在等待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備執(zhí)行。否則,信號(hào)講存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只能從中否則,信號(hào)講存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只能從中斷函數(shù)中調(diào)用。斷函數(shù)中調(diào)用。返回值返回值 如果執(zhí)行成功,此函數(shù)返回如果執(zhí)行成功,此函數(shù)返回0值;如果所指定的任務(wù)值;如果所指定的任務(wù)不存在,則返回不存在,則返回-1 。第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) os_clear_signal函數(shù)原型函數(shù)原型 cha

18、r os_clear_signal(unsigned char task_id); 功能說(shuō)明功能說(shuō)明 清除由清除由task_id說(shuō)明的任務(wù)的信號(hào)說(shuō)明的任務(wù)的信號(hào)返回值返回值 如果信號(hào)清除成功,此函數(shù)返回如果信號(hào)清除成功,此函數(shù)返回0值;如果所指定的任值;如果所指定的任務(wù)不存在,則返回務(wù)不存在,則返回-1 os_send_signal函數(shù)原型函數(shù)原型 char os_send_signal(unsigned char task_id); 功能說(shuō)明功能說(shuō)明 發(fā)送一個(gè)信號(hào)到發(fā)送一個(gè)信號(hào)到task_id說(shuō)明的任務(wù)。如果此任說(shuō)明的任務(wù)。如果此任務(wù)已在等待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備務(wù)已在等

19、待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備執(zhí)行。否則,信號(hào)講存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只執(zhí)行。否則,信號(hào)講存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只能在任務(wù)函數(shù)中調(diào)用能在任務(wù)函數(shù)中調(diào)用返回值返回值 如果執(zhí)行成功,此函數(shù)返回如果執(zhí)行成功,此函數(shù)返回0值;如果所指定的任務(wù)不值;如果所指定的任務(wù)不存在,則返回存在,則返回-1 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.4.2 任務(wù)控制函數(shù)任務(wù)控制函數(shù) os_create_task函數(shù)原型函數(shù)原型 char os_create_task(unsig

20、ned char task_id); 功能說(shuō)明功能說(shuō)明 啟動(dòng)已定義的由啟動(dòng)已定義的由task_id說(shuō)明的任務(wù)。此任務(wù)說(shuō)明的任務(wù)。此任務(wù)根據(jù)根據(jù)RTX51運(yùn)行規(guī)則,標(biāo)記為就緒,并準(zhǔn)備執(zhí)行。運(yùn)行規(guī)則,標(biāo)記為就緒,并準(zhǔn)備執(zhí)行。返回值返回值 如果任務(wù)成功啟動(dòng),此函數(shù)返回如果任務(wù)成功啟動(dòng),此函數(shù)返回0值;如果沒(méi)有值;如果沒(méi)有task_id說(shuō)明的任務(wù),則返回說(shuō)明的任務(wù),則返回-1 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) os_delete_task函數(shù)原型函數(shù)原型 char os_delete_task(

21、unsigned char task_id); 功能說(shuō)明功能說(shuō)明 停止停止task_id說(shuō)明的任務(wù),此任務(wù)將從任務(wù)表中說(shuō)明的任務(wù),此任務(wù)將從任務(wù)表中刪除。刪除。返回值返回值 如果任務(wù)成功啟動(dòng),此函數(shù)返回如果任務(wù)成功啟動(dòng),此函數(shù)返回0值;如果沒(méi)有值;如果沒(méi)有task_id說(shuō)明的任務(wù),則返回說(shuō)明的任務(wù),則返回-1。 os_running_task_id函數(shù)原型函數(shù)原型 char os_running_task_id(unsigned char task_id); 功能說(shuō)明功能說(shuō)明 判斷當(dāng)前執(zhí)行任務(wù)的編號(hào)判斷當(dāng)前執(zhí)行任務(wù)的編號(hào)返回值返回值 返回當(dāng)前正在執(zhí)行的任務(wù)的編號(hào),返回值為返回當(dāng)前正在執(zhí)行的任務(wù)

22、的編號(hào),返回值為015。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.4.3 延時(shí)控制函數(shù)延時(shí)控制函數(shù) os_wait函數(shù)原型函數(shù)原型 char os_wait( unsigned char event_sel, /*將要等待將要等待 的事件的事件*/ unsigned char tisks, /*將要等待的定時(shí)器時(shí)標(biāo)數(shù)將要等待的定時(shí)器時(shí)標(biāo)數(shù)*/ unsigned char dummy ); /*未用參數(shù)未用參數(shù)*/ 功能說(shuō)明功能說(shuō)明 停止當(dāng)前執(zhí)行的任務(wù),并等待一個(gè)或多個(gè)事件,如時(shí)停止當(dāng)前執(zhí)

23、行的任務(wù),并等待一個(gè)或多個(gè)事件,如時(shí)間間隔、超時(shí)、從另一個(gè)任務(wù)或中斷發(fā)出的信號(hào)等。參數(shù)間間隔、超時(shí)、從另一個(gè)任務(wù)或中斷發(fā)出的信號(hào)等。參數(shù)event_sel說(shuō)明所等待的一個(gè)事件或幾個(gè)事件的組合。事件種說(shuō)明所等待的一個(gè)事件或幾個(gè)事件的組合。事件種類如表類如表11-3所示。所示。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 表表11-4 os_wait函數(shù)的返回值

24、函數(shù)的返回值 os_wait1os_wait1os_wait1 函數(shù)原型函數(shù)原型函數(shù)原型函數(shù)原型函數(shù)原型函數(shù)原型 char os_wait1(unsigned char event_selchar os_wait1(unsigned char event_selchar os_wait1(unsigned char event_sel); ); ); 功能說(shuō)明功能說(shuō)明功能說(shuō)明功能說(shuō)明功能說(shuō)明功能說(shuō)明 暫停當(dāng)前任務(wù),等待一個(gè)事件的發(fā)生。它是暫停當(dāng)前任務(wù),等待一個(gè)事件的發(fā)生。它是暫停當(dāng)前任務(wù),等待一個(gè)事件的發(fā)生。它是暫停當(dāng)前任務(wù),等待一個(gè)事件的發(fā)生。它是暫停當(dāng)前任務(wù),等待一個(gè)事件的發(fā)生。它是暫停當(dāng)

25、前任務(wù),等待一個(gè)事件的發(fā)生。它是os_waitos_waitos_wait函數(shù)的一個(gè)子集,不接受針對(duì)函數(shù)的一個(gè)子集,不接受針對(duì)函數(shù)的一個(gè)子集,不接受針對(duì)函數(shù)的一個(gè)子集,不接受針對(duì)函數(shù)的一個(gè)子集,不接受針對(duì)函數(shù)的一個(gè)子集,不接受針對(duì)os_waitos_waitos_wait函數(shù)提供的全部事函數(shù)提供的全部事函數(shù)提供的全部事函數(shù)提供的全部事函數(shù)提供的全部事函數(shù)提供的全部事件。參數(shù)件。參數(shù)件。參數(shù)件。參數(shù)件。參數(shù)件。參數(shù)event_selevent_selevent_sel指定了等待的事件,它只能是指定了等待的事件,它只能是指定了等待的事件,它只能是指定了等待的事件,它只能是指定了等待的事件,它只能是

26、指定了等待的事件,它只能是K_SIGK_SIGK_SIG。 返回值返回值返回值返回值返回值返回值 當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的當(dāng)信號(hào)事件發(fā)生時(shí),任務(wù)就被允許執(zhí)行,任務(wù)的執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟動(dòng)的常量。執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟動(dòng)的常量。執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟動(dòng)的常量。執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟動(dòng)的常量。執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟

27、動(dòng)的常量。執(zhí)行將恢復(fù)。返回用于識(shí)別事件、使任務(wù)重新啟動(dòng)的常量。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) os_wait2函數(shù)原型函數(shù)原型 char os_wait2( unsigned char event_sel, /*將要等將要等 待的事件待的事件*/ unsigned char tisks); /*將要等待的定時(shí)器時(shí)標(biāo)數(shù)將要等待的定時(shí)器時(shí)標(biāo)數(shù)*/功能說(shuō)明功能說(shuō)明 與與os_wait相同,但是不需要相同,但是不需要dummy參數(shù)。參數(shù)。 返回值返回值 與與os_wait相同相同 第第第第第

28、第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.5 RTX51的任務(wù)調(diào)度的任務(wù)調(diào)度 RTX51利用任務(wù)狀態(tài)來(lái)管理各個(gè)任務(wù)。用戶為利用任務(wù)狀態(tài)來(lái)管理各個(gè)任務(wù)。用戶為RTX51定義定義的每個(gè)任務(wù)都會(huì)以各種狀態(tài)的某一種來(lái)運(yùn)行。的每個(gè)任務(wù)都會(huì)以各種狀態(tài)的某一種來(lái)運(yùn)行。RTX51內(nèi)核為內(nèi)核為每個(gè)任務(wù)保留了適當(dāng)?shù)臓顟B(tài)如表每個(gè)任務(wù)保留了適當(dāng)?shù)臓顟B(tài)如表11-5所示。所示。表表11-5 RTX5111-5 RTX51的任務(wù)狀態(tài)的任務(wù)狀態(tài) 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操

29、作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) RTX51以以round-robin多任務(wù)方式執(zhí)行程序,它支持多個(gè)多任務(wù)方式執(zhí)行程序,它支持多個(gè)無(wú)限循環(huán)或任務(wù)的準(zhǔn)并行執(zhí)行。任務(wù)不是被同時(shí)執(zhí)行,而是無(wú)限循環(huán)或任務(wù)的準(zhǔn)并行執(zhí)行。任務(wù)不是被同時(shí)執(zhí)行,而是以分時(shí)的方式輪片執(zhí)行。可用的以分時(shí)的方式輪片執(zhí)行。可用的CPU時(shí)鐘周期被分成多個(gè)時(shí)時(shí)鐘周期被分成多個(gè)時(shí)間片,然后由間片,然后由RTX51 將這些時(shí)間片分配給各個(gè)任務(wù)。每個(gè)任將這些時(shí)間片分配給各個(gè)任務(wù)。每個(gè)任務(wù)只允許在預(yù)定的時(shí)間片中執(zhí)行,時(shí)間片用完時(shí),務(wù)只允許在預(yù)定的時(shí)間片中執(zhí)行,時(shí)間片用完時(shí),RTX51就就切換至另一個(gè)就緒的任務(wù),繼續(xù)執(zhí)行一段

30、時(shí)間。時(shí)間片的具切換至另一個(gè)就緒的任務(wù),繼續(xù)執(zhí)行一段時(shí)間。時(shí)間片的具體長(zhǎng)度可以用配置函數(shù)體長(zhǎng)度可以用配置函數(shù)TIMESHARING 來(lái)定義。來(lái)定義。如果遇到因?yàn)橐粋€(gè)任務(wù)處于等待并且占用了時(shí)間片而暫如果遇到因?yàn)橐粋€(gè)任務(wù)處于等待并且占用了時(shí)間片而暫時(shí)無(wú)法往下執(zhí)行,可以調(diào)用系統(tǒng)函數(shù)時(shí)無(wú)法往下執(zhí)行,可以調(diào)用系統(tǒng)函數(shù)os_wait來(lái)通知來(lái)通知RTX51,以便將當(dāng)前的任務(wù)掛起而提前執(zhí)行另一任務(wù)。以便將當(dāng)前的任務(wù)掛起而提前執(zhí)行另一任務(wù)。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) R T X 5 1 中 處 理

31、 任 務(wù) 分 配 的 模 塊 稱 為 調(diào) 度 程 序中 處 理 任 務(wù) 分 配 的 模 塊 稱 為 調(diào) 度 程 序(Scheduler)。調(diào)度程序驅(qū)動(dòng)哪個(gè)任務(wù)運(yùn)行是按照以下的規(guī))。調(diào)度程序驅(qū)動(dòng)哪個(gè)任務(wù)運(yùn)行是按照以下的規(guī)則進(jìn)行的:則進(jìn)行的: (1)如果發(fā)生以下情況時(shí),當(dāng)前運(yùn)行的任務(wù)將被中斷:)如果發(fā)生以下情況時(shí),當(dāng)前運(yùn)行的任務(wù)將被中斷: 調(diào)用調(diào)用os_wait函數(shù),而所等待的事件未來(lái)到;函數(shù),而所等待的事件未來(lái)到; 任務(wù)的執(zhí)行時(shí)間已經(jīng)超過(guò)所定義的任務(wù)的執(zhí)行時(shí)間已經(jīng)超過(guò)所定義的Round-Robin循環(huán)時(shí)間間循環(huán)時(shí)間間隔隔 (2)如果發(fā)生以下情況時(shí),另一個(gè)任務(wù)將被啟動(dòng):)如果發(fā)生以下情況時(shí),另一個(gè)

32、任務(wù)將被啟動(dòng): 已沒(méi)有正在執(zhí)行的任務(wù);已沒(méi)有正在執(zhí)行的任務(wù); 將要執(zhí)行的任務(wù)處在就緒狀態(tài)或超時(shí)狀態(tài)。將要執(zhí)行的任務(wù)處在就緒狀態(tài)或超時(shí)狀態(tài)。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.6 RTX51的系統(tǒng)配置的系統(tǒng)配置 編寫編寫RTX51程序需要包含程序需要包含RTX51TNY.H 文件。在程序中,文件。在程序中,需要用一個(gè)關(guān)鍵字需要用一個(gè)關(guān)鍵字“_task_” 來(lái)聲明一個(gè)函數(shù)的任務(wù)屬性。來(lái)聲明一個(gè)函數(shù)的任務(wù)屬性。RTX51程序不需要程序不需要main 函數(shù)。在進(jìn)行連接處理時(shí),會(huì)將啟動(dòng)函數(shù)。

33、在進(jìn)行連接處理時(shí),會(huì)將啟動(dòng)任務(wù)任務(wù)0 的執(zhí)行所需要的代碼連接進(jìn)來(lái),作為開(kāi)始執(zhí)行的代碼。的執(zhí)行所需要的代碼連接進(jìn)來(lái),作為開(kāi)始執(zhí)行的代碼。用戶可以更改配置文件用戶可以更改配置文件CONF_TNY.A51中的以下幾個(gè)參數(shù):中的以下幾個(gè)參數(shù): 系統(tǒng)定時(shí)器中斷所用的寄存器組系統(tǒng)定時(shí)器中斷所用的寄存器組 系統(tǒng)定時(shí)器的時(shí)間間隔系統(tǒng)定時(shí)器的時(shí)間間隔 Round-Robin的超時(shí)(的超時(shí)(time-out)值)值 內(nèi)部數(shù)據(jù)存儲(chǔ)器的大小內(nèi)部數(shù)據(jù)存儲(chǔ)器的大小 RTX5l 啟動(dòng)后的自由堆棧大小啟動(dòng)后的自由堆棧大小 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)

34、實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 以下是配置文件的部分內(nèi)容:以下是配置文件的部分內(nèi)容:;RTX51 的硬件定時(shí)器的硬件定時(shí)器;用下面的用下面的EQU可預(yù)置可預(yù)置RTX51的定時(shí)器時(shí)間常數(shù)的定時(shí)器時(shí)間常數(shù);用用8051 定時(shí)器定時(shí)器0 作為控制軟件的定時(shí)器作為控制軟件的定時(shí)器;定義定時(shí)器中斷用的寄存器組定義定時(shí)器中斷用的寄存器組INT_REGBANKEQU1 ;默認(rèn)為寄存器默認(rèn)為寄存器1組組;定義定義8051定時(shí)器定時(shí)器0溢出所需的機(jī)器周期數(shù)溢出所需的機(jī)器周期數(shù)INT_CLOCK EQU10000 ;默認(rèn)周期數(shù)為默認(rèn)周期數(shù)為10000 ;定義定義Round-Robin 的的Timeout 所

35、需的定時(shí)器溢出數(shù)所需的定時(shí)器溢出數(shù)TIMESHARINGEQU5;默認(rèn)為默認(rèn)為5次次 ;注意:注意:Round-Robin任務(wù)切換可用任務(wù)切換可用TIMESHARING為為0來(lái)屏蔽來(lái)屏蔽 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) ;RTX51 堆??臻g堆??臻g;以下的以下的EQU語(yǔ)句定義了堆棧區(qū)的片內(nèi)語(yǔ)句定義了堆棧區(qū)的片內(nèi)RAM 體積和最小自由堆??臻g體積和最小自由堆??臻g:定義了堆棧空間耗盡后所執(zhí)行的宏代碼:定義了堆??臻g耗盡后所執(zhí)行的宏代碼;定義最大的堆棧;定義最大的堆棧RAM 地址地址RA

36、MTOP EQU 0FFH ;默認(rèn)地址是;默認(rèn)地址是255 ;定義最小的堆棧自由空間定義最小的堆棧自由空間FREE_STACKEQU20 ;默認(rèn)為;默認(rèn)為20 字節(jié)堆棧自由空間字節(jié)堆棧自由空間; ;發(fā)生堆棧用盡時(shí)的執(zhí)行代碼;發(fā)生堆棧用盡時(shí)的執(zhí)行代碼STACK_ERROR MACRO CLR EA ;關(guān)閉所有中斷關(guān)閉所有中斷SJMP $ ;如堆??臻g耗盡,進(jìn)入死循環(huán)如堆??臻g耗盡,進(jìn)入死循環(huán)ENDM 在這個(gè)配置文件中,定義了許多可以修改的參數(shù),以適應(yīng)用戶特定的應(yīng)在這個(gè)配置文件中,定義了許多可以修改的參數(shù),以適應(yīng)用戶特定的應(yīng)用程序環(huán)境。這些參數(shù)的說(shuō)明詳見(jiàn)表用程序環(huán)境。這些參數(shù)的說(shuō)明詳見(jiàn)表11-6所

37、示。所示。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 表表11-6 配置文件參數(shù)說(shuō)明配置文件參數(shù)說(shuō)明 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 11.7 RTX51的應(yīng)用舉例的應(yīng)用舉例 本節(jié)給出了一個(gè)采用本節(jié)給出了一個(gè)采用RTX51實(shí)現(xiàn)的簡(jiǎn)單的交通燈控制模實(shí)現(xiàn)的簡(jiǎn)單的交通燈控制模擬程序。其目的在于展示擬程序。其目的在于展示RTX51編程的思路與優(yōu)勢(shì),同時(shí)為編程的思路與優(yōu)勢(shì),同時(shí)為便于學(xué)習(xí),又力求程

38、序簡(jiǎn)單。因此這里通過(guò)串口輸出模擬了便于學(xué)習(xí),又力求程序簡(jiǎn)單。因此這里通過(guò)串口輸出模擬了一個(gè)人行道上的紅綠燈控制過(guò)程:車通行,綠燈亮;綠燈保一個(gè)人行道上的紅綠燈控制過(guò)程:車通行,綠燈亮;綠燈保持一段時(shí)間后,閃爍幾秒轉(zhuǎn)亮黃燈幾秒;黃燈沒(méi)后,紅燈亮持一段時(shí)間后,閃爍幾秒轉(zhuǎn)亮黃燈幾秒;黃燈沒(méi)后,紅燈亮起,人通行。然后又亮綠燈,周而復(fù)始。為方便學(xué)習(xí)調(diào)試,起,人通行。然后又亮綠燈,周而復(fù)始。為方便學(xué)習(xí)調(diào)試,這里采用串口輸出不同的文本串來(lái)指示綠燈亮、綠燈閃爍這里采用串口輸出不同的文本串來(lái)指示綠燈亮、綠燈閃爍(文本串閃爍)、黃燈亮、紅燈亮(文本串閃爍)、黃燈亮、紅燈亮4種狀態(tài)。為便于觀察結(jié)果,種狀態(tài)。為便于觀察結(jié)果,示例程序運(yùn)行所獲的狀態(tài)持續(xù)時(shí)間為:綠亮示例程序運(yùn)行所獲的狀態(tài)持續(xù)時(shí)間為:綠亮10s,綠閃,綠閃3s,黃,黃亮亮3s,紅亮,紅亮10s。 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 第第第第第第111111章章章章章章 RTX51RTX51RTX51實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng) 第第第第第第111111章章章章章章 RTX51RTX51R

溫馨提示

  • 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)論