




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(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簡(jiǎn)化了復(fù)雜、對(duì)執(zhí)行時(shí)點(diǎn)敏感的任務(wù)的編程。RTX51與中斷并行工作。任務(wù)之間通過(guò)郵箱傳遞信號(hào)或消息。標(biāo)準(zhǔn)的C51只作極少的擴(kuò)展,以指定任務(wù)ID和優(yōu)先級(jí)。#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)先級(jí)(rtx51-full)RTX51的WAIT函數(shù)支持以下事件:·Timeout:越時(shí),正在運(yùn)行的任務(wù)被掛起一定的時(shí)間片。·Interval:正在運(yùn)行的任務(wù)被掛起一個(gè)時(shí)間片。
·Signal:任務(wù)間傳遞的信號(hào)。EventsofRtx51-tiny函數(shù)功能周期數(shù)os_create_task將一個(gè)任務(wù)加入執(zhí)行隊(duì)列302os_delete_task將一個(gè)任務(wù)移出執(zhí)行隊(duì)列172os_send_signal從任務(wù)中發(fā)送信號(hào)408withtaskswitch.316withfasttaskswitch71withouttaskswitchos_clear_signal刪除已發(fā)送信號(hào)57isr_send_signal從中斷發(fā)送向任務(wù)發(fā)送信號(hào)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è)信號(hào),該函數(shù)調(diào)用使任務(wù)進(jìn)入執(zhí)行隊(duì)列。否則,信號(hào)被存儲(chǔ)為該任務(wù)的標(biāo)志。ReturnValue:
0ifsuccessfuland-1ifthespecifiedtaskdoesnotexist.charos_clear_signal
(unsignedchartask_id);清除任務(wù)task_id的信號(hào)標(biāo)志.ReturnValue:
0ifthesignalflagwassuccessfullycleared.-1isreturnedifthespecifiedtaskdoesnotexist.#include<rtx51tny.h>charisr_send_signal
(unsignedchartask_id);從中斷向任務(wù)task_id發(fā)信號(hào),若指定任務(wù)已經(jīng)在等改信號(hào),該系統(tǒng)調(diào)用將使對(duì)應(yīng)任務(wù)進(jìn)入就緒狀態(tài).否則,信號(hào)被存儲(chǔ)到對(duì)應(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)行活動(dòng)。第一,進(jìn)程是一個(gè)實(shí)體,有自己的地址空間,可以申請(qǐng)和擁有系統(tǒng)資源;第二,進(jìn)程是一個(gè)“執(zhí)行中的程序”,是一個(gè)動(dòng)態(tài)的概念,是一個(gè)活動(dòng)的實(shí)體。當(dāng)前活動(dòng)通過(guò)程序計(jì)數(shù)器的值和一組寄存器的當(dāng)前內(nèi)容來(lái)表示。程序是包含代碼和初始化數(shù)據(jù),是一個(gè)沒(méi)有生命的實(shí)體,只有處理器賦予程序生命時(shí),它才能成為一個(gè)活動(dòng)的實(shí)體。進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過(guò)程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(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)資源,故對(duì)它的調(diào)度所付出的開(kāi)銷(xiāo)就會(huì)小得多,能更高效的提高系統(tǒng)內(nèi)多個(gè)程序間并發(fā)執(zhí)行的程度。因而近年來(lái)推出的通用操作系統(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簡(jiǎn)介美國(guó)人JeanLabrosse1992年完成應(yīng)用面覆蓋了諸多領(lǐng)域,如照相機(jī)、醫(yī)療器械、音響設(shè)備、發(fā)動(dòng)機(jī)控制、高速公路電話系統(tǒng)、自動(dòng)提款機(jī)等1998年C/OS-II2000年,得到美國(guó)航空管理局(FAA)的認(rèn)證,可以用于飛行器中目前的版本C/OS-IIV2.82C/OS–III(帶MPU)網(wǎng)站www.ucos-II.com()6公開(kāi)源代碼可移植性(Portable)
源碼可移植性很強(qiáng)。微處理器硬件相關(guān)的匯編語(yǔ)言部分已經(jīng)壓到最低限度。可以在絕大多數(shù)8/16/32/64位微處理器、微控制器、數(shù)字信號(hào)處理器(DSP)上運(yùn)行。可固化(ROMable)
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所需的存儲(chǔ)器空間(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ú)的棧,可大可小,壓低對(duì)RAM的需求。系統(tǒng)服務(wù)
C/OS-II提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號(hào)量、塊大小固定的內(nèi)存的申請(qǐng)與釋放、時(shí)間相關(guān)函數(shù)等。中斷管理
中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,則高優(yōu)先級(jí)的任務(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ù)雜問(wèn)題的“分而治之”的方法大的復(fù)雜任務(wù)劃分為一個(gè)個(gè)簡(jiǎn)單的任務(wù)解決上述一個(gè)個(gè)簡(jiǎn)單問(wèn)題的程序?qū)嶓w,稱(chēng)為任務(wù)對(duì)小的任務(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ù)沒(méi)有被任務(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ù)會(huì)把CPU的使用權(quán)讓出;調(diào)度器再?gòu)木途w隊(duì)列中選優(yōu)先級(jí)最高的任務(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ù)沒(méi)有被任務(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 等待信號(hào)量狀態(tài)OS_STAT_MBOX 消息郵箱狀態(tài)OS_STAT_Q 等待消息隊(duì)列狀態(tài)OS_STAT_SUSPEND 被掛起的狀態(tài)OS_STAT_MUTEX 等待互斥型信號(hào)量狀態(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)前值保存到對(duì)應(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)先級(jí)(任務(wù)標(biāo)識(shí))任務(wù)的同步與通信必要性進(jìn)程的各個(gè)任務(wù)必須有效合作;必須無(wú)沖突地訪問(wèn)共享資源;相互依賴(lài)、或制約內(nèi)容事件控制塊信號(hào)量及其使用消息隊(duì)列及其使用事件信號(hào)量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2共享資源01請(qǐng)求和發(fā)送信號(hào)量事件信號(hào)量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2消息緩沖區(qū)消息郵箱傳遞數(shù)據(jù)指針傳遞一個(gè)數(shù)據(jù)的方法。事件信號(hào)量消息郵箱消息隊(duì)列事件控制塊任務(wù)1任務(wù)2消息緩沖區(qū)1消息隊(duì)列利用消息隊(duì)列通信指針。。。消息緩沖區(qū)2消息緩沖區(qū)n事件的等待任務(wù)表對(duì)于每個(gè)事件,都建立了一個(gè)表。從表中可以獲悉所有等待該事件的任務(wù)。事件控制塊ECB結(jié)構(gòu)μC/OS-II將描述事件的結(jié)構(gòu)統(tǒng)一起來(lái):typedefstruct{ INT8U OSEventType; //事件類(lèi)型 INT16UOSEventCnt; //信號(hào)量計(jì)數(shù) void*OSEvetPrt; //消息或消息隊(duì)列指針 INT8UOSEventGrp; //等待事件的任務(wù)組 INT8UOSEventTbl[8]; //任務(wù)等待表}OS_EVENT;任務(wù)等待表可以小于8字節(jié),具體可根據(jù)任務(wù)數(shù)確定事件控制塊ECB結(jié)構(gòu)事件類(lèi)型的值及其含義OS_EVENT_TYPE_SEM 表明事件是信號(hào)量OS_EVENT_TYPE_MUTEX表明事件是互斥信號(hào)量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)的高度可靠性。評(píng)價(jià)一個(gè)實(shí)時(shí)操作系統(tǒng)一般可從任務(wù)調(diào)度、內(nèi)存管理、任務(wù)通訊、內(nèi)存開(kāi)銷(xiāo)、任務(wù)切換時(shí)間、最大中斷禁止時(shí)間等幾個(gè)方面來(lái)衡量。實(shí)時(shí)操作系統(tǒng)中的幾個(gè)重要的評(píng)價(jià)指標(biāo)1)任務(wù)調(diào)度機(jī)制:RTOS的實(shí)時(shí)性和多任務(wù)能力在很大程度上取決于它的任務(wù)調(diào)度機(jī)制。從調(diào)度策略上來(lái)講,分優(yōu)先級(jí)調(diào)度策略和時(shí)間片輪轉(zhuǎn)調(diào)度策略;從調(diào)度方式上來(lái)講,分可搶占、不可搶占、選擇可搶占調(diào)度方式;從時(shí)間片來(lái)看,分固定與可變時(shí)間片輪轉(zhuǎn)。在大多數(shù)商用的實(shí)時(shí)系統(tǒng)中,為了讓操作系統(tǒng)能夠在有突發(fā)事件時(shí),迅速取得系統(tǒng)控制權(quán)以便對(duì)事件作出反應(yīng),所以大都提供了“搶占式任務(wù)調(diào)度”的功能,也就是操作系統(tǒng)有權(quán)主動(dòng)終止應(yīng)用程序的執(zhí)行,并且將執(zhí)行權(quán)交給擁有最高優(yōu)先級(jí)的任務(wù)。以下是兩種可以作出精確描述實(shí)時(shí)應(yīng)用的時(shí)間測(cè)定正確性的著名算法:速度單調(diào):在工作量有一組定期任務(wù)組成的應(yīng)用中,每個(gè)任務(wù)的執(zhí)行時(shí)間定長(zhǎng),這種速度單調(diào)調(diào)度算法能夠保證其可調(diào)度性。在系統(tǒng)中,最高頻的任務(wù)具有最高的優(yōu)先級(jí)。時(shí)限驅(qū)動(dòng):對(duì)于一個(gè)由定期和不定期任務(wù)混合或者任務(wù)的執(zhí)行時(shí)長(zhǎng)隨著時(shí)間變化的應(yīng)用,可以使用時(shí)限驅(qū)動(dòng)算法。這個(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)存開(kāi)銷(xiāo):由于在多數(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í)候,是不會(huì)因?yàn)橥獠恐袛嗟牡絹?lái)而中斷執(zhí)行的。只有當(dāng)RTOS重新回到用戶態(tài)時(shí)才響應(yīng)外部中斷請(qǐng)求,這一過(guò)程所需的最大時(shí)間就是中斷禁止時(shí)間。中斷延時(shí)時(shí)間是指系統(tǒng)確認(rèn)中斷開(kāi)始直到執(zhí)行中斷服務(wù)程序的第一條指令為止整個(gè)處理過(guò)程所需要的時(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)對(duì)于中斷請(qǐ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)場(chǎng)信息、插入相應(yīng)隊(duì)列、并依據(jù)一定的調(diào)度算法重新選擇一個(gè)新任務(wù)使之投入運(yùn)行,這一過(guò)程所需時(shí)間稱(chēng)為任務(wù)切換時(shí)間。任務(wù)切換時(shí)間是實(shí)時(shí)操作系統(tǒng)將控制權(quán)從一個(gè)任務(wù)的執(zhí)行中取回,然后交給另外一個(gè)任務(wù)所需要的時(shí)間。它包括保存目前正在執(zhí)行任務(wù)的現(xiàn)場(chǎng)信息所需要的時(shí)間、RTOS決定下一個(gè)調(diào)度任務(wù)所需的調(diào)度時(shí)間以及RTOS把另外一個(gè)任務(wù)調(diào)入系統(tǒng)執(zhí)行所需要的時(shí)間。最大中斷禁止時(shí)間和任務(wù)切換時(shí)間是評(píng)價(jià)一個(gè)RTOS實(shí)時(shí)性最重要的兩個(gè)技術(shù)指標(biāo)。RTOS市場(chǎng)和技術(shù)發(fā)展的變化易于移植的RTOS結(jié)構(gòu)支持更多種的處理器支持Unix/POSIX兼容的趨勢(shì)明顯內(nèi)核可以裁剪以支持RTOS適應(yīng)小系統(tǒng)和大系統(tǒng)的各種應(yīng)用RTOS與工具的IDE緊密結(jié)合出現(xiàn)越來(lái)越多的銷(xiāo)售源代碼和一次性版稅的RTOS廠家RTOS廠家除提供的文件,圖形和TCP/IP外,與特定應(yīng)用的結(jié)合更多,如互連網(wǎng)絡(luò),通信一、WindRiver-ISI的結(jié)合形成RTOS市場(chǎng)的‘航母’,但他的競(jìng)爭(zhēng)對(duì)手紛紛聲稱(chēng)他們有了更多的機(jī)會(huì)(因?yàn)閃indRiver放棄PSOS)50%(北美)的用戶依然在使用自己編寫(xiě)的RTOS,他們將走到那里?后PC時(shí)代更多的數(shù)字化產(chǎn)品將使用RTOS或嵌人OS,這里就產(chǎn)生了WinCE,PalmOS,JavaOS,Epoc等‘軟’實(shí)時(shí)的嵌人OS二、電訊和控制系統(tǒng)核心設(shè)備要求RTOS的高可靠性半導(dǎo)體廠商對(duì)RTOS和工具的需求強(qiáng)烈,商業(yè)性的合作方式以由外包,到今天收購(gòu)工具公司和軟件協(xié)議公司如Motorola收購(gòu)Metrowerks并投資Lineo,ARC收購(gòu)Metaware,ARM收購(gòu)Allant,Intel投資Montvista嵌人式Linux已經(jīng)在消費(fèi)電子等非強(qiáng)實(shí)時(shí)領(lǐng)域進(jìn)入RTOS的市場(chǎng)并得到了相當(dāng)廣泛的半導(dǎo)體廠商如Intel三、RTOS市場(chǎng)將可能劃分為三段系統(tǒng)級(jí),板極,SOC級(jí)嵌人式Linux依靠POSIX兼容,高可靠源碼開(kāi)放資源豐富的優(yōu)勢(shì)將進(jìn)入傳統(tǒng)Unix和NT占據(jù)的系統(tǒng)級(jí)市場(chǎng)(如CPCI,HA/HotSwap)板級(jí)依然是傳統(tǒng)RTOS的天下主要將集中在航空航天,軍事應(yīng)用和傳統(tǒng)電訊市場(chǎng)SOC級(jí)是新生代較逐的領(lǐng)域,嵌人處理器,消費(fèi)電子產(chǎn)品,互連網(wǎng)絡(luò)通信設(shè)備都將是市場(chǎng)變化最快之處§4.12RTOS---未來(lái)?一、是否會(huì)出現(xiàn)標(biāo)準(zhǔn)RTOS?是否會(huì)出現(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市場(chǎng)的總體趨勢(shì)是這樣的,但依然需要一個(gè)過(guò)程二、目前絕大多數(shù)是國(guó)外產(chǎn)品如VxWork,PSOS,VRTX,Nucleus,WinCE,QNX,CMX..其中前5位占據(jù)國(guó)內(nèi)絕大多數(shù)的市場(chǎng)以業(yè)界傳統(tǒng)的推測(cè)(中國(guó)占全球1-2%分額)中國(guó)RTOS市場(chǎng)規(guī)模還很小很少有人愿意冒風(fēng)險(xiǎn)嘗試一種新的RTOS國(guó)內(nèi)目前RTOS的版稅意識(shí)較低限制了RTOS的發(fā)展(國(guó)外某RTOS廠家收入的30%來(lái)自版稅)§4.14中國(guó)的RTOS市場(chǎng)選擇協(xié)議堆棧協(xié)議堆棧的內(nèi)存要求。所需硬件資源。協(xié)議堆棧施加在CPU上的開(kāi)銷(xiāo)。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)工具軟件。例如,通過(guò)使用HTML和HTTP這類(lèi)標(biāo)準(zhǔn)的應(yīng)用數(shù)據(jù)格式和協(xié)議,就沒(méi)有必要在每個(gè)系統(tǒng)上安裝一個(gè)專(zhuān)門(mén)用于訪問(wèn)嵌入系統(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)常常被稱(chēng)為協(xié)議堆棧或協(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è)類(lèi)似于uC/OS-II的操作系統(tǒng)(Rtx51-tiny?)帶Demo板,并且可以下載它的開(kāi)發(fā)環(huán)境PIC系列也有各種類(lèi)似的芯片,可用于開(kāi)發(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)合起來(lái)創(chuàng)造一個(gè)強(qiáng)有力的且容易使用的全球信息系統(tǒng)。HTTP:超文本傳輸協(xié)議,作為Web瀏覽器和服務(wù)器請(qǐng)求和傳送資源或網(wǎng)頁(yè)的協(xié)議。HTML:超文本鏈接標(biāo)示語(yǔ)言,是Web的交流語(yǔ)言。URL:統(tǒng)一的資源定位表示法,將節(jié)點(diǎn)名、單個(gè)資源名以及用于提取此資源的協(xié)議名合成一個(gè)唯一的名字。嵌入應(yīng)用的HTTPHTTP提供了一個(gè)雙向傳輸文件的簡(jiǎn)單、標(biāo)準(zhǔn)的方法。你可以下載文件和程序到嵌入設(shè)備中,也可以從嵌入系統(tǒng)中上傳數(shù)據(jù),在這兩個(gè)方向上傳送的文件都可以包括任何種類(lèi)的數(shù)據(jù)。能安排和傳送嵌入網(wǎng)絡(luò)服務(wù)器中的HTML文檔的功能會(huì)給嵌入應(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ī)范語(yǔ)言,使其成為迅速、簡(jiǎn)單并可靠地為嵌入系統(tǒng)配備按form方式驅(qū)動(dòng)的設(shè)備接口的一個(gè)自然選擇。在嵌入系統(tǒng)界面設(shè)計(jì)中使用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)上美術(shù)教學(xué)設(shè)計(jì)-幸福樂(lè)園-湘美版
- 2024年五年級(jí)數(shù)學(xué)上冊(cè) 五 多邊形面積的計(jì)算 2三角形的面積教學(xué)設(shè)計(jì) 西師大版
- 20陀螺教學(xué)設(shè)計(jì)-2024-2025學(xué)年四年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- Module 10 教學(xué)設(shè)計(jì) 2023-2024學(xué)年外研版七年級(jí)英語(yǔ)下冊(cè)
- 關(guān)系營(yíng)銷(xiāo)企業(yè)內(nèi)部關(guān)系
- 競(jìng)憑幼兒園園長(zhǎng)述職報(bào)告
- 2024-2025學(xué)年高中生物 第1章 第4節(jié) 基因工程的發(fā)展前景教學(xué)設(shè)計(jì) 浙科版選修3
- 2024六年級(jí)語(yǔ)文下冊(cè) 第二單元 習(xí)作:寫(xiě)作品梗概教學(xué)設(shè)計(jì) 新人教版
- 七年級(jí)英語(yǔ)下冊(cè) Module 3 Making plans Unit 1 What are you going to do at the weekends第1課時(shí)教學(xué)設(shè)計(jì)(新版)外研版
- 2024-2025學(xué)年高中化學(xué) 第一章 第二節(jié) 原子結(jié)構(gòu)與元素的性質(zhì) 第2課時(shí) 元素周期律(一)教學(xué)設(shè)計(jì) 新人教版選修3
- 班組工程量結(jié)算書(shū)
- 生產(chǎn)件批準(zhǔn)申請(qǐng)書(shū)
- 環(huán)境監(jiān)測(cè)考試知識(shí)點(diǎn)總結(jié)
- 爵士音樂(lè) 完整版課件
- 嘉興華雯化工 - 201604
- 冀教版七年級(jí)下冊(cè)數(shù)學(xué)課件 第8章 8.2.1 冪的乘方
- XX公司“十四五”戰(zhàn)略發(fā)展規(guī)劃及年度評(píng)價(jià)報(bào)告(模板)
- 計(jì)算機(jī)輔助設(shè)計(jì)(Protel平臺(tái))繪圖員級(jí)試卷1
- 除法口訣表(完整高清打印版)
- 河北省城市建設(shè)用地性質(zhì)和容積率調(diào)整管理規(guī)定---精品資料
- 講課實(shí)錄-洛書(shū)時(shí)間數(shù)字分析法
評(píng)論
0/150
提交評(píng)論