久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

Ucos-2學(xué)習(xí)筆記

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月25日   【字體:
現(xiàn)在公司做項目用的是ucos系統(tǒng),之前都在裸奔,現(xiàn)在從零開始,想把學(xué)習(xí)筆錄記錄下來。以供日后翻閱。眼前有本書是邵貝貝的,可是一看就有點頭大,還是從零開始吧!

 

為什么要用操作系統(tǒng)?

裸奔程序是由先后順序的,比如執(zhí)行程序a時,程序B在等待,等a執(zhí)行完后才允許B執(zhí)行。而在操作系統(tǒng)上我們可以理解為多個任務(wù)都在執(zhí)行,兩個人物之間可以通過操作系統(tǒng)來協(xié)調(diào),當(dāng)優(yōu)先級高的緊急任務(wù)可以搶占內(nèi)核優(yōu)先執(zhí)行任務(wù)。Ucos2適用于小系統(tǒng)小規(guī)模的項目,可以提高執(zhí)行效率。嚴(yán)格地說,uc/OS-II只是一個實時操作系統(tǒng)內(nèi)核

它僅僅包含了任 務(wù) 調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間的通信和同步等基本功能,沒有提供輸入輸出管理、文件系統(tǒng)、網(wǎng)絡(luò)等額外的服務(wù),我想后者可能是區(qū)別于linux的區(qū)別吧。但由于uc/OS-II良好的可擴(kuò)展性和源碼開放,這些非必需的功能完全可以由用戶自己根據(jù)需要分別實現(xiàn)。

幾個概念

什么是搶占式任務(wù)?

簡單地說就是誰的優(yōu)先級高誰就可以搶占內(nèi)核或者空間來執(zhí)行優(yōu)先級高的任務(wù)。

或者這么說,高優(yōu)先級任務(wù)可以在某些時刻搶占了正在CPU上運行的低優(yōu)先級任務(wù)的CPU執(zhí)行權(quán)限。根據(jù)搶占時機(jī)又可以分為用戶空間搶占和內(nèi)核搶占。

什么是任務(wù)調(diào)度機(jī)制?

首先要創(chuàng)建任務(wù),創(chuàng)建任務(wù)的數(shù)目有限制,56個以內(nèi),創(chuàng)建任務(wù)也有優(yōu)先級,優(yōu)先級別為0時,優(yōu)先級最高。系統(tǒng)初始化完畢后,外設(shè)驅(qū)動初始化完畢后,建立任務(wù),任務(wù)中含有一些參數(shù),包括返回值,優(yōu)先級別,堆棧大小等,然后開始任務(wù)調(diào)度,也就是程序運行。

Ucos2的運行步驟?(工作原理)

首先進(jìn)行操作系統(tǒng)初始化,主要完成任務(wù)控制塊(tcb)初始化,然后開始創(chuàng)建新任務(wù)、初始化任務(wù)堆棧區(qū),最后調(diào)用OSSTART()函數(shù),開始任務(wù)調(diào)度。主函數(shù)如下:

 

int main(void) 

    INT8U ret 0; 

    BspInit();      //外設(shè)功能初始化

RestoreConfigData();

OSInit();       //uCOS-II系統(tǒng)初始化 

 

  

    ret OSTaskCreate(      Start_Task, //初始化任務(wù)

                               (void*)0, //無參數(shù)

    &Start_TaskStk[APP_TASK_STK_SIZE-1], //任務(wù)堆棧大小為128*4Byte

                       PRIO_START_TASK); //優(yōu)先級最高2

 

    if (ret != OS_ERR_NONE)

    {

        DebugOut(0, "Start_Task 任務(wù)建立失敗error %d\r\n", ret);

    }

 

OSStart();      //開始任務(wù)調(diào)度

 

return 0; 

}

在多任務(wù)調(diào)度開始后,啟動時鐘源開始計數(shù),時鐘的中斷信號,延時,超時都是由此產(chǎn)生。  

當(dāng)時鐘中斷來臨時,系統(tǒng)把當(dāng)前正在執(zhí)行的任務(wù)掛起,保護(hù)現(xiàn)場,進(jìn)行中斷處理,判斷有無任務(wù)延時到期。若有,則使該任務(wù)進(jìn)入就緒態(tài),并對所有進(jìn)入就緒態(tài)的任務(wù)的優(yōu)先級進(jìn)行比較,通過任務(wù)切換去執(zhí)行最高優(yōu)先級的任務(wù)。若沒有別的任務(wù)進(jìn)入就緒態(tài),則恢復(fù)現(xiàn)場繼續(xù)執(zhí)行原任務(wù)。另一種調(diào)度方式是任務(wù)級的調(diào)度,即通過發(fā)軟中斷命令或依靠處理器在任務(wù)執(zhí)行中調(diào)度。如任務(wù)要等待信號量或一個正在執(zhí)行的任務(wù)被掛起時,就需要在此任務(wù)中調(diào)度,找出目前處于就緒態(tài)的優(yōu)先級最高的任務(wù)去執(zhí)行。當(dāng)沒有任何任務(wù)進(jìn)入就緒態(tài)時,就去執(zhí)行空任務(wù)。

如圖

 


參考資料

http://wenku.baidu.com/view/948dad0303d8ce2f00662300.html 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久久国产一区二区三区 | 国产精品国产三级国产a | 久久久久久av| 欧美aⅴ| 91精品国产综合久久久久 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 精品视频免费 | 久久久男人的天堂 | 日韩中文字幕免费 | 久久久久久国产精品三区 | 麻豆久久| 在线观看午夜视频 | 一级黄色裸片 | 天天色综网 | 国产探花在线观看视频 | 欧美日韩精品一区二区天天拍 | 黄色一级大片在线免费看产 | 97在线观看 | 精品免费国产一区二区三区 | 精品日韩在线 | 福利精品| 欧美日韩a| 国产超碰人人爽人人做人人爱 | 欧美中文一区 | 日本一区二区在线视频 | 欧美成人第一页 | 成人精品国产一区二区4080 | 成人在线免费观看视频 | 欧美国产精品一区二区三区 | 成人在线观看免费爱爱 | 免费国产视频 | 欧美二区乱c黑人 | 久久精品亚洲一区 | 国产乱人伦 | 欧美aaa级 | 亚洲欧美在线观看 | 人人干人人艹 | av网站免费 | 91精品国产91久久综合桃花 | 午夜精品久久久久久久星辰影院 | 亚洲综合色网 |