版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 任務(wù)間的同步與通訊消息郵箱l什么是消息郵箱什么是消息郵箱l消息郵箱的數(shù)據(jù)結(jié)構(gòu)消息郵箱的數(shù)據(jù)結(jié)構(gòu)l消息郵箱相關(guān)函數(shù)消息郵箱相關(guān)函數(shù)消息郵箱指針消息郵箱任務(wù)1任務(wù)2發(fā)送消息請(qǐng)求消息消息緩沖區(qū)(發(fā)送消息緩沖區(qū)指針)(讀取消息緩沖區(qū)指針)消息郵箱是一種通信機(jī)制,它能使任務(wù)或中斷服務(wù)向另一個(gè)任務(wù)發(fā)送一個(gè)指針型的變量,這個(gè)指針指向一個(gè)包含指定“消息”的數(shù)據(jù)結(jié)構(gòu)。消息郵箱發(fā)送的不是消息本身,而是消息的地址指針。第七章 任務(wù)間的同步與通訊消息郵箱l什么是消息郵箱什么是消息郵箱l消息郵箱的數(shù)據(jù)結(jié)構(gòu)消息郵箱的數(shù)據(jù)結(jié)構(gòu)l消息郵箱相關(guān)函數(shù)消息郵箱相關(guān)函數(shù)消息郵箱的數(shù)據(jù)結(jié)構(gòu)typedef struct INT8
2、U OSEventType; /* 事件類型 */ INT8U OSEventGrp; /* 等待任務(wù)所在的組 */ INT16U OSEventCnt; /* 計(jì)數(shù)器(當(dāng)事件是信號(hào)量時(shí)) */ void *OSEventPtr; /* 指向消息或者消息隊(duì)列的指針 */INT8U OSEventTblOS_EVENT_TBL_SIZE; /* 等待任務(wù)列表 */ OS_EVENT;第七章 任務(wù)間的同步與通訊消息郵箱l什么是消息郵箱什么是消息郵箱l消息郵箱的數(shù)據(jù)結(jié)構(gòu)消息郵箱的數(shù)據(jù)結(jié)構(gòu)l消息郵箱相關(guān)函數(shù)消息郵箱相關(guān)函數(shù) 消息郵箱函數(shù)一覽表消息郵箱函數(shù)一覽表消息郵箱函數(shù)所屬文件是消息郵箱函數(shù)所屬文件
3、是OS_MBOX.COS_CFG.H文件中消息郵箱的配置常數(shù)一覽表文件中消息郵箱的配置常數(shù)一覽表任務(wù)、中斷服務(wù)子程序與消息郵箱之間的關(guān)系消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()建立一個(gè)郵箱,OSMboxCreate()函數(shù)OSMboxCreate()的原型如下:OS_EVENT *OSMboxCreate(void *msg); 參數(shù):msg 參數(shù)用來初始化建立的消息郵箱。如果該指針不為空,建立的消息郵箱將含有消息。 返回值:
4、指向分配給所建立的消息郵箱的事件控制塊的指針。如果沒有可用的事件控制塊,返回空指針。郵箱作用:郵箱作用: 通知一個(gè)消息(此時(shí),通知一個(gè)消息(此時(shí),msg為空)為空) 作為二值信號(hào)量作為二值信號(hào)量范例OS_EVENT *RxMbox; /*定義消息郵箱指針*/void main(void) . OSInit(); RxMbox = OSMboxCreate(void *)0); /*建立消息郵箱,初始值為空 */ OSStart(); /*啟動(dòng)多任務(wù)內(nèi)核 */OSMboxCreate()函數(shù)返回前,事件控制塊的內(nèi)容郵箱特點(diǎn) 消息郵箱的內(nèi)容是一個(gè)指向消息的指針,指針指消息郵箱的內(nèi)容是一個(gè)指向消息的
5、指針,指針指向的內(nèi)容就是消息向的內(nèi)容就是消息 郵箱只能接收和發(fā)送一條消息,當(dāng)郵箱滿時(shí),將郵箱只能接收和發(fā)送一條消息,當(dāng)郵箱滿時(shí),將丟棄新消息,保持舊消息丟棄新消息,保持舊消息 當(dāng)郵箱為滿是,郵箱里存放指向消息的指針;當(dāng)當(dāng)郵箱為滿是,郵箱里存放指向消息的指針;當(dāng)郵箱為空時(shí),郵箱指針為郵箱為空時(shí),郵箱指針為NULL消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery() 刪除消息郵箱OSMboxDel()函數(shù)原型如下:函數(shù)原型如下:OS_EVEN
6、T *OSMboxDel(OS_EVENT *pevent,INT8U opt,INT8U *err)該函數(shù)用于刪除消息郵箱,所屬文件為該函數(shù)用于刪除消息郵箱,所屬文件為OS_MBOX.C,調(diào)用者為任務(wù),開關(guān)量為,調(diào)用者為任務(wù),開關(guān)量為OS_MBOX_EN和和OS_MBOX_ DEL_EN。參數(shù):參數(shù):(1) pevent:指向消息郵箱的指針,該指針是消息郵箱建立時(shí),返回給應(yīng)用程序的:指向消息郵箱的指針,該指針是消息郵箱建立時(shí),返回給應(yīng)用程序的指針。指針。(2) opt:用于定義消息郵箱刪除條件的選項(xiàng)。可供選擇的值如下:用于定義消息郵箱刪除條件的選項(xiàng)。可供選擇的值如下: OS_DEL_NO_P
7、END:選擇只能是沒有任何任務(wù)在等待該消息郵箱的消息時(shí),:選擇只能是沒有任何任務(wù)在等待該消息郵箱的消息時(shí),才能刪除消息郵箱。才能刪除消息郵箱。 OS_DEL_ALWAYS:不管有沒有任務(wù)在等待消息郵箱的消息,都立即刪除消息:不管有沒有任務(wù)在等待消息郵箱的消息,都立即刪除消息郵箱。刪除后,所有等待消息郵箱消息的任務(wù)都立即進(jìn)入就緒狀態(tài)。郵箱。刪除后,所有等待消息郵箱消息的任務(wù)都立即進(jìn)入就緒狀態(tài)。(3) err:指向出錯(cuò)代碼的指針。:指向出錯(cuò)代碼的指針。 OS_NO_ERR:調(diào)用成功,表明郵箱已被刪除。:調(diào)用成功,表明郵箱已被刪除。 OS_ERR_DEL_ISR:試圖在中斷服務(wù)子程序中刪:試圖在中斷
8、服務(wù)子程序中刪除郵箱。除郵箱。 OS_ERR_INVALID_OPT:無效的:無效的opt參數(shù)。參數(shù)。 OS_ERR_EVENT_TYPE:pevent不是指向郵箱的不是指向郵箱的指針。指針。 OS_ERR_PEVENT_NULL:沒有可以使用的:沒有可以使用的OS_ EVENT數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)返回值返回值OSMboxDel()函數(shù)的返回值為如下內(nèi)容之一:函數(shù)的返回值為如下內(nèi)容之一:(1) 返回空指針返回空指針NULL,表示消息郵箱已被刪除。,表示消息郵箱已被刪除。(2) 返回返回pevent,表示消息郵箱沒有刪除,在這種情況下,表示消息郵箱沒有刪除,在這種情況下,應(yīng)該進(jìn)一步查看出錯(cuò)代碼,找到
9、出錯(cuò)原因。應(yīng)該進(jìn)一步查看出錯(cuò)代碼,找到出錯(cuò)原因。. 范例。OS_EVENT *RxMbox/*定義消息郵箱指針定義消息郵箱指針*/void task( void *pdata) INT8U *err; pdata = pdata; for (;) RxMbox = OSMboxDel (RxMbox,OS_DEL_ALWAYS,&err); 應(yīng)用程序;應(yīng)用程序; 消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()等待郵箱中的消息
10、,OSMboxPend()函數(shù)OSMboxPend()的原型如下:void *OSMboxPend ( OS_EVNNT *pevent, INT16U timeout, int8u *err ); 參數(shù):pevent:是指向即將接受消息的消息郵箱的指針。timeout:允許一個(gè)任務(wù)在經(jīng)過了指定數(shù)目的時(shí)鐘節(jié)拍后還沒有得到需要的消息時(shí)恢復(fù)運(yùn)行。err:是指向包含錯(cuò)誤碼的變量的指針。OSMboxPend()函數(shù)返回的錯(cuò)誤碼可能為下述幾種: OS_NO_ERR :消息被正確的接收。 OS_TIMEOUT :消息沒有在指定的周期數(shù)內(nèi)送到。 OS_ERR_PEND_ISR :從中斷調(diào)用該函數(shù)。雖然規(guī)定了
11、不允許從中斷調(diào)用該函數(shù),但C/OS-仍然包含了檢測(cè)這種情況的功能。 OS_ERR_EVENT_TYPE :pevent 不是指向消息郵箱的指針。返回值:OSMboxPend()函數(shù)返回接收的消息并將 *err置為OS_NO_ERR。如果沒有在指定數(shù)目的時(shí)鐘節(jié)拍內(nèi)接受到需要的消息,OSMboxPend()函數(shù)返回空指針并且將 *err設(shè)置為OS_TIMEOUT。范例OS_EVENT *RxMbox; /*定義消息郵箱指針*/void Task(void *pdata) INT8U err; void *msg; pdata = pdata; for (; ;) 應(yīng)用程序代碼; msg = OSM
12、boxPend (RxMbox, 10, &err) ;/*返回消息指針,據(jù)該指針可獲消息*/ if (err = OS_NO_ERR) 消息正確接收的應(yīng)用程序代碼; else 在指定時(shí)間內(nèi)沒有接收到消息的應(yīng)用程序代碼; 應(yīng)用程序代碼; 等待消息說明消息郵箱已經(jīng)存在需要的消息,那么該消息被返回給OSMboxPend()的調(diào)用者,消息郵箱中清除該消息。如果調(diào)用OSMboxPend()函數(shù)時(shí)消息郵箱中沒有需要的消息,OSMboxPend()函數(shù)掛起當(dāng)前任務(wù)直到得到需要的消息或超出定義等待超時(shí)的時(shí)間。如果同時(shí)有多個(gè)任務(wù)等待同一個(gè)消息,C/OS-默認(rèn)最高優(yōu)先級(jí)的任務(wù)取得消息并且任務(wù)恢復(fù)執(zhí)行。一
13、個(gè)由OSTaskSuspend()函數(shù)掛起的任務(wù)也可以接受消息,但這個(gè)任務(wù)將一直保持掛起狀態(tài)直到通過調(diào)用OSTaskResume()函數(shù)恢復(fù)任務(wù)的運(yùn)行。消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()向郵箱發(fā)送一則消息,OSMboxPost()函數(shù)OSMboxPost()的原型如下:INT8U OSMboxPost(OS_EVENT *pevent, void *msg); 參數(shù):pevent:指向即將接受消息的消息郵箱的指針。該指針
14、的值在建立該消息郵箱時(shí)可以得到。(參考OSMboxCreate()函數(shù))。msg:即將實(shí)際發(fā)送給任務(wù)的消息。消息是一個(gè)指針長(zhǎng)度的變量,在不同的程序中消息的使用也可能不同。不允許傳遞一個(gè)空指針,因?yàn)檫@意味著消息郵箱為空。 返回值:OS_NO_ERR :消息成功的放到消息郵箱中。OS_MBOX_FULL :消息郵箱已經(jīng)包含了其他消息,不空。OS_ERR_EVENT_TYPE :pevent 不是指向消息郵箱的指針。調(diào)用者是任務(wù)或中斷,開關(guān)量是調(diào)用者是任務(wù)或中斷,開關(guān)量是OS_MBOX_EN和和OS_MBOX_POST_EN發(fā)送消息說明 如果消息郵箱中已經(jīng)存在消息,返回錯(cuò)誤碼說明消息郵箱已滿。 如果
15、有多個(gè)任務(wù)在等待消息郵箱的消息,最高優(yōu)先級(jí)的任務(wù)將得到這個(gè)消息。 如果等待消息的任務(wù)優(yōu)先級(jí)比發(fā)送消息的任務(wù)優(yōu)先級(jí)高,那么高優(yōu)先級(jí)的任務(wù)將得到消息而恢復(fù)執(zhí)行,也就是說,發(fā)生了一次任務(wù)切換。消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()廣播發(fā)送消息到消息郵箱中OSMboxPostOpt()函數(shù)原型如下:函數(shù)原型如下:INT8U OSMboxPostOpt(OS_EVENT *pevent, void *msg,INT8U opt)OSM
16、boxPostOpt()函數(shù)與函數(shù)與OSMboxPost()函數(shù)比較函數(shù)比較 兩者工作方式相同,都用指針傳遞消息;兩者工作方式相同,都用指針傳遞消息; 不同的是不同的是OSMboxPost()只能給一個(gè)任務(wù)發(fā)送消息,而只能給一個(gè)任務(wù)發(fā)送消息,而OSMboxPostOpt()允許允許將消息廣播給所有的等待消息郵箱消息的任務(wù),且可以仿真將消息廣播給所有的等待消息郵箱消息的任務(wù),且可以仿真OSMboxPost()。 OSMboxPostOpt()函數(shù)的開關(guān)量是函數(shù)的開關(guān)量是OS_MBOX_EN和和OS_MBOX_POST_OPT_EN,調(diào)用者可以是任務(wù),也可以是中斷。調(diào)用者可以是任務(wù),也可以是中斷。
17、 在廣播方式下,函數(shù)的執(zhí)行時(shí)間取決于等待消息郵箱消息的任務(wù)數(shù)量。在廣播方式下,函數(shù)的執(zhí)行時(shí)間取決于等待消息郵箱消息的任務(wù)數(shù)量。 OSMboxpostOpt()函數(shù)有如下三個(gè)參數(shù):函數(shù)有如下三個(gè)參數(shù):(1) pevent:指向即將接收消息的消息郵箱的指針。該指針的值可以在建立:指向即將接收消息的消息郵箱的指針。該指針的值可以在建立該消息郵箱時(shí)得到。該消息郵箱時(shí)得到。(2) msg:即將發(fā)送給任務(wù)的消息。消息是以指針表示的某種數(shù)據(jù)類型的變:即將發(fā)送給任務(wù)的消息。消息是以指針表示的某種數(shù)據(jù)類型的變量,消息的數(shù)據(jù)類型可能會(huì)因具體應(yīng)用的不同而有所差異。不允許傳遞空指針,量,消息的數(shù)據(jù)類型可能會(huì)因具體應(yīng)用
18、的不同而有所差異。不允許傳遞空指針,因?yàn)檫@樣意味著消息郵箱為空。因?yàn)檫@樣意味著消息郵箱為空。(3) opt:定義發(fā)送消息方式的選項(xiàng)。它有兩種形式:定義發(fā)送消息方式的選項(xiàng)。它有兩種形式: 若若opt = OS_POST_OPT_NONE,則定義消息只發(fā)給等待消息的任務(wù)中優(yōu)先,則定義消息只發(fā)給等待消息的任務(wù)中優(yōu)先級(jí)最高的任務(wù);級(jí)最高的任務(wù); 若若opt = OS_POST_OPT_BROADCAST,則讓所有等待郵箱消息的任務(wù)都得,則讓所有等待郵箱消息的任務(wù)都得到消息。到消息。返回值返回值(1) OS_NO_ERR:調(diào)用成功,消息已經(jīng)發(fā)出。:調(diào)用成功,消息已經(jīng)發(fā)出。(2) OS_MBOX_FULL
19、:郵箱中已經(jīng)有消息。:郵箱中已經(jīng)有消息。(3) OS_ERR_EVENT_TYPE:pevent不是指向郵箱的指針。不是指向郵箱的指針。(4) OS_ERR_PEVENT_NULL:pevent是空指針。是空指針。(5) OS_ERR_POST_NULL_PTR:試圖發(fā)送空指針。根據(jù)規(guī):試圖發(fā)送空指針。根據(jù)規(guī)則,空指針無效則,空指針無效。消息郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()無等待地從郵箱中得到一則消息,OSMboxAcce
20、pt()OSMboxAccept()的函數(shù)原型如下:void *OSMboxAccept(OS_EVENT *pevent); 參數(shù):pevent:是指向需要查看的消息郵箱的指針。返回值:如果消息已經(jīng)到達(dá),返回指向該消息的指針;如果消息郵箱沒有消息,返回空指針。范例OS_EVENT *ComMbox;void Task (void *pdata) void *msg; pdata = pdata; for (; ;) msg = OSMboxAccept(ComMbox); /*檢查消息郵箱是否有消息if (msg != (void *)0) 處理消息; else 處理無消息的情況; . 消息
21、郵箱的操作 OSMboxCreate() OSMboxDel() OSMboxPend() OSMboxPost() OSMboxPostOpt() OSMboxAccept() OSMboxQuery()查詢一個(gè)郵箱的狀態(tài),OSMboxQuery()OSMboxQuery()的函數(shù)原型如下:INT8U OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *pdata); 參數(shù): pevent:指向即將接收消息的消息郵箱的指針。 pdata:指向OS_MBOX_DATA數(shù)據(jù)結(jié)構(gòu)的指針, 該數(shù)據(jù)結(jié)構(gòu)包含下述成員: Void *OSMsg;/* 消息郵箱中消息的復(fù)
22、制 */ INT8U OSEventTblOS_EVENT_TBL_SIZE;/*消息郵箱等待隊(duì)列的復(fù)制*/ INT8U OSEventGrp; 返回值: OS_NO_ERR :調(diào)用成功。 OS_ERR_EVENT_TYPE :pevent 不是指向消息郵箱的指針。范例OS_EVENT *RxMbox; /*定義指針/ void Task (void *pdata) OS_MBOXDATA cbox_data; INT8U err; pdata = pdata; for (; ;) err = OSMboxQuery(RxMbox, &cbox_data); if (err = OS_
23、NO_ERR) . /*如果cbox_data.OSMsg為非空指針,說明消息郵箱非空*/ . 舉例本例中有兩個(gè)任務(wù):MyTask和YouTask。任務(wù)YouTask要向任務(wù)MyTask發(fā)送消息/*Test*/#include “includes.h”#define TASK_STK_SIZE 512 /任務(wù)堆棧長(zhǎng)度OS_STK StartTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)OS_STK MyTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)OS_STK YouTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)INT16S key; /用于退出c/o
24、s-II的鍵INT8U y1=0,y2=0; /字符顯示位置 OS_EVENT *msg; /消息郵箱void StartTask(void *data); /聲明起始任務(wù)void MyTask(void *data); /聲明任務(wù)void YouTask(void *data); /聲明任務(wù)/*主函數(shù)*/void main(void) OSInit(); /初始化c/os-II PC_DOSSaveReturn(); /保存DOS環(huán)境 PC_VectSet(uCOS,OSCtxSw); /安裝c/os-II中斷msg=OSMboxCreate(void*)0); OSTaskCreate(S
25、tartTask, /創(chuàng)建任務(wù)StartTask (void *)0, /給任務(wù)傳遞參數(shù) &StartTaskStkTASK_STK_SIZE-1, /設(shè)置任務(wù)堆棧棧頂指針 0); /使任務(wù)的優(yōu)先級(jí)別為0 OSStart(); /啟動(dòng)多任務(wù)管理/*任務(wù)StartTask*/void StartTask(void *pdata)#if OS_CRITICAL_METHOD=3 OS_CPU_SR cpu_sr;#endif pdata=pdata; OS_ENTER_CRITICAL(); PC_VectSet(0 x08,OSTickISR); /安裝時(shí)鐘中斷向量 PC_SetTick
26、Rate(OS_TICKS_PER_SEC); /設(shè)置c/os-II時(shí)鐘頻率 OS_EXIT_CRITICAL(); OSStatInit(); /初始化統(tǒng)計(jì)任務(wù) OSTaskCreate(MyTask, (void *)0, &MyTaskStkTASK_STK_SIZE-1, 1); OSTaskCreate(YouTask, (void *)0, &YouTaskStkTASK_STK_SIZE-1, 2); for( ; ; ) /如果按下ESC鍵,則退出c/os-II if(PC_GetKey(&key)=TRUE) if(key=0 x1B) PC_DOSR
27、eturn(); OSTimeDlyHMSM(0,0,3,0); /等待3s /*任務(wù)MyTask*/void MyTask(void *pdata)#if OS_CRITICAL_METHOD=3 OS_CPU_SR cpu_sr;#endif pdata=pdata; void *msg_My; INT8U err; for( ; ; ) PC_DispStr(5,+y1, “MyTask”, DISP_BGND_BLACK+DISP_FGND_WHITE); msg_My=OSMboxPend(msg,0,err); if(err=OS_NO_ERR) PC_DispStr(15,y1,
28、 msg_My, DISP_BGND_BLACK+DISP_FGND_WHITE); OSTimeDlyHMSM(0,0,1,0); /等待1s/*任務(wù)YouTask*/void YouTask(void *pdata)#if OS_CRITICAL_METHOD=3 OS_CPU_SR cpu_sr;#endif char *s=“YouTask發(fā)送的消息”; /定義消息 INT8U err; pdata=pdata; for( ; ; ) PC_DispStr(40,+y2, “YouTask”, DISP_BGND_BLACK+DISP_FGND_WHITE); err=OSMboxPo
29、st(msg,(void*)s);OSTimeDlyHMSM(0,0,2,0); /等待2s /*END*/再看一個(gè)例子設(shè)計(jì)一個(gè)應(yīng)用程序,該程序有兩個(gè)任務(wù)設(shè)計(jì)一個(gè)應(yīng)用程序,該程序有兩個(gè)任務(wù)MyTask和和YouTask。在任務(wù)。在任務(wù)MyTask中用一個(gè)中用一個(gè)變量變量Times記錄任務(wù)記錄任務(wù)MyTask的運(yùn)行次數(shù),并的運(yùn)行次數(shù),并將其作為消息用郵箱將其作為消息用郵箱Str_Box發(fā)給任務(wù)發(fā)給任務(wù)YouTask且由任務(wù)且由任務(wù)YouTask顯示出來。顯示出來。/*Test*/#include “includes.h”#define TASK_STK_SIZE 512 /任務(wù)堆棧長(zhǎng)度OS_ST
30、K StartTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)OS_STK MyTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)OS_STK YouTaskStkTASK_STK_SIZE; /定義任務(wù)堆棧區(qū)INT16S key; /用于退出的鍵char *s; char *ss;INT8U err; INT8U y=0; /字符顯示位置INT32U Times=0;OS_EVENT *Str_Box; /定義事件控制塊指針void StartTask(void *data); /聲明起始任務(wù)void MyTask(void *data); /聲明任務(wù)void YouTask(void *data); /聲明任務(wù)/*主函數(shù)*/void main(void) OSInit(); /初始化c/os-II Str_Box=OSMboxCreate(void *)0); /創(chuàng)建消息郵箱OSTaskCreate(StartTask, /創(chuàng)建任務(wù)StartTask (void *)0, /給任務(wù)傳遞參數(shù) &StartTaskStkTASK_STK_SIZE-1, /設(shè)置任務(wù)堆棧棧頂指針 0); /使任務(wù)的優(yōu)先級(jí)別為0 OSStart(); /啟動(dòng)多任務(wù)管理/*任務(wù)Sta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設(shè)合同范本(2篇)
- 二零二五年度新型節(jié)能門窗研發(fā)生產(chǎn)合同4篇
- 部編版八年級(jí)語文上冊(cè)《白楊禮贊》教學(xué)設(shè)計(jì)(共2課時(shí))
- 銀行課程設(shè)計(jì)報(bào)告范文
- pvc管道施工方案
- 2024年學(xué)校防溺水教案
- 2025年度個(gè)人公共安全設(shè)施承包合同模板4篇
- 2025年校園基礎(chǔ)設(shè)施改造物業(yè)管理服務(wù)合同3篇
- 二零二五年度美容美發(fā)店員工薪酬及福利合同4篇
- 2025年度個(gè)人二手房交易房屋附屬設(shè)施設(shè)備交接合同4篇
- 研發(fā)管理咨詢項(xiàng)目建議書
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)集體備課記載表
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長(zhǎng)灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 22S702 室外排水設(shè)施設(shè)計(jì)與施工-鋼筋混凝土化糞池
- 2013日產(chǎn)天籟全電路圖維修手冊(cè)45車身控制系統(tǒng)
- 排水管道附屬構(gòu)筑物
評(píng)論
0/150
提交評(píng)論