亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? os_core.c

?? RTOS 51,51單片機(jī)嵌入式操作系統(tǒng)
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
** 修改人: 陳明計(jì)
** 日 期: 2002年12月30日
**------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void OSIntExit(void)

{
    uint8 temp;

    OS_ENTER_CRITICAL();
                /* 中斷嵌套處理 */
#if EN_OS_INT_ENTER > 0
    if (OSIntNesting > 0)
    {
        OSIntNesting--;
    }
    if (OSIntNesting == 0)
    {
#endif
        
        Os_Enter_Sum = 0;               /* 因?yàn)樵谥袛嘀校躁P(guān)中斷計(jì)數(shù)器為0 */
#if OS_MAX_TASKS < 9
                /* 查找處于就緒狀態(tài)的任務(wù)中優(yōu)先級(jí)最高的任務(wù) */
        temp = OSTaskRuning;
        for (OSNextTaskID = 0; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
        OSIntCtxSw();                   /* 進(jìn)行任務(wù)調(diào)度 */
#else
                /* 查找處于就緒狀態(tài)的任務(wù)中優(yōu)先級(jí)最高的任務(wù) */
        temp = OSTaskRuning % 256;
        for (OSNextTaskID = 0; OSNextTaskID < 8; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                goto TaskSw;
            }
            temp = temp >> 1;
        }

        temp = OSTaskRuning / 256;
        for (; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
TaskSw:
        OSIntCtxSw();                   /* 進(jìn)行任務(wù)調(diào)度 */
#endif

#if EN_OS_INT_ENTER >0
    }
#endif
    OS_EXIT_CRITICAL();
}

/*********************************************************************************************************
** 函數(shù)名稱: OSSched
** 功能描述: 非中斷的任務(wù)切換函數(shù)
** 輸 入: 無
** 輸 出: 無
** 全局變量: OSIntNesting,OSNextTaskID
** 調(diào)用模塊: OS_TASK_SW
**
** 作 者: 陳明計(jì)
** 日 期: 2002年6月20日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月1日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月4日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年10月19日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年12月2日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年12月30日
**------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void  OSSched(void)

{
    uint8 temp;

    OS_ENTER_CRITICAL();
#if EN_OS_INT_ENTER > 0
    if (OSIntNesting == 0)              /* 是否是中斷中調(diào)用 */
    {
#endif

#if OS_MAX_TASKS < 9
                /* 查找處于就緒狀態(tài)的任務(wù)中優(yōu)先級(jí)最高的任務(wù) */
        temp = OSTaskRuning;
        for (OSNextTaskID = 0; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
        OS_TASK_SW();                   /* 進(jìn)行任務(wù)調(diào)度 */
#else
                /* 查找處于就緒狀態(tài)的任務(wù)中優(yōu)先級(jí)最高的任務(wù) */
        temp = OSTaskRuning % 256;
        for (OSNextTaskID = 0; OSNextTaskID < 8; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                goto TaskSw;
            }
            temp = temp >> 1;
        }

        temp = OSTaskRuning / 256 ;
        for (; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
TaskSw:
        OS_TASK_SW();                   /* 進(jìn)行任務(wù)調(diào)度 */
#endif

#if EN_OS_INT_ENTER > 0
    }
#endif
    OS_EXIT_CRITICAL();
}

/*********************************************************************************************************
** 函數(shù)名稱: OSTimeTick
** 功能描述: 系統(tǒng)時(shí)鐘處理函數(shù),處理各個(gè)任務(wù)的延時(shí)
** 輸 入: 無
** 輸 出: 無
** 全局變量: OSWaitTick
** 調(diào)用模塊: OSIntSendSignal
**
** 作 者: 陳明計(jì)
** 日 期: 2002年6月20日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月1日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月4日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年12月30日
**------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void  OSTimeTick(void)
{
    uint8 i;

    for (i = 0; i < OS_MAX_TASKS; i++)                 
    {
        if (OSWaitTick[i] != 0 )
        {
            OSWaitTick[i]--;
            if (OSWaitTick[i] == 0)
            {
                OSIntSendSignal(i);
            }
        }
    }
}

/*********************************************************************************************************
** 函數(shù)名稱: OSWait
** 功能描述: 系統(tǒng)等待函數(shù),任務(wù)調(diào)用此函數(shù)可以等待一定時(shí)間或信號(hào)
** 輸 入: typ: 等待事件類型,目前可以取以下值,或是其中任意個(gè)值的按位或
**             K_SIG: 等待信號(hào)
**             K_TMO: 等待超時(shí)
**        ticks : 等待超時(shí)時(shí)的系統(tǒng)嘀嗒數(shù)
** 輸 出 : NOT_OK : 參數(shù)錯(cuò)誤
**         TMO_EVENT : 超時(shí)到
**         SIG_EVENT : 有信號(hào)
** 全局變量: OSWaitTick
** 調(diào)用模塊: OSClearSignal
**
** 作 者: 陳明計(jì)
** 日 期: 2002年6月20日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月1日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月4日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年9月9日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年10月9日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2002年12月2日
**------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 OSWait(uint8 typ, uint8 ticks)

{
    OSWaitTick[OSTaskID] = ticks;               /* 設(shè)置超時(shí)時(shí)間         */
                                                /* 可以優(yōu)化寄存器的使用  */
    switch(typ)
    {
    case K_SIG:                                 /* 等待信號(hào),即掛起自己  */
        OSWaitTick[OSTaskID] = 0;               /* 沒有超時(shí)處理         */
        OSClearSignal(OSTaskID);                /* 任務(wù)進(jìn)入等待狀態(tài)     */
        OSSched();                              /* 運(yùn)行下一個(gè)任務(wù)       */
        return SIG_EVENT;
    case K_TMO:                                 /* 等待超時(shí),即延時(shí)一段時(shí)間 */
        OS_ENTER_CRITICAL();
        while (OSWaitTick[OSTaskID] != 0)       /* 判斷超時(shí)時(shí)間是否到   */
        {
            OSClearSignal(OSTaskID);            /* 任務(wù)進(jìn)入等待狀態(tài)     */
            OSSched();                          /* 運(yùn)行下一個(gè)任務(wù)       */
        }
        OS_EXIT_CRITICAL();
        return TMO_EVENT;
    case (K_TMO | K_SIG):                       /* 等待信號(hào)(掛起自己)直到超時(shí)  */
                                                /* 別的任務(wù)或中斷可以恢復(fù)它 */
        OS_ENTER_CRITICAL();
        if (OSWaitTick[OSTaskID] == 0)          /* 判斷超時(shí)時(shí)間是否到   */
        {
            return TMO_EVENT;
        }
        OSClearSignal(OSTaskID);                /* 任務(wù)進(jìn)入等待狀態(tài)     */
        OS_EXIT_CRITICAL();
        OSSched();                              /* 運(yùn)行下一個(gè)任務(wù)       */
        if (OSWaitTick[OSTaskID] != 0)
        {
            OSWaitTick[OSTaskID] = 0;
            return SIG_EVENT;
        }
        return TMO_EVENT;
    default:
        OSWaitTick[OSTaskID] = 0;
        return NOT_OK;
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久一区二区| 欧美日韩国产小视频在线观看| 日韩欧美不卡一区| 黄色日韩网站视频| 国产视频一区在线播放| 91亚洲国产成人精品一区二区三 | 国产精品无人区| 风间由美中文字幕在线看视频国产欧美 | 青青草一区二区三区| 欧美v日韩v国产v| 国产91在线看| 一区二区三区视频在线看| 欧美日韩高清影院| 国产剧情一区在线| ...xxx性欧美| 日韩视频在线一区二区| 懂色av一区二区三区蜜臀 | 欧美日韩精品电影| 国产一区二区三区在线观看精品 | 伊人一区二区三区| 欧美一区二区三区免费大片 | 另类中文字幕网| 国产精品你懂的在线| 欧美日韩一级黄| 国模娜娜一区二区三区| 亚洲男同性恋视频| 精品国产乱码久久久久久图片| av激情综合网| 日韩精品电影在线| 中文字幕精品在线不卡| 欧美精品一级二级| www.亚洲人| 日本三级韩国三级欧美三级| 国产精品久久久久影院| 91麻豆精品国产无毒不卡在线观看| 国产精品1024久久| 亚洲v中文字幕| 国产精品色哟哟| 日韩亚洲欧美成人一区| 在线观看日产精品| 国产精品1区2区| 免费一区二区视频| 亚洲综合免费观看高清完整版 | 亚洲午夜av在线| 国产精品网站在线播放| 日韩欧美在线一区二区三区| 一本色道久久综合亚洲精品按摩| 韩国女主播成人在线观看| 亚洲成人1区2区| 一区二区在线免费观看| 国产三级欧美三级| 精品久久五月天| 91精品国产麻豆国产自产在线| 91在线你懂得| 国产伦理精品不卡| 狠狠狠色丁香婷婷综合激情| 亚洲高清久久久| 亚洲综合偷拍欧美一区色| 国产精品黄色在线观看| 国产欧美精品一区| 国产欧美日韩精品一区| 精品国产123| 日韩精品一区二区三区在线播放| 欧洲精品在线观看| 色哟哟亚洲精品| 91在线无精精品入口| 99v久久综合狠狠综合久久| 国产不卡高清在线观看视频| 国产乱人伦偷精品视频免下载| 精品在线亚洲视频| 老司机精品视频在线| 久久se精品一区精品二区| 喷水一区二区三区| 久久er精品视频| 九色综合国产一区二区三区| 精品一区二区三区视频| 国产一区二区三区免费| 国产99精品国产| www.一区二区| 欧美性生活大片视频| 欧美无砖砖区免费| 欧美一区二区三区在线观看视频| 6080日韩午夜伦伦午夜伦| 日韩一区二区免费在线观看| 日韩欧美国产精品一区| 久久综合久久综合久久| 国产性做久久久久久| 一区在线中文字幕| 亚洲在线视频免费观看| 日本成人在线不卡视频| 韩国一区二区在线观看| 懂色av一区二区三区免费看| 99天天综合性| 欧美日韩亚洲综合| 欧美mv日韩mv| 国产精品久久久久久户外露出 | 欧美久久久久久久久| 91精品国产黑色紧身裤美女| 精品裸体舞一区二区三区| 国产网站一区二区三区| 亚洲理论在线观看| 首页国产欧美久久| 国产成人精品亚洲777人妖| 一本久久a久久精品亚洲| 欧美一区二区三区在线观看| 国产色产综合产在线视频 | 亚洲成人tv网| 狠狠久久亚洲欧美| 91蜜桃视频在线| 3751色影院一区二区三区| 久久久久久亚洲综合影院红桃| 国产精品美女久久久久久| 日韩精品电影在线| 成人爱爱电影网址| 91精品国产91综合久久蜜臀| 国产精品激情偷乱一区二区∴| 一区二区三区四区乱视频| 久久福利资源站| 欧美影院一区二区| 国产欧美日韩卡一| 日韩不卡一区二区三区| kk眼镜猥琐国模调教系列一区二区| 欧美色综合网站| 国产精品久久久久永久免费观看 | 在线看日韩精品电影| 日韩欧美一区在线观看| 一区二区三区中文免费| 国产精品亚洲成人| 91精品国产综合久久香蕉麻豆| 亚洲欧美自拍偷拍| 国产麻豆欧美日韩一区| 欧美一区二区三区性视频| 亚洲欧美日韩中文字幕一区二区三区| 久久av老司机精品网站导航| 欧美色综合影院| 亚洲欧美电影一区二区| 成人综合婷婷国产精品久久免费| 日韩亚洲欧美成人一区| 亚洲制服欧美中文字幕中文字幕| 成人综合激情网| 久久久精品tv| 精品亚洲成av人在线观看| 在线成人免费观看| 亚洲国产精品一区二区久久恐怖片| 成人视屏免费看| 国产亚洲短视频| 国产乱码字幕精品高清av| 欧美电影免费提供在线观看| 日韩精品三区四区| 欧美裸体一区二区三区| 亚洲大片精品永久免费| 在线观看成人免费视频| 日韩理论片在线| 99精品久久只有精品| 日本一区免费视频| 国产成人免费9x9x人网站视频| 日韩免费在线观看| 精品一区二区综合| 欧美成人激情免费网| 日本在线播放一区二区三区| 777午夜精品免费视频| 午夜精品影院在线观看| 欧美日韩一区二区三区四区五区| 亚洲精品中文字幕乱码三区| 色先锋资源久久综合| 亚洲另类色综合网站| 在线观看中文字幕不卡| 亚洲第一成年网| 欧美日韩综合不卡| 日韩精品电影一区亚洲| 日韩精品一区二区三区中文精品| 美女精品一区二区| 久久嫩草精品久久久精品一| 激情六月婷婷久久| 国产精品系列在线| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品久久久久四虎| 色婷婷综合久久| 天堂一区二区在线| 精品欧美黑人一区二区三区| 国产综合一区二区| 日韩一区在线播放| 欧美午夜片在线看| 麻豆精品在线视频| 国产欧美日韩三级| 91福利精品第一导航| 日本一区中文字幕| 久久久国际精品| 日本久久一区二区| 免费成人深夜小野草| 国产精品素人一区二区| 欧美亚洲国产一卡| 国内精品不卡在线| 亚洲日本va在线观看| 91精品国产综合久久久久久久久久 | 91网站在线观看视频| 亚洲v日本v欧美v久久精品| 精品国产乱子伦一区| 色综合久久天天| 精品一区二区三区在线观看|