久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁...

時間:2019-05-12 06:35:34下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁...》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁...》。

第一篇:基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁...

基于uCOSII的單任務(wù)和多任務(wù)LED顯示

一、uCOSII簡介

uCOS II是一個微型的實時操作系統(tǒng),包括了一個操作系統(tǒng)最基本的一些特性,如任務(wù)調(diào)度、任務(wù)通信、內(nèi)存管理、中斷管理、定時管理等。而且這是一個代碼完全開放的實時操作系統(tǒng),簡單明了的結(jié)構(gòu)和嚴(yán)謹(jǐn)?shù)拇a風(fēng)格,非常適合初涉嵌入式操作系統(tǒng)的人士學(xué)習(xí)。

二、設(shè)計目的

通過實驗,學(xué)習(xí)在uC/OSII操作系統(tǒng)中單任務(wù)控制LED閃爍和多個任務(wù)控制LED之間的切換和同步,以及多任務(wù)控制程序的編寫方法。

三、裸機程序和uCOSII 的運行流程對比

3.1 裸機程序的運行流程

裸機主函數(shù)的運行流程:

這個是我們寫一般的單片機程序的流程,就是在主函數(shù)中用死循環(huán)執(zhí)行功能函數(shù),然后加上中斷。3.2 uCOSII 的運行流程

uCOSII是一個操作系統(tǒng),但是說到底也是一個支持任務(wù)切換的裸機程序。在初始化變量OSInit函數(shù)中,初始化所有全局變量,數(shù)據(jù)結(jié)構(gòu),創(chuàng)建最低優(yōu)先級空閑任務(wù)OSTaskIde,并創(chuàng)建6個空數(shù)據(jù)鏈表:空任務(wù)控制塊鏈表,空事件控制塊鏈表,空列隊控制塊鏈表,空標(biāo)志組鏈表,空內(nèi)存控制塊鏈表,空閑定時器控制塊鏈表

創(chuàng)建任務(wù) OSTaskCreate函數(shù),一般創(chuàng)建一個最高優(yōu)先級任務(wù)TaskStart任務(wù),任務(wù)調(diào)度后,在這個任務(wù)中再創(chuàng)建其他的任務(wù),初始化硬件,并打開中斷。

進入多任務(wù)管理階段OSStart函數(shù),將就緒表中最高優(yōu)先級任務(wù)的棧指針加載到SP中,并強制中斷返回。

任務(wù)調(diào)度工作就是查找就緒表中優(yōu)先級最高的任務(wù),實現(xiàn)任務(wù)的切換。簡單來說,裸機程序在主函數(shù)中通過死循環(huán)執(zhí)行各種函數(shù),最終達到實現(xiàn)各種功能函數(shù)的目的。而uCOSII系統(tǒng),通過不斷的產(chǎn)生定時中斷,或則任務(wù)主動放棄CPU,然后進行任務(wù)之間的調(diào)度,相當(dāng)于不斷循環(huán)執(zhí)行不同的任務(wù),最終實現(xiàn)各種任務(wù)。

四、工作原理

4.1uCOSII 的內(nèi)核管理

4.1.1 ucos的文件結(jié)構(gòu):

應(yīng)用軟件Ucos(與處理器無關(guān)的代碼)OS_CORE.COS_FLAG.COS_MBOX.COS_MEM.COS_MUTEX.COS_Q.COS_SEM.COS_TASK.COS_TIME.CUCOS_11.CUCOS_11.HUCOS-11配置(與應(yīng)用相關(guān))OS_CFG.HINCLUDE.HUCOS移植(與處理器相關(guān)代碼)OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C硬件4.1.2 臨界段:

OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。它們可以用不同的方法去實現(xiàn),用定義(#define)常數(shù)OS_CRITICAL_METHOD(1,2,3)來選擇用哪種方法來實現(xiàn)。

當(dāng)OS_CRITICAL_METHOD=1時,表示用處理器指令關(guān)中斷,完成OS_ENTER_CRITIACL,用開中斷完成OS_EXIT_CRITICAL.利用這種方法有點小問題,即是調(diào)用UCOS功能函數(shù)之前,中斷是關(guān)掉的,從UCOS返回后,中斷就打開了。

當(dāng)OS_CRITICAL_METHOD=2時,這種方法是在堆棧中保存中斷的開關(guān)狀態(tài),然后再關(guān)中斷。在實現(xiàn)OS_EXIT_CRITICAL時,只需簡單的從堆棧中彈出原來中斷的開關(guān)狀態(tài)。利用這種方法,不論用戶在調(diào)用函數(shù)之前中斷是開著的還是關(guān)著的,函數(shù)的進入和返回狀態(tài)都得到了保護。

當(dāng)OS_CRITICAL_METHOD=3時,一些編譯器提供了擴展功能,用戶可以得到當(dāng)前處理器的狀態(tài)字,并保存在C函數(shù)的局部變量中,這個變量可以用于恢復(fù)PSW。在STM32中,我們一般都是用第三種模式。4.1.3 任務(wù)的狀態(tài):

任務(wù)狀態(tài)之間的轉(zhuǎn)換如下圖:

特別值得注意的是,在任務(wù)執(zhí)行的過程中可以被中斷打斷。4.1.4任務(wù)控制快:

系統(tǒng)必須為每個任務(wù)創(chuàng)建一個保存與該任務(wù)有關(guān)的相關(guān)信息的數(shù)據(jù)結(jié)構(gòu),這個數(shù)據(jù)結(jié)構(gòu)就叫做該任務(wù)的任務(wù)控制塊(TCB)。當(dāng)任務(wù)的CPU使用權(quán)被剝奪時UCOS利用它來保存任務(wù)的狀態(tài)。4.1.5就緒表:

每個就緒的任務(wù)都放在就緒表中,就緒表中有兩個變量,OSRdyGRP和OSRdyTbl。OSRdyGrp中每一位表示8組任務(wù)中每一組是否有進入就緒態(tài)的任務(wù)。當(dāng)有任務(wù)進入就緒態(tài)時,就緒表OSRdyTbl[]中相應(yīng)元素的相應(yīng)位也置為1。4.1.6任務(wù)調(diào)度OS_SCHED():

Ucos總是進行進入就緒態(tài)任務(wù)中優(yōu)先級最高的任務(wù),確定哪個任務(wù)優(yōu)先級最高,這一工作就是有調(diào)度器完成的。4.1.7任務(wù)切換OS_TASK_SW():

需恢復(fù)該任務(wù)在CPU使用權(quán)被剝奪時保存下來的全部寄存器的值,之后,運行被切換的任務(wù)。

4.1.8給調(diào)度器上鎖和開鎖:

給調(diào)度器上鎖函數(shù)OSSchedlock()用于禁止任務(wù)調(diào)度,直到任務(wù)完成后,調(diào)用調(diào)度器開鎖函數(shù)OSSchedUnlock()為止。這兩函數(shù)必須成對使用。4.1.9空閑任務(wù)OS_TaskIdle():

每個程序必須在初始化時建立一個空閑任務(wù),這個任務(wù)沒有其他任務(wù)進入就緒態(tài)時,投入運行,空閑任務(wù)永遠處于就緒態(tài)。空閑任務(wù)始終設(shè)為最低優(yōu)先級。OSTaskIdle()可以調(diào)用OSTaskIdleHook()讓CPU進入STOP指令,從而進入低功耗模式。當(dāng)應(yīng)用系統(tǒng)有電池供電時,這種方式特別有用。

4.2uCOSII 的任務(wù)管理

4.2.1建立任務(wù)OSTaskCreat(): 如果想讓UCOS管理用戶的任務(wù),必須先建立任務(wù)。可以通過將任務(wù)的地址和其他參數(shù)傳遞到以下兩個函數(shù)之一來建立任務(wù)。當(dāng)調(diào)用OSTaskCreat()時,需要四個OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INTU prio)Task:是指向任務(wù)代碼的指針,pdata:是任務(wù)開始執(zhí)行是,傳遞給任務(wù)的參數(shù)的指針,ptos:是分配給任務(wù)的堆棧的棧頂指針,prio是分配給任務(wù)的優(yōu)先級。

4.2.2任務(wù)堆棧OS_STK(): 每個任務(wù)都有自己的堆棧,堆棧必須申明為OS_STK類型,并且由連續(xù)的內(nèi)存空間組成。可以靜態(tài)分配堆棧空間,也可以動態(tài)分配堆棧空間。但是一般我們都是分配靜態(tài)堆棧空間。4.2.3刪除任務(wù)OSTaskDel():

有時需要刪除任務(wù),刪除任務(wù),是說任務(wù)返回并處于休眠態(tài),并不是說任務(wù)的代碼被刪除了。4.3時間管理

4.3.1任務(wù)延遲函數(shù)OSTimeDly():

Ucos提供一個可以被任務(wù)調(diào)用而將任務(wù)延時一段特定時間的功能函數(shù),即OSTimeDly().任務(wù)調(diào)用OSTimeDly()后,一旦規(guī)定的時間期滿或者有其他的任務(wù)通過調(diào)用OSTimeDlyResume()取消了延時,他就會進入就緒狀態(tài)。只有當(dāng)該任務(wù)在所有就緒態(tài)任務(wù)中具有最高的優(yōu)先級,它才會立即運行。4.3.2按時,分,秒延時函數(shù)OSRimeDLyHMSM():

OSTimeDly()一樣,調(diào)用OSRimeDlyHMSM()函數(shù)也會是UCOS進行一次任務(wù)調(diào)度,并且執(zhí)行下一個優(yōu)先級最高的就緒任務(wù)。當(dāng)OSTimeDlyHMSM()后,一旦規(guī)定的時間期滿,或者有OSTimeDlyResume(),它就會馬上處于就緒態(tài)。同樣,只有當(dāng)該任務(wù)在所有就緒態(tài)任務(wù)中具有最高的優(yōu)先級,他才開始運行。

五、設(shè)計方案:

5.1單任務(wù)

在stm32的平臺上移植ucosII,并且建立一個單任務(wù),任務(wù)控制LED1以10HZ的頻率閃爍。5.2多任務(wù)

在stm32的平臺上移植ucosII,并且建立三個任務(wù),三個任務(wù)分別控制LED1,LED2,LED3以10HZ,20HZ,50HZ的的頻率閃爍。

六、程序流程圖

多任務(wù)控制LED閃爍:

七、遇到的問題

7.1編譯器報錯,顯示PUBLIC未定義

由于我們移植的核心代碼用IAR編譯的,由于編譯器的不同,所以要把PUBLIC改成EXPORT。

7.2編譯報錯,顯示,棧未定義

由于每個任務(wù)都要有獨立的棧來保存局部變量,從本質(zhì)上講也就是將CPU寄存器的值保存到RAM中。在uCOS中,每一個任務(wù)都有一個獨立的任務(wù)堆棧。

八、主要代碼 8.1主函數(shù)

#include “includes.h” //包含所有頭文件

OS_STK startup_task_stk[STARTUP_TASK_STK_SIZE];//定義起始任務(wù)堆棧

int main(void){

BSP_Init();//板級初始化

OSInit();//系統(tǒng)初始化,創(chuàng)建空閑任務(wù)

OSTaskCreate(Task_Start,(void *)0,&startup_task_stk[STARTUP_TASK_STK_SIZE-1], STARTUP_TASK_PRIO);

OS_ENTER_CRITICAL();OSStart();

//把控制權(quán)交給操作系統(tǒng),進行任務(wù)調(diào)度

return 0;} 8.2用戶應(yīng)用函數(shù)

#include “includes.h”

OS_STK task_led2_stk[TASK_LED2_STK_SIZE];

//任務(wù)2堆棧 OS_STK task_led3_stk[TASK_LED3_STK_SIZE];

//任務(wù)3堆棧 OS_STK task_led4_stk[TASK_LED4_STK_SIZE];

//任務(wù)4堆棧

void Task_Start(void *p_arg)

//task1 {

(void)p_arg;

//未用到傳遞參數(shù),防止編譯器報錯

SysTick_init();

OSTaskCreate(Task_LED2,(void *)0,//

&task_led2_stk[TASK_LED2_STK_SIZE-1], TASK_LED2_PRIO);OSTaskCreate(Task_LED3,(void *)0,//

&task_led3_stk[TASK_LED3_STK_SIZE-1], TASK_LED3_PRIO);

OSTaskCreate(Task_LED4,(void *)0,//

&task_led4_stk[TASK_LED4_STK_SIZE-1], TASK_LED4_PRIO);

while(1)

{

LED1(ON);

OSTimeDlyHMSM(0, 0,0,100);

LED1(OFF);

OSTimeDlyHMSM(0, 0,0,100);

} } //任務(wù)2 void Task_LED2(void *p_arg){

(void)p_arg;

SysTick_init();

while(1)

{

LED2(ON);

OSTimeDlyHMSM(0, 0,0,200);

LED2(OFF);

OSTimeDlyHMSM(0, 0,0,200);

} }

//任務(wù)3 void Task_LED3(void *p_arg){

(void)p_arg;

SysTick_init();

while(1)

{

//LED3(ON);

OSTimeDlyHMSM(0, 0,0,300);

//LED3(OFF);

OSTimeDlyHMSM(0, 0,0,300);

} }

//任務(wù)4 void Task_LED4(void *p_arg){

(void)p_arg;

SysTick_init();

while(1)

{

LED3(ON);

OSTimeDlyHMSM(0, 0,0,40);

LED3(OFF);

OSTimeDlyHMSM(0, 0,0,40);

} }

婁宇庭

2014年5月5 日

第二篇:嵌入式Linux實時操作系統(tǒng)習(xí)題總結(jié)

第1章

1.嵌入式系統(tǒng)是指操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之中。嵌入式系統(tǒng)一般有3個主要的組成部分:硬件、實時操作系統(tǒng)以及應(yīng)用軟件。

2.嵌入式系統(tǒng)的三要素是嵌入、專用、計算機;即以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。

3.目前國際較為知名的有:VxWorks、NeutrinoRTOS、Nucleus Plus、OS/

9、VRTX、LynuxOS,RTLinux、BlueCat RT等。

4.嵌入式系統(tǒng)一般由硬件層、中間層、軟件層和功能層組成。其作用分別如下:

(1)硬件層 :由嵌入式微處理器、外圍電路和外設(shè)組成。操作系統(tǒng)和應(yīng)用程序都可以固化在ROM或者Flash中。為方便使用,有的模塊在此基礎(chǔ)上增加了LCD、鍵盤、USB接口,以及其他一些功能的擴展電路。

(2)中間層 :硬件層與軟件層之間為中間層,其作用將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設(shè)備驅(qū)動程序與硬件無關(guān);

(3)軟件層 :主要是操作系統(tǒng),有的還包括文件系統(tǒng)、圖形用戶接口和網(wǎng)絡(luò)系統(tǒng)等。操作系統(tǒng)是一個標(biāo)準(zhǔn)的內(nèi)核,將中斷、I/O、定時器等資源都封裝起來,以方便用戶使用。(4)功能層 :由基于操作系統(tǒng)開發(fā)的應(yīng)用程序組成,用來完成對被控對象的控制功能。5.非占先式調(diào)度法也稱作合作型多任務(wù)(cooperative multitasking),各個任務(wù)彼此合作共享一個CPU。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。當(dāng)系統(tǒng)響應(yīng)時間很重要時,要使用占先式(preemptive)內(nèi)核。最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了。6.在實時系統(tǒng)中,如果系統(tǒng)在指定的時間內(nèi)未能實現(xiàn)某個確定的任務(wù),會導(dǎo)致系統(tǒng)的全面失敗,這樣的系統(tǒng)被稱硬實時系統(tǒng)。在弱實時系統(tǒng)中,超時卻不會發(fā)生致命的錯誤。其實時性的要求比硬實時系統(tǒng)要差一些。

7.嵌入式系統(tǒng)的設(shè)計步驟及各部分的主要工作如下。(1)需求分析階段,羅列出用戶的需求;

(2)體系結(jié)構(gòu)設(shè)計階段,描述系統(tǒng)的功能如何實現(xiàn);

(3)詳細設(shè)計階段,進行硬件系統(tǒng)與軟件系統(tǒng)的分類劃分,以決定哪些功能用硬件實現(xiàn),哪些用軟件實現(xiàn);

(4)系統(tǒng)集成,把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調(diào)試,發(fā)現(xiàn)并改進在設(shè)計過程中的錯誤;

(5)系統(tǒng)測試,對設(shè)計好的系統(tǒng)進行測試,看其是否滿足給定的要求。8.Linux作為嵌入式操作系統(tǒng)的優(yōu)勢主要有以下幾點:

(1)可應(yīng)用于多種硬件平臺。

(2)Linux的高度模塊化使添加部件非常容易。

(3)Linux是一個和Unix相似、以內(nèi)核為基礎(chǔ)的、具有完全的內(nèi)存訪問控制,支持大量硬件的一種通用操作系統(tǒng)。

(4)Linux可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系。

(5)Linux帶有Unix用戶熟悉的完善的開發(fā)工具。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。9. Linux執(zhí)行進程調(diào)度一般是在以下情況發(fā)生的:(1)正在執(zhí)行的進程運行完畢;

(2)正在執(zhí)行的進程調(diào)用阻塞原語將自己阻塞起來進入等待狀態(tài);(3)正在執(zhí)行的進程調(diào)用了P原語操作,從而因資源不足而被阻塞;(4)執(zhí)行中的進程提出I/O請求后被阻塞;(5)系統(tǒng)分配的時間片已經(jīng)用完;

(6)就緒隊列中的某個進程的優(yōu)先級變得高于當(dāng)前運行進程的優(yōu)先級。

第4章

1、Linux 內(nèi)核的編譯菜單有好幾個版本,運行:

(1)make config:進入命令行,可以一行一行的配置,但使用不十分方便。

(2)make menuconfig:大多數(shù)開發(fā)人員使用的Linux 內(nèi)核編譯菜單,使用方便。

(3)make xconfig:在2.4.X 以及以前版本中xconfig 菜單是基于TCL/TK 的圖形庫的。

2、在完成內(nèi)核的裁減之后,內(nèi)核的編譯就只要執(zhí)行以下幾條命令: make clean

編譯內(nèi)核之前先把環(huán)境給清理干凈。make dep

編譯相關(guān)依賴文件 make zImage

創(chuàng)建內(nèi)核鏡像文件 make modules 創(chuàng)建內(nèi)核模塊。

make install

把相關(guān)文件拷貝到默認(rèn)的目錄。

3、此命令是裝載壓縮映像文件zImage到flash存儲器中,地址是kernel分區(qū),并采用xmodem傳輸協(xié)議。

4、此命令是設(shè)置網(wǎng)卡1的地址192.168.1.1,掩碼為255.255.255.0,不寫netmask參數(shù)則默認(rèn)為255.255.255.0。

5、此命令將nfs服務(wù)的共享目錄sharedir加載到/mnt/nfs。

6、此命令是裝載根文件系統(tǒng)root.cramfs到flash存儲器中,地址是根文件系統(tǒng)分區(qū),并采用xmodem傳輸協(xié)議。

7、這個命令的操作同時進行了分區(qū)和格式化,0~128K存放vivi,128K~192K存放VIVI控制臺指令,192K~1216K存放kernel,1216K~4288K存放root,其余部分存放應(yīng)用程序。

第6章

1.使用虛擬地址尋址整個系統(tǒng)的主存和輔存的方式在現(xiàn)代操作系統(tǒng)中被稱為虛擬內(nèi)存。虛擬內(nèi)存的管理方法使系統(tǒng)既可以運行體積比物理內(nèi)存還要大的應(yīng)用程序,也可以實現(xiàn)“按需調(diào)頁”策略,既滿足了程序的運行速度,又節(jié)約了物理內(nèi)存空間。2.進程內(nèi)存區(qū)域涉及到5種數(shù)據(jù)段,即:

①代碼段:代碼段是用來存放可執(zhí)行文件的操作指令。

②數(shù)據(jù)段:數(shù)據(jù)段用來存放可執(zhí)行文件中已初始化全局變量。③BSS段:BSS段包含了程序中未初始化的全局變量。④堆(heap):用于存放進程運行中被動態(tài)分配的內(nèi)存段,它的大小并不固定,可動態(tài)擴張或縮減。

⑤棧:棧是用戶存放程序臨時創(chuàng)建的局部變量。3.在Linux系統(tǒng)中,內(nèi)核在最高級執(zhí)行,也稱為“系統(tǒng)態(tài)”,在這一級任何操作都可以執(zhí)行。而應(yīng)用程序則執(zhí)行在最低級,即所謂的“用戶態(tài)”。在這一級處理器禁止對硬件的直接訪問和對內(nèi)存的未授權(quán)訪問。模塊是在所謂的“內(nèi)核空間”中運行的,而應(yīng)用程序則是在“用戶空間”中運行的。它們分別引用不同的內(nèi)存映射,也就是程序代碼使用不同的“地址空間”。4.共享內(nèi)存區(qū)域是被多個進程共享的一部分物理內(nèi)存。如果多個進程都把該內(nèi)存區(qū)域映射到自己的虛擬地址空間,則這些進程就都可以直接訪問該共享內(nèi)存區(qū)域,從而可以通過該區(qū)域進行通信。共享內(nèi)存是進程間共享數(shù)據(jù)的一種最快的方法,一個進程向共享內(nèi)存區(qū)域?qū)懭肓藬?shù)據(jù),共享這個內(nèi)存區(qū)域的所有進程就可以立刻看到其中的內(nèi)容。5.內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進程(swapd)定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進程調(diào)度的唯一原因。當(dāng)一個進程存取的內(nèi)存映射被換出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時,掛起當(dāng)前正在運行的進程。

第9章

1.參考答案:

Mutex互斥量,用于操作某個臨界資源時對該資源上鎖,以實現(xiàn)互斥地對獨占資源的使用。Semophore信號燈,信號燈內(nèi)有一計數(shù)器,可以用于對多個同類資源的分配。

Condition條件變量,條件變量用于等待信號。當(dāng)一個線程需要等待某個信號時,就可到條件變量上等待,當(dāng)信號具備時,系統(tǒng)會喚醒該線程繼續(xù)運行。2.參考答案:

本地:共享內(nèi)存+信號量,適合于大量數(shù)據(jù)傳輸。Linux支持系統(tǒng)V和POSIX的共享內(nèi)存和信號量。(5分)

遠程:Socket+應(yīng)用協(xié)議。適合于跨網(wǎng)絡(luò)的(大量)數(shù)據(jù)傳輸。Linux支持BSD的socket。應(yīng)用層協(xié)議需要自行設(shè)計。(5分)

3.答案要點:程序是編譯后形成的可執(zhí)行代碼,是靜止的。進程是程序的一次執(zhí)行,是活動的。線程是進程的可執(zhí)行單元,同一進程的不同線程共享進程的資源和地址空間。4.兩種實現(xiàn)方法,一種是繼承Thread,另外一種是實現(xiàn)接口Runnable。

同步的實現(xiàn)方法有兩種,分別是synchronized, wait與notify。用synchronized可以對一段代碼、一個對象及一個方法進行加鎖。用wait與notify可以使對象處于等待及喚醒方式導(dǎo)致同步,因為每個對象都直接或間接的繼承了Object類。

5、什么是BootLoader?主要有幾種工作模式及主要功能是什么? 答:

Bootloader就是操作系統(tǒng)內(nèi)核運行的一段小程序,完成進行初始化系統(tǒng)硬件設(shè)置的任務(wù),(2分)

分為啟動加載模式和下載模式。(1啟動加載模式

啟動加載(Boot laoding)模式是指 Bootloader 從目標(biāo)機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運行,整個過程并沒有用戶的介入。(2分)(2)下載模式

在下載模式下,目標(biāo)機上的 Bootloader 將先通過串口連接或網(wǎng)絡(luò)連接等通信手段從宿主機下載文件。(2分)

6、簡述Bootloader有何作用?

答案要點:(1)首先,bootloader是在特定硬件平臺運行的程序,嚴(yán)重依賴于硬件平臺,需要移植;(2)是系統(tǒng)上電之后,第一個運行的程序,系統(tǒng)在上電或復(fù)位時通常都從地址 0x0 處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的 Boot Loader 程序;(3)bootloader程序的設(shè)計目標(biāo)是啟動嵌入式操作系統(tǒng),嵌入式操作系統(tǒng)的啟動需要一定的條件,這些條件由bootloader來滿足;(4)Bootloader一般具有對存儲器和網(wǎng)絡(luò)接口操作的功能;如擦除、讀寫Flash,通過USB、串口下載文件等

下載基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁...word格式文檔
下載基于UCOS嵌入式實時操作系統(tǒng)的單任務(wù)和多任務(wù)LED顯示總結(jié)----婁....doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    主站蜘蛛池模板: 嫩草国产福利视频一区二区| 免费国产在线精品一区不卡| 色狠狠色婷婷丁香五月| 久久97精品久久久久久久不卡| 又大又紧又粉嫩18p少妇| 精品少妇人妻av无码专区| 亚洲人成网7777777国产| 亚洲成av人最新无码| 伊人色综合久久天天小片| 中文无码伦av中文字幕在线| 亚洲成av人片在线观看一区二区三区| 日本一卡二卡不卡视频查询| 最好看2019高清中文字幕视频| 婷婷成人亚洲综合五月天| 97碰碰碰人妻视频无码| 亚洲中文字幕日产无码| 中国亚洲女人69内射少妇| 野外做受三级视频| 777人体大胆中国人体哦哦| 成人免费看黄网站yyy456| 亚洲人成在线播放无码| 欧美国产成人精品二区芒果视频| 极品少妇xxxx精品少妇偷拍| 天堂中文а√在线| 国产丰满乱子伦无码专区| 怡春院久久国语视频免费| 99久久免费精品国产72精品九九| 午夜成人亚洲理伦片在线观看| 人人妻人人澡人人爽国产一区| 亚洲精品国产suv一区88| 国产欧美va欧美va香蕉在线| 国产情侣一区二区| 一本一久本久a久久精品综合| 日韩av片无码一区二区不卡电影| 动漫美女h黄动漫在线观看| 无码 人妻 在线 视频| 国产欧美另类久久久精品不卡| 亚洲成a人片在线观看中文| 国产女人水真多18毛片18精品| 午夜无码片在线观看影院y| 丰满爆乳在线播放|