<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹空獨舞
    邁著慵懶的步子,走在成長路上..... Dead
    posts - 4,comments - 1,trackbacks - 0

    OSTaskCreate()
    函數(shù)原型:INT8U OSTaskCreate(void(*task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio)
    調(diào)用者:任務(wù)或者是初始化代碼。
    作用:建立一個新任務(wù),任務(wù)的建立可以在多個任務(wù)環(huán)境啟動之前,也可以在正在運行的任務(wù)中建立,中斷處理程序中不能建立任務(wù),一個任務(wù)必須為無限循環(huán)結(jié)構(gòu),且不能有返回點。無論用戶程序中是否產(chǎn)生中斷,在初始化任務(wù)堆棧時,堆棧的結(jié)構(gòu)必須與處理器中斷后寄存器入棧的順序結(jié)構(gòu)相同。

    該函數(shù)返回一個8位的整形數(shù),調(diào)用該函數(shù)需要四個參數(shù):
    a 第一個參數(shù):task是一個指向任務(wù)代碼的指針,也就是用戶代碼的首地址,平常使用中我們把自己創(chuàng)建的任務(wù)的名字作為這個參數(shù)即可。
    b 第二個參數(shù):pdata指向一個數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來在建立任務(wù)時向任務(wù)傳遞參數(shù)。
    c 第三個參數(shù):ptos是指向任務(wù)堆棧棧頂?shù)闹羔槪话惆褎?chuàng)建的任務(wù)的堆棧數(shù)組首地址賦給它。
    任務(wù)堆棧用來保存局部變量,函數(shù)參數(shù),返回地址以及任務(wù)被中斷時處理器寄存器的內(nèi)容,任務(wù)堆棧的大小決定于任務(wù)的需要以及預(yù)計的中斷嵌套層數(shù)。計算堆棧的大小需要知道任務(wù)的局部變量所占的空間,可能產(chǎn)生嵌套調(diào)用的函數(shù),及中斷嵌套所需的空間,如果初始化常量OS_STK_GROWTH設(shè)為1,堆棧被設(shè)為從內(nèi)存高地址向低地址增長,此時ptos應(yīng)該指向任務(wù)堆棧空間的最高地址,反之,如果OS_STK_GROWTH設(shè)為0,堆棧將從內(nèi)存的低地址向高地址增長。
    d 第四個參數(shù):prio是任務(wù)的優(yōu)先級。每個任務(wù)必須有一個唯一的優(yōu)先級作為標(biāo)識,數(shù)字越小,優(yōu)先級越高。

    返回值:
    OSTaskCreate()的返回值為下述之一:
    # OS_NO_ERR: 函數(shù)調(diào)用成功。
    # OS_PRIO_EXIST:具有該優(yōu)先級的任務(wù)已經(jīng)存在。
    # OS_PRIO_INVALID: 參數(shù)指定的優(yōu)先級大于OS_LOWEST_PRIO
    # OS_NO_MORE_TCB: 系統(tǒng)中沒有OS_TCB可以分配給任務(wù)了。

    注意:
    1 任何堆棧必須聲明為OS_STK類型。
    2 在任務(wù)中必須調(diào)用uCOS提供的下述過程之一:延時等待,任務(wù)掛起,等待事件發(fā)生(等待信號量,消息郵箱,消息隊列),以便其他任務(wù)能得到cpu。
    3 程序中不能使用優(yōu)先級0,1,2,3,以及OS_LOWEST_PRIO-3,OS_LOWEST_PRIO-2,OS_LOWEST_PRIO-1,

    OS_LOWEST_PRIO,這些優(yōu)先級系統(tǒng)保留,其余的56個優(yōu)先級提供給應(yīng)用程序。

    范例:
    本例中,傳遞給任務(wù)Task1()的參數(shù)pdata不使用,所以指針pdata被設(shè)為NULLL,注意到程序中設(shè)定堆棧向低地址增長,傳遞的棧頂指針為高地址&Task1[1023],如果在你的程序中設(shè)定堆棧向高地址增長,則傳遞的棧頂指針應(yīng)該為&Task1Stk[0]。
    OS_STK Task1Stk[1024];
    void main(void)
    {
    NT8U err;
       ...
    OSInit();//初始化uCOS-II
    ....
    OSTaskCreate(Task1,(void *)0,&Task1Stk[1023],25);
    ...
    OSStart();//啟動多任務(wù)環(huán)境
    }

    void Task1(void *pdata)
    {
    pdata=pdata;
    for(;;)
    {
    ......   //任務(wù)代碼
    }

    }

    posted on 2012-05-31 16:23 鷹空獨舞 閱讀(499) 評論(0)  編輯  收藏 所屬分類: STM32

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产在线a免费观看| 亚洲一区二区免费视频| 在线观看无码的免费网站| 国色精品va在线观看免费视频| 国产成人精品亚洲| 亚洲人成网国产最新在线| 99久久亚洲精品无码毛片| 自拍偷自拍亚洲精品第1页| 国产又大又长又粗又硬的免费视频| 3344免费播放观看视频| a毛片在线免费观看| 人妻巨大乳hd免费看| 国产精品亚洲va在线观看| 亚洲永久网址在线观看| 亚洲一区在线视频观看| 在线电影你懂的亚洲| 亚洲国产国产综合一区首页| 中文字幕亚洲综合久久菠萝蜜| 亚洲精品黄色视频在线观看免费资源| 成人免费网站在线观看| 无码日韩精品一区二区免费| 国拍在线精品视频免费观看| 青娱乐免费视频在线观看| 最近免费中文字幕大全免费 | 日韩精品无码人妻免费视频| 无码国产精品一区二区免费虚拟VR| 最近免费中文字幕大全免费| 777爽死你无码免费看一二区| 亚洲一级毛片免费观看| 免费人成在线观看69式小视频| 114级毛片免费观看| 69成人免费视频| 成人黄动漫画免费网站视频 | 亚洲乱码国产乱码精华| 亚洲日韩精品无码专区加勒比 | 日本一区二区三区免费高清| 天天影院成人免费观看| 无码av免费毛片一区二区| 欧美男同gv免费网站观看| 在线a毛片免费视频观看| 日本xxwwxxww在线视频免费|