版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)RTX51實(shí)時(shí)操作系統(tǒng)應(yīng)用示例μC-OS/II其它Rtx51-tiny環(huán)境下的編程RTX51是支持MCS-51系列處理器的多任務(wù)實(shí)時(shí)操作系統(tǒng)。RTX51簡化了復(fù)雜、對執(zhí)行時(shí)點(diǎn)敏感的任務(wù)的編程。RTX51與中斷并行工作。任務(wù)之間通過郵箱傳遞信號或消息。標(biāo)準(zhǔn)的C51只作極少的擴(kuò)展,以指定任務(wù)ID和優(yōu)先級。#include<rtx51tny.h>#include<W77C32.h>voidMainJob(void)_task_0{ os_create_task(1); //task1: os_create_task(2); //task2: os_create_task(3); //task3: os_delete_task(0);}程序示例voidm_Trax(void)_task_2{ EA=0; Ini_COM1(); //3RS-485 EA=1; while(1) { //Yourcode }}一個(gè)任務(wù)的示例#include<rtx51tny.h>intcounter0;intcounter1;voidjob0(void)_task_0{
os_create(1); //marktask1asready while(1) { //loopforever counter0++;//updatethecounter }}voidjob1(void)_task_1{ while(1) { //loopforever counter1++;//updatethecounter }}框架程序#include<rtx51tny.h>intcounter0;intcounter1;voidjob0(void)_task_0{ os_create(1); //marktask1asready while(1) { //loopforever counter0++; //updatethecounter
os_wait(K_TMO,3); //pausefor3clockticks } }voidjob1(void)_task_1{ while(1) { //loopforever counter1++; //updatethecounter
os_wait(K_TMO,5); //pausefor5clockticks } }#include<rtx51tny.h>intcounter0;intcounter1;voidjob0(void)_task_0{ os_create(1); //marktask1asready while(1) { if(++counter0==0) //updatethecounter os_send_signal(1); //signaltask1 }}voidjob1(void)_task_1{ while(1) {
os_wait(K_SIG,0,0); //waitforasignal counter1++; //updatethecounter }}voidjob1(void)_task_1_priority_1{ while(1) { os_wait(K_SIG,0,0); //waitforasignal counter1++; //updatethecounter }}Theprioritylevelcanbe0through3.0isthelowest(bydefault)3isthehighestPriority優(yōu)先級(rtx51-full)RTX51的WAIT函數(shù)支持以下事件:·Timeout:越時(shí),正在運(yùn)行的任務(wù)被掛起一定的時(shí)間片?!nterval:正在運(yùn)行的任務(wù)被掛起一個(gè)時(shí)間片。
·Signal:任務(wù)間傳遞的信號。EventsofRtx51-tiny函數(shù)功能周期數(shù)os_create_task將一個(gè)任務(wù)加入執(zhí)行隊(duì)列302os_delete_task將一個(gè)任務(wù)移出執(zhí)行隊(duì)列172os_send_signal從任務(wù)中發(fā)送信號408withtaskswitch.316withfasttaskswitch71withouttaskswitchos_clear_signal刪除已發(fā)送信號57isr_send_signal從中斷發(fā)送向任務(wù)發(fā)送信號46os_wait等待一個(gè)時(shí)間68forpendingsignal160forpendingmessageos_create_taskos_delete_taskcharos_create_task
(unsignedchartask_id);ReturnValue:0 ifthetaskwassuccessfullystarted.-1 ifthetaskcouldnotbestarted#include<rtx51tny.h>charos_delete_task
(unsignedchartask_id);ReturnValue:
0ifthetaskwassuccessfullystoppedanddeleted.-1indicatesthespecifiedtaskdoesnotexistorhadnotbeenstarted.os_send_signalos_clear_signalcharos_send_signal
(unsignedchartask_id);如果指定任務(wù)已在等待一個(gè)信號,該函數(shù)調(diào)用使任務(wù)進(jìn)入執(zhí)行隊(duì)列。否則,信號被存儲為該任務(wù)的標(biāo)志。ReturnValue:
0ifsuccessfuland-1ifthespecifiedtaskdoesnotexist.charos_clear_signal
(unsignedchartask_id);清除任務(wù)task_id的信號標(biāo)志.ReturnValue:
0ifthesignalflagwassuccessfullycleared.-1isreturnedifthespecifiedtaskdoesnotexist.#include<rtx51tny.h>charisr_send_signal
(unsignedchartask_id);從中斷向任務(wù)task_id發(fā)信號,若指定任務(wù)已經(jīng)在等改信號,該系統(tǒng)調(diào)用將使對應(yīng)任務(wù)進(jìn)入就緒狀態(tài).否則,信號被存儲到對應(yīng)任務(wù)的標(biāo)志中.ReturnValue:
0ifsuccessful-1ifthespecifiedtaskdoesnotexist.isr_send_signal#include<rtx51tny.h>os_wait#include<rtx51tny.h>charos_wait
(unsignedcharevent_sel,/*eventstowaitfor*/unsignedcharticks,/*timertickstowait*/unsignedintdummy);/*unusedargument*/MaybeORedos_wait1charos_wait1
(unsignedcharevent_sel);Theos_wait1functionisasubsetoftheos_waitfunction.Theevent_selargumentcanhaveonlythevalueK_SIGwhichwillwaitforasignal.#include<rtx51tny.h>os_wait2Summary:#include<rtx51tny.h>charos_wait2
(unsignedcharevent_sel,//eventstowaitforunsignedcharticks);//timertickstowaitCompareos_wait2withos_wait,onlythatthirdarguement“unsignedintdummy”
ofthelaterfunctionisommitted!嵌入式操作系統(tǒng)體系結(jié)構(gòu)嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)存管理外圍設(shè)備管理多任務(wù)管理微內(nèi)核、三項(xiàng)功能進(jìn)程的概念進(jìn)程具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動。第一,進(jìn)程是一個(gè)實(shí)體,有自己的地址空間,可以申請和擁有系統(tǒng)資源;第二,進(jìn)程是一個(gè)“執(zhí)行中的程序”,是一個(gè)動態(tài)的概念,是一個(gè)活動的實(shí)體。當(dāng)前活動通過程序計(jì)數(shù)器的值和一組寄存器的當(dāng)前內(nèi)容來表示。程序是包含代碼和初始化數(shù)據(jù),是一個(gè)沒有生命的實(shí)體,只有處理器賦予程序生命時(shí),它才能成為一個(gè)活動的實(shí)體。進(jìn)程的特征動態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,進(jìn)程是動態(tài)產(chǎn)生,動態(tài)消亡的。并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)結(jié)構(gòu)特征:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。進(jìn)程與線程的關(guān)系在一個(gè)進(jìn)程中可以包含若干個(gè)線程,它們可以利用進(jìn)程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。由于線程比進(jìn)程更小,基本上不擁有系統(tǒng)資源,故對它的調(diào)度所付出的開銷就會小得多,能更高效的提高系統(tǒng)內(nèi)多個(gè)程序間并發(fā)執(zhí)行的程度。因而近年來推出的通用操作系統(tǒng)都引入了線程,以便進(jìn)一步提高系統(tǒng)的并發(fā)性,并把它視為現(xiàn)代操作系統(tǒng)的一個(gè)重要指標(biāo)。μC/OS-II操作系統(tǒng)1、C/OS—MicroControllerOS,微控制器操作系統(tǒng)2、C/OS簡介美國人JeanLabrosse1992年完成應(yīng)用面覆蓋了諸多領(lǐng)域,如照相機(jī)、醫(yī)療器械、音響設(shè)備、發(fā)動機(jī)控制、高速公路電話系統(tǒng)、自動提款機(jī)等1998年C/OS-II2000年,得到美國航空管理局(FAA)的認(rèn)證,可以用于飛行器中目前的版本C/OS-IIV2.82C/OS–III(帶MPU)網(wǎng)站www.ucos-II.com()6公開源代碼可移植性(Portable)
源碼可移植性很強(qiáng)。微處理器硬件相關(guān)的匯編語言部分已經(jīng)壓到最低限度??梢栽诮^大多數(shù)8/16/32/64位微處理器、微控制器、數(shù)字信號處理器(DSP)上運(yùn)行??晒袒≧OMable)
C/OS-II是為嵌入式應(yīng)用而設(shè)計(jì)的,可固化(C編譯、連接、下載和固化),C/OS-II可以嵌入到產(chǎn)品中成為產(chǎn)品的一部分。可裁剪(Scalable)
可以只使用很少的系統(tǒng)服務(wù),也可以使用幾乎所有的功能;
這種可剪裁性是靠條件編譯實(shí)現(xiàn)的。減少產(chǎn)品中的
C/OS-II所需的存儲器空間(RAM和ROM)。C/OS的性能特點(diǎn)(一)占先式(Preemptive)多任務(wù)64/256任務(wù),保留8個(gè)給系統(tǒng)。應(yīng)用程序最多56個(gè)可確定性函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有可確定性任務(wù)棧每個(gè)任務(wù)有單獨(dú)的棧,可大可小,壓低對RAM的需求。系統(tǒng)服務(wù)
C/OS-II提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號量、塊大小固定的內(nèi)存的申請與釋放、時(shí)間相關(guān)函數(shù)等。中斷管理
中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級更高的任務(wù)被該中斷喚醒,則高優(yōu)先級的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá)255層。穩(wěn)定性與可靠性C/OS的性能特點(diǎn)(二)μC/OS-II操作系統(tǒng)任務(wù)和任務(wù)狀態(tài)任務(wù)控制塊任務(wù)就緒表任務(wù)的同步與通信事件事件控制塊任務(wù)切換任務(wù)解決復(fù)雜問題的“分而治之”的方法大的復(fù)雜任務(wù)劃分為一個(gè)個(gè)簡單的任務(wù)解決上述一個(gè)個(gè)簡單問題的程序?qū)嶓w,稱為任務(wù)對小的任務(wù)的運(yùn)行進(jìn)行管理,就是操作系統(tǒng)的工作。uC/OS-II的任務(wù)相當(dāng)于Windows中的線程任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)
多任務(wù)共享同一個(gè)CPU。所以在具體的時(shí)段,根據(jù)任務(wù)是否占有CPU,以及是否處于等待、被中斷等情況,任務(wù)處于下列5種狀態(tài)之一。任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)任務(wù)只是以代碼的形式駐留在程序空間(ROM中RAM),任務(wù)沒有被任務(wù)控制塊,或被剝奪了任務(wù)控制塊任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)系統(tǒng)為任務(wù)配備了任務(wù)控制塊,且在任務(wù)就緒表進(jìn)行了就緒登記,任務(wù)具備運(yùn)行的充分條件。任務(wù)的CPU使用權(quán)被剝奪任務(wù)被創(chuàng)建獲得任務(wù)控制塊等待的條件滿足任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)處于就緒狀態(tài)的任務(wù),經(jīng)調(diào)度器判斷獲得了CPU的使用權(quán)。任何時(shí)候只能有一個(gè)任務(wù)處于運(yùn)行狀態(tài)。任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)正在運(yùn)行的任務(wù)需要等待一段時(shí)間,或等待一個(gè)事件發(fā)生(條件),該任務(wù)會把CPU的使用權(quán)讓出;調(diào)度器再從就緒隊(duì)列中選優(yōu)先級最高的任務(wù),并使其進(jìn)入運(yùn)行狀態(tài)。如果找不到一個(gè)就緒的任務(wù),就運(yùn)行空閑任務(wù)。任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)睡眠狀態(tài):任務(wù)只是以代碼的形式駐留在程序空間(ROM中RAM)任務(wù)沒有被任務(wù)控制塊,或被剝奪了任務(wù)控制塊任務(wù)狀態(tài)的轉(zhuǎn)換等待狀態(tài)睡眠狀態(tài)中斷服務(wù)狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)任務(wù)的組成任務(wù)控制塊任務(wù)的代碼任務(wù)堆棧任務(wù)控制塊的其它信息是一個(gè)數(shù)據(jù)結(jié)構(gòu),包含值OS_STAT_RDY 就緒狀態(tài)OS_STAT_SEM 等待信號量狀態(tài)OS_STAT_MBOX 消息郵箱狀態(tài)OS_STAT_Q 等待消息隊(duì)列狀態(tài)OS_STAT_SUSPEND 被掛起的狀態(tài)OS_STAT_MUTEX 等待互斥型信號量狀態(tài)全部任務(wù)控制塊構(gòu)成任務(wù)控制鏈表,可以增刪任務(wù)鏈表鏈表結(jié)構(gòu)維護(hù),即創(chuàng)建或刪除一個(gè)任務(wù)。任務(wù)的切換被中止任務(wù)的斷點(diǎn)指針保存到任務(wù)堆棧①CPU寄存器內(nèi)容保存到任務(wù)堆棧①被中止的任務(wù)的堆棧指針的當(dāng)前值保存到對應(yīng)的控制塊中②獲得待運(yùn)行任務(wù)的控制塊獲得待運(yùn)行任務(wù)的堆棧指針③獲得待運(yùn)行任務(wù)通用寄存器的值④CPU獲得待運(yùn)行任務(wù)的斷點(diǎn)指針④任務(wù)就緒表OSRdyTbl[],最多8個(gè)字節(jié)任務(wù)優(yōu)先級(任務(wù)標(biāo)識)任務(wù)的同步與通信必要性進(jìn)程的各個(gè)任務(wù)必須有效合作;必須無沖突地訪問共享資源;相互依賴、或制約內(nèi)容事件控制塊信號量及其使用消息隊(duì)列及其使用事件信號量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2共享資源01請求和發(fā)送信號量事件信號量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2消息緩沖區(qū)消息郵箱傳遞數(shù)據(jù)指針傳遞一個(gè)數(shù)據(jù)的方法。事件信號量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2消息緩沖區(qū)1消息隊(duì)列利用消息隊(duì)列通信指針。。。消息緩沖區(qū)2消息緩沖區(qū)n事件的等待任務(wù)表對于每個(gè)事件,都建立了一個(gè)表。從表中可以獲悉所有等待該事件的任務(wù)。事件控制塊ECB結(jié)構(gòu)μC/OS-II將描述事件的結(jié)構(gòu)統(tǒng)一起來:typedefstruct{ INT8U OSEventType; //事件類型 INT16UOSEventCnt; //信號量計(jì)數(shù) void*OSEvetPrt; //消息或消息隊(duì)列指針 INT8UOSEventGrp; //等待事件的任務(wù)組 INT8UOSEventTbl[8]; //任務(wù)等待表}OS_EVENT;任務(wù)等待表可以小于8字節(jié),具體可根據(jù)任務(wù)數(shù)確定事件控制塊ECB結(jié)構(gòu)事件類型的值及其含義OS_EVENT_TYPE_SEM 表明事件是信號量OS_EVENT_TYPE_MUTEX表明事件是互斥信號量OS_EVENT_TYPE_MBOX 表明事件是消息郵箱OS_EVENT_TYPE_Q 表明事件是消息隊(duì)列OS_EVENT_TYPE_UNUSED 空事件控制塊C/OS-II的文件結(jié)構(gòu)定義任務(wù)堆棧#defineTASK_STK_SIZE 64
OS_STKTaskTimStk[TASK_STK_SIZE];OS_STKTaskLcdStk[TASK_STK_SIZE];OS_STKTaskKeyStk[TASK_STK_SIZE];OS_STKTaskUARTStk[TASK_STK_SIZE];定義任務(wù)函數(shù)voidTask_Tim(void*pdata);voidTask_uart(void*pdata);externvoidTask_KeyIn(void*pdata);externvoidTask_LCD(void*pdata);程序任務(wù)的創(chuàng)建intmain(void){OSInit();
SecTick=OSSemCreate(0);SendMessLCD=OSSemCreate(0);
OSTaskCreate(Task_Tim,(void*)0,&TaskTimStk[TASK_STK_SIZE-1],0);OSTaskCreate(Task_LCD,(void*)0,&TaskLcdStk[TASK_STK_SIZE-1],10);OSTaskCreate(Task_KeyIn,(void*)0,&TaskKeyStk[TASK_STK_SIZE-1],2);OSTaskCreate(Task_uart,(void*)0,&TaskUARTStk[TASK_STK_SIZE-1],4);OSStart();
return0;}關(guān)于消息OS_EVENT*SecTick;OS_EVENT*SendMessLCD;SecTick=OSSemCreate(0);SendMessLCD=OSSemCreate(0);OSSemPost(SecTick);//PostaMessageOSSemPost(SendMessLCD);//PostaMessageOSSemPend(SecTick,500,&err);OSSemPend(SendMessLCD,400,&err);RTOS追求的是調(diào)度的實(shí)時(shí)性、響應(yīng)時(shí)間的可確定性、系統(tǒng)的高度可靠性。評價(jià)一個(gè)實(shí)時(shí)操作系統(tǒng)一般可從任務(wù)調(diào)度、內(nèi)存管理、任務(wù)通訊、內(nèi)存開銷、任務(wù)切換時(shí)間、最大中斷禁止時(shí)間等幾個(gè)方面來衡量。實(shí)時(shí)操作系統(tǒng)中的幾個(gè)重要的評價(jià)指標(biāo)1)任務(wù)調(diào)度機(jī)制:RTOS的實(shí)時(shí)性和多任務(wù)能力在很大程度上取決于它的任務(wù)調(diào)度機(jī)制。從調(diào)度策略上來講,分優(yōu)先級調(diào)度策略和時(shí)間片輪轉(zhuǎn)調(diào)度策略;從調(diào)度方式上來講,分可搶占、不可搶占、選擇可搶占調(diào)度方式;從時(shí)間片來看,分固定與可變時(shí)間片輪轉(zhuǎn)。在大多數(shù)商用的實(shí)時(shí)系統(tǒng)中,為了讓操作系統(tǒng)能夠在有突發(fā)事件時(shí),迅速取得系統(tǒng)控制權(quán)以便對事件作出反應(yīng),所以大都提供了“搶占式任務(wù)調(diào)度”的功能,也就是操作系統(tǒng)有權(quán)主動終止應(yīng)用程序的執(zhí)行,并且將執(zhí)行權(quán)交給擁有最高優(yōu)先級的任務(wù)。以下是兩種可以作出精確描述實(shí)時(shí)應(yīng)用的時(shí)間測定正確性的著名算法:速度單調(diào):在工作量有一組定期任務(wù)組成的應(yīng)用中,每個(gè)任務(wù)的執(zhí)行時(shí)間定長,這種速度單調(diào)調(diào)度算法能夠保證其可調(diào)度性。在系統(tǒng)中,最高頻的任務(wù)具有最高的優(yōu)先級。時(shí)限驅(qū)動:對于一個(gè)由定期和不定期任務(wù)混合或者任務(wù)的執(zhí)行時(shí)長隨著時(shí)間變化的應(yīng)用,可以使用時(shí)限驅(qū)動算法。這個(gè)算法的準(zhǔn)則是下一個(gè)要安排執(zhí)行的任務(wù)是一個(gè)時(shí)限最早的任務(wù),該任務(wù)完成之后,下一個(gè)時(shí)限最早的任務(wù)被選擇調(diào)度和執(zhí)行。2)內(nèi)存管理:實(shí)時(shí)操作系統(tǒng)內(nèi)存管理模式可以分為實(shí)模式與保護(hù)模式。目前主流的實(shí)時(shí)操作系統(tǒng)一般都可以提供兩種模式,讓用戶根據(jù)應(yīng)用自舉選擇。3)最小內(nèi)存開銷:由于在多數(shù)嵌入式系統(tǒng)中內(nèi)存配置一般都不大,在這有限的內(nèi)存空間里不僅要裝載實(shí)時(shí)操作系統(tǒng),還要裝載用戶程序。因此,在RTOS的設(shè)計(jì)中,其占用內(nèi)存大小是一個(gè)很重要的指標(biāo),這是RTOS設(shè)計(jì)與其它操作系統(tǒng)設(shè)計(jì)的明顯區(qū)別之一。4)中斷禁止時(shí)間與中斷延遲事件:當(dāng)RTOS運(yùn)行在核心態(tài)或執(zhí)行某些系統(tǒng)調(diào)用的時(shí)候,是不會因?yàn)橥獠恐袛嗟牡絹矶袛鄨?zhí)行的。只有當(dāng)RTOS重新回到用戶態(tài)時(shí)才響應(yīng)外部中斷請求,這一過程所需的最大時(shí)間就是中斷禁止時(shí)間。中斷延時(shí)時(shí)間是指系統(tǒng)確認(rèn)中斷開始直到執(zhí)行中斷服務(wù)程序的第一條指令為止整個(gè)處理過程所需要的時(shí)間。實(shí)時(shí)操作系統(tǒng)的中斷延時(shí)時(shí)間由下列三個(gè)因素決定:----處理器硬件電路的延遲時(shí)間,通常這個(gè)時(shí)間可以忽略。----實(shí)時(shí)操作系統(tǒng)處理中斷并將控制權(quán)轉(zhuǎn)移給相關(guān)處理程序所需要的時(shí)間。----實(shí)時(shí)操作系統(tǒng)的中斷禁止時(shí)間。為了縮短系統(tǒng)對于中斷請求的響應(yīng)時(shí)間----中斷延遲時(shí)間,大多數(shù)商用實(shí)時(shí)操作系統(tǒng)都采用了“可中斷式”的核心程序,當(dāng)然也有相當(dāng)多的實(shí)時(shí)操作系統(tǒng),例如實(shí)時(shí)Linux,采用非搶占式的核心程序。5)任務(wù)切換時(shí)間:當(dāng)由于某種原因使一個(gè)任務(wù)退出運(yùn)行時(shí),RTOS保存它的運(yùn)行現(xiàn)場信息、插入相應(yīng)隊(duì)列、并依據(jù)一定的調(diào)度算法重新選擇一個(gè)新任務(wù)使之投入運(yùn)行,這一過程所需時(shí)間稱為任務(wù)切換時(shí)間。任務(wù)切換時(shí)間是實(shí)時(shí)操作系統(tǒng)將控制權(quán)從一個(gè)任務(wù)的執(zhí)行中取回,然后交給另外一個(gè)任務(wù)所需要的時(shí)間。它包括保存目前正在執(zhí)行任務(wù)的現(xiàn)場信息所需要的時(shí)間、RTOS決定下一個(gè)調(diào)度任務(wù)所需的調(diào)度時(shí)間以及RTOS把另外一個(gè)任務(wù)調(diào)入系統(tǒng)執(zhí)行所需要的時(shí)間。最大中斷禁止時(shí)間和任務(wù)切換時(shí)間是評價(jià)一個(gè)RTOS實(shí)時(shí)性最重要的兩個(gè)技術(shù)指標(biāo)。RTOS市場和技術(shù)發(fā)展的變化易于移植的RTOS結(jié)構(gòu)支持更多種的處理器支持Unix/POSIX兼容的趨勢明顯內(nèi)核可以裁剪以支持RTOS適應(yīng)小系統(tǒng)和大系統(tǒng)的各種應(yīng)用RTOS與工具的IDE緊密結(jié)合出現(xiàn)越來越多的銷售源代碼和一次性版稅的RTOS廠家RTOS廠家除提供的文件,圖形和TCP/IP外,與特定應(yīng)用的結(jié)合更多,如互連網(wǎng)絡(luò),通信一、WindRiver-ISI的結(jié)合形成RTOS市場的‘航母’,但他的競爭對手紛紛聲稱他們有了更多的機(jī)會(因?yàn)閃indRiver放棄PSOS)50%(北美)的用戶依然在使用自己編寫的RTOS,他們將走到那里?后PC時(shí)代更多的數(shù)字化產(chǎn)品將使用RTOS或嵌人OS,這里就產(chǎn)生了WinCE,PalmOS,JavaOS,Epoc等‘軟’實(shí)時(shí)的嵌人OS二、電訊和控制系統(tǒng)核心設(shè)備要求RTOS的高可靠性半導(dǎo)體廠商對RTOS和工具的需求強(qiáng)烈,商業(yè)性的合作方式以由外包,到今天收購工具公司和軟件協(xié)議公司如Motorola收購Metrowerks并投資Lineo,ARC收購Metaware,ARM收購Allant,Intel投資Montvista嵌人式Linux已經(jīng)在消費(fèi)電子等非強(qiáng)實(shí)時(shí)領(lǐng)域進(jìn)入RTOS的市場并得到了相當(dāng)廣泛的半導(dǎo)體廠商如Intel三、RTOS市場將可能劃分為三段系統(tǒng)級,板極,SOC級嵌人式Linux依靠POSIX兼容,高可靠源碼開放資源豐富的優(yōu)勢將進(jìn)入傳統(tǒng)Unix和NT占據(jù)的系統(tǒng)級市場(如CPCI,HA/HotSwap)板級依然是傳統(tǒng)RTOS的天下主要將集中在航空航天,軍事應(yīng)用和傳統(tǒng)電訊市場SOC級是新生代較逐的領(lǐng)域,嵌人處理器,消費(fèi)電子產(chǎn)品,互連網(wǎng)絡(luò)通信設(shè)備都將是市場變化最快之處§4.12RTOS---未來?一、是否會出現(xiàn)標(biāo)準(zhǔn)RTOS?是否會出現(xiàn)某種行業(yè)標(biāo)準(zhǔn)RTOS?在某段時(shí)間內(nèi)可能,如目前VxWork在數(shù)據(jù)通信和WinCE在掌上電腦和高檔PDA(亞洲),手機(jī)RTOS的EPOC是否所有的RTOS將都可以出售源碼?是否RTOS將向Linux一樣‘免費(fèi)’但服務(wù)收費(fèi)?OS市場的總體趨勢是這樣的,但依然需要一個(gè)過程二、目前絕大多數(shù)是國外產(chǎn)品如VxWork,PSOS,VRTX,Nucleus,WinCE,QNX,CMX..其中前5位占據(jù)國內(nèi)絕大多數(shù)的市場以業(yè)界傳統(tǒng)的推測(中國占全球1-2%分額)中國RTOS市場規(guī)模還很小很少有人愿意冒風(fēng)險(xiǎn)嘗試一種新的RTOS國內(nèi)目前RTOS的版稅意識較低限制了RTOS的發(fā)展(國外某RTOS廠家收入的30%來自版稅)§4.14中國的RTOS市場選擇協(xié)議堆棧協(xié)議堆棧的內(nèi)存要求。所需硬件資源。協(xié)議堆棧施加在CPU上的開銷。RTOS集成的協(xié)議堆棧嵌入式系統(tǒng)Internet接入選擇網(wǎng)絡(luò)技術(shù)ClientServerPort使用標(biāo)準(zhǔn)的應(yīng)用協(xié)議網(wǎng)絡(luò)應(yīng)用層的標(biāo)準(zhǔn)協(xié)議可以使你借助一些現(xiàn)成的且容易獲得的標(biāo)準(zhǔn)工具軟件。例如,通過使用HTML和HTTP這類標(biāo)準(zhǔn)的應(yīng)用數(shù)據(jù)格式和協(xié)議,就沒有必要在每個(gè)系統(tǒng)上安裝一個(gè)專門用于訪問嵌入系統(tǒng)的瀏覽器。網(wǎng)絡(luò)體系結(jié)構(gòu)網(wǎng)絡(luò)體系結(jié)構(gòu)是指一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的模塊格式和設(shè)計(jì)結(jié)構(gòu)。最重要的部分就是設(shè)計(jì)不同網(wǎng)絡(luò)層使用的協(xié)議,因此網(wǎng)絡(luò)體系結(jié)構(gòu)常常被稱為協(xié)議堆?;騾f(xié)議集。NetBIOS,IPX/SPX,AppleTalk,TCP/IP,OSITCP/IP協(xié)議的優(yōu)點(diǎn):免費(fèi)標(biāo)準(zhǔn)堅(jiān)實(shí)穩(wěn)定異構(gòu)兼容基礎(chǔ)設(shè)施堆棧小巧DS80C400是51系列,集成了TCP/IP,有一個(gè)類似于uC/OS-II的操作系統(tǒng)(Rtx51-tiny?)帶Demo板,并且可以下載它的開發(fā)環(huán)境PIC系列也有各種類似的芯片,可用于開發(fā)具有聯(lián)接Internet功能的嵌入式系統(tǒng)bind()Well-knownportlisten()accept()read()write()close()eof()?write()read()connect()socket()socket()close()ClientServer基于socket的編程:與Web連接Web的基本思想是將計(jì)算機(jī)網(wǎng)絡(luò)與超文本媒體聯(lián)合起來創(chuàng)造一個(gè)強(qiáng)有力的且容易使用的全球信息系統(tǒng)。HTTP:超文本傳輸協(xié)議,作為Web瀏覽器和服務(wù)器請求和傳送資源或網(wǎng)頁的協(xié)議。HTML:超文本鏈接標(biāo)示語言,是Web的交流語言。URL:統(tǒng)一的資源定位表示法,將節(jié)點(diǎn)名、單個(gè)資源名以及用于提取此資源的協(xié)議名合成一個(gè)唯一的名字。嵌入應(yīng)用的HTTPHTTP提供了一個(gè)雙向傳輸文件的簡單、標(biāo)準(zhǔn)的方法。你可以下載文件和程序到嵌入設(shè)備中,也可以從嵌入系統(tǒng)中上傳數(shù)據(jù),在這兩個(gè)方向上傳送的文件都可以包括任何種類的數(shù)據(jù)。能安排和傳送嵌入網(wǎng)絡(luò)服務(wù)器中的HTML文檔的功能會給嵌入應(yīng)用極大的好處。如Web瀏覽器和標(biāo)準(zhǔn)的HTML格式界面就為嵌入式設(shè)備方便地實(shí)現(xiàn)網(wǎng)絡(luò)用戶界面提供了很好的手段。用Web瀏覽器可以從嵌入系統(tǒng)收集數(shù)據(jù);下載新數(shù)據(jù)或新軟件給嵌入系統(tǒng);重新配置嵌入系統(tǒng)等。嵌入程序中的HTMLHTML是一個(gè)實(shí)現(xiàn)交互式網(wǎng)絡(luò)應(yīng)用程序的全球化規(guī)范語言,使其成為迅速、簡單并可靠地為嵌入系統(tǒng)配備按form方式驅(qū)動的設(shè)備接口的一個(gè)自然選擇。在嵌入系統(tǒng)界面設(shè)計(jì)中使用
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 思修教學(xué)課程設(shè)計(jì)
- 私教課程設(shè)計(jì)理念
- 物流課程設(shè)計(jì)卡紙圖
- 山地旅館課程設(shè)計(jì)
- 測繪工程課程設(shè)計(jì)
- 白川水電站課程設(shè)計(jì)
- 種植棉花培訓(xùn)課程設(shè)計(jì)
- 機(jī)場地面服務(wù)合同
- 智慧體育設(shè)施研發(fā)合作合同
- 水穩(wěn)承包合同
- 部編版二年級語文上冊第二單元大單元教學(xué)設(shè)計(jì)
- 胃癌健康宣教講解課件
- 建筑工程類就業(yè)分析報(bào)告
- 運(yùn)動營養(yǎng)學(xué)(第三版) 第7章 運(yùn)動營養(yǎng)食品與功能性食品
- 妊娠劇吐伴酮癥護(hù)理查房課件
- 醫(yī)療碳中和方案
- 期末沖刺學(xué)生總動員主題班會課件啟航千帆競同心戰(zhàn)期末
- 北師大版六年級下冊數(shù)學(xué)《總復(fù)習(xí)》教學(xué)設(shè)計(jì)
- 《我們不亂扔》說課課件(獲獎(jiǎng)?wù)n件)
- 急腹癥的診斷與規(guī)范化治療
- 200#溶劑油安全技術(shù)說明書
評論
0/150
提交評論