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

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

?? os_core.c

?? 帶時(shí)鐘功能溫度和濕度測(cè)量的儀器
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*********************************************************************************************************
**				                               Small RTOS(51)
**                                   The Real-Time Kernel(For Keil c51)
**
**                                  (c) Copyright 2002-2003, chenmingji
**                                           All Rights Reserved
**
**                                                  V1.20.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: OS_CORE.C
**創(chuàng)   建   人: 陳明計(jì)
**最后修改日期: 2004年2月4日
**描        述: Small RTOS(51)與CPU無關(guān)的核心代碼
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: 陳明計(jì)
** 版  本: V0.50~V1.00
** 日 期: 2002年2月22日~2002年6月20日
** 描 述: 基本完成Small RTOS核
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 版  本: V1.10~V1.21
** 日 期: 2002年9月1日~2003年1月23日
** 描 述: 完善Small RTOS
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 版  本: V1.20.0
** 日 期: 2003年8月17日
** 描 述: 增加支持任務(wù)動(dòng)態(tài)建立和刪除,函數(shù)功能向一般的RTOS靠齊
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 版  本: V1.20.1
** 日 期: 2004年2月4日
** 描 述: 修改OSWait(K_SIG | K_TMO, x) 只能通過信號(hào)喚醒的bug。
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define  IN_OS_CORE
#include "config.h"

uint8 data OSIntNesting;

uint8 data OSTaskID;
uint8 data OSNextTaskID;

uint8 data OSWaitTick[OS_MAX_TASKS];
#if OS_MAX_TASKS < 9
uint8 data OSTaskRuning[1];
uint8 data OSTaskCreated[1];
#else
uint8 data OSTaskRuning[2];
uint8 data OSTaskCreated[2];
#endif

uint8 const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
uint8 data Os_Enter_Sum;


void  OSSched(void) small;

/*********************************************************************************************************
** 函數(shù)名稱: OSInit
** 功能描述: 系統(tǒng)變量初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: 
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void OSInit(void) small
{
    OSTaskRuning[0] = 0;
    OSTaskCreated[0] = 0;
#if OS_MAX_TASKS > 8
    OSTaskRuning[1] = 0;
    OSTaskCreated[1] = 0;
#endif
    Os_Enter_Sum = 0;
    OSTaskID = OS_MAX_TASKS;
    OSNextTaskID = 0;
    OSIntNesting = 0;
    OSCPUInit();
}

/*********************************************************************************************************
** 函數(shù)名稱: _OSTaskCreate
** 功能描述: 創(chuàng)建任務(wù)
** 輸 入: TaskID:任務(wù)ID
**         task  :任務(wù)地址
**         ptos  :任務(wù)堆棧,在51中為重入棧
** 輸 出: 無
** 全局變量: 
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 _OSTaskCreate(uint8 TaskID, void (code * task)(void), void xdata *ptos) small
{
    if (TaskID < OS_MAX_TASKS)
    {
        OS_ENTER_CRITICAL();
#if OS_MAX_TASKS < 9
        if ((OSTaskCreated[0] & OSMapTbl[TaskID]) != 0)
        {
            return FALSE;
        }
        OSTaskCreated[0] |= OSMapTbl[TaskID];
        OSTaskRuning[0] |= OSMapTbl[TaskID];
#else
        if (TaskID < 8)
        {
            if ((OSTaskCreated[0] & OSMapTbl[TaskID]) != 0)
            {
                return FALSE;
            }
            OSTaskCreated[0] |= OSMapTbl[TaskID];
            OSTaskRuning[0] |= OSMapTbl[TaskID];
        }
        else
        {
            if ((OSTaskCreated[1] & OSMapTbl[TaskID & 0x07]) != 0)
            {
                return FALSE;
            }
            OSTaskCreated[1] |= OSMapTbl[TaskID & 0x07];
            OSTaskRuning[1] |= OSMapTbl[TaskID & 0x07];
        }
#endif
        OSTaskStkInit(task, ptos, TaskID);
        OSSched();
        OS_EXIT_CRITICAL();
        return TRUE;
    }
    return FALSE;
}

/*********************************************************************************************************
** 函數(shù)名稱: OSTaskDel
** 功能描述: 刪除任務(wù)
** 輸 入: TaskID:任務(wù)ID
** 輸 出: 無
** 全局變量: 
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
uint8 OSTaskDel(uint8 TaskID) small
{
    if (TaskID < OS_MAX_TASKS)
    {
        OS_ENTER_CRITICAL();
#if OS_MAX_TASKS < 9
        OSTaskCreated[0] &= ~OSMapTbl[TaskID];
#else
        if (TaskID < 8)
        {
            OSTaskCreated[0] &= ~OSMapTbl[TaskID];
        }
        else
        {
            OSTaskCreated[1] &= ~OSMapTbl[TaskID & 0x07];
        }
#endif
        OSTaskStkDel(TaskID);
        OSSched();
        OS_EXIT_CRITICAL();
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數(shù)名稱: OSTaskResume
** 功能描述: 恢復(fù)任務(wù)
** 輸 入: TaskID : 任務(wù)ID
** 輸 出: 無
** 全局變量: OSTaskRuning
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void OSTaskResume(uint8 TaskID)  small
{
    if (TaskID < OS_MAX_TASKS)
    {
        OS_ENTER_CRITICAL();
#if OS_MAX_TASKS < 9
        OSTaskRuning[0] |= OSMapTbl[TaskID];
#else
        if (TaskID < 8)
        {
            OSTaskRuning[0] |= OSMapTbl[TaskID];
        }
        else
        {
            OSTaskRuning[1] |= OSMapTbl[TaskID & 0x07];
        }
#endif
        OS_EXIT_CRITICAL();
    }
    OSSched();                                              //開始任務(wù)切換
}

/*********************************************************************************************************
** 函數(shù)名稱: OS_TaskSuspend
** 功能描述: 使指定任務(wù)休眠,但不進(jìn)行任務(wù)切換
** 輸 入: TaskID : 任務(wù)ID
** 輸 出: 無
** 全局變量: OSWaitTick
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void OS_TaskSuspend(uint8 TaskID)    small
{
    if (TaskID < OS_MAX_TASKS)
    {
        OS_ENTER_CRITICAL();
#if OS_MAX_TASKS < 9
        OSTaskRuning[0] &= ~OSMapTbl[TaskID];
#else
        if (TaskID < 8)
        {
            OSTaskRuning[0] &= ~OSMapTbl[TaskID];
        }
        else
        {
            OSTaskRuning[1] &= ~OSMapTbl[TaskID & 0x07];
        }
#endif
        OS_EXIT_CRITICAL();
    }
}


/*********************************************************************************************************
** 函數(shù)名稱: OSTaskSuspend
** 功能描述: 使指定任務(wù)休眠
** 輸 入: TaskID : 任務(wù)ID
** 輸 出: 無
** 全局變量: OSWaitTick
** 調(diào)用模塊: OS_TaskSuspend,OSSched
**
** 作 者: 陳明計(jì)
** 日 期: 2003年8月3日
**-------------------------------------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本免费在线视频不卡一不卡二| 七七婷婷婷婷精品国产| 首页欧美精品中文字幕| 国产高清成人在线| 91麻豆精品国产91久久久久久久久 | 99久久久精品| 精品久久久久久久人人人人传媒| 亚洲综合成人在线| 成人不卡免费av| 国产婷婷色一区二区三区在线| 青青草原综合久久大伊人精品优势 | 一区二区在线观看视频| 不卡电影一区二区三区| 亚洲色图丝袜美腿| 99久久精品国产一区二区三区 | 精品国产123| 日韩av一区二区在线影视| 欧美电影免费观看高清完整版 | 亚洲国产精品av| 国内精品在线播放| 欧美不卡123| 99精品视频中文字幕| 亚洲中国最大av网站| 精品久久久久久久人人人人传媒| 成人涩涩免费视频| 欧美激情一区二区在线| 91国偷自产一区二区三区观看| 亚洲视频每日更新| 日韩色视频在线观看| 男女性色大片免费观看一区二区 | 欧美日韩成人在线一区| 亚洲综合区在线| 欧美大肚乱孕交hd孕妇| 97超碰欧美中文字幕| 日韩电影在线观看网站| 国产午夜亚洲精品午夜鲁丝片| 在线免费亚洲电影| 亚洲成人精品一区| 欧美日韩国产另类不卡| 成人毛片在线观看| 日本v片在线高清不卡在线观看| 国产欧美在线观看一区| 99久久国产免费看| 极品少妇一区二区三区精品视频| 精品成人佐山爱一区二区| 在线看日本不卡| 国产高清亚洲一区| 麻豆国产91在线播放| 久久日韩粉嫩一区二区三区| 成人一级黄色片| 免费观看日韩av| 亚洲地区一二三色| 中文字幕一区二区5566日韩| 欧美午夜影院一区| 久久99国产精品免费| 亚洲一区二区三区四区五区中文| 亚洲国产精品99久久久久久久久 | 欧美一级片在线看| 国产酒店精品激情| 亚洲精品乱码久久久久久黑人 | 成人高清免费在线播放| 裸体一区二区三区| 久久色中文字幕| 在线欧美小视频| 91麻豆swag| 久久av老司机精品网站导航| 亚洲国产精品嫩草影院| 国产视频一区不卡| 精品剧情在线观看| 欧美一级国产精品| 欧美精品一二三四| 丰满白嫩尤物一区二区| 亚洲成人免费电影| 亚洲综合图片区| 亚洲一区二区三区四区在线观看 | 成人综合日日夜夜| 国产精品白丝jk黑袜喷水| 蜜桃在线一区二区三区| 国产一区美女在线| 欧美视频在线播放| 99精品欧美一区二区三区小说| 国产白丝网站精品污在线入口| 国产乱码精品1区2区3区| 麻豆精品在线看| 久久国产综合精品| 国产一区二区三区不卡在线观看 | 午夜精品久久久久影视| 国产丝袜欧美中文另类| 国产亚洲一二三区| 欧美国产精品中文字幕| 国产精品不卡视频| 久久美女高清视频| 久久亚洲一区二区三区明星换脸| 久久综合狠狠综合| 国产精品女主播在线观看| 日韩欧美一二三| 久久久91精品国产一区二区精品 | 欧美另类z0zxhd电影| 7799精品视频| 久久免费美女视频| 国产精品久久一级| 亚洲精品视频观看| 日韩精品电影在线观看| 国产精品一区二区x88av| 成人黄色在线网站| 欧美日韩综合在线| 91在线小视频| 欧美日本在线播放| 久久久久国产精品免费免费搜索| 国产精品人人做人人爽人人添| 亚洲一区精品在线| 激情综合五月婷婷| 91污在线观看| 欧美一区二区三区在| 国产精品日日摸夜夜摸av| 亚洲午夜久久久久久久久电影院 | 一区二区三区中文字幕在线观看| 成人免费小视频| 亚洲成人av福利| 国产精品亚洲成人| 欧美日韩免费电影| 日本一区二区三区国色天香| 亚洲午夜三级在线| 高清不卡在线观看av| 91麻豆精品国产| 国产精品国产馆在线真实露脸 | 日韩一级免费观看| 国产精品久久久久久久久晋中 | 91在线精品一区二区三区| 日韩一区二区三区在线| 中文字幕一区二区三| 精品在线观看视频| 91国产福利在线| 国产精品伦一区二区三级视频| 性久久久久久久久久久久| 波多野洁衣一区| 色综合久久久久综合体桃花网| 色婷婷久久久久swag精品| 精品伦理精品一区| 五月天婷婷综合| 色先锋资源久久综合| 国产欧美精品一区二区色综合朱莉| 一区二区免费在线播放| 岛国一区二区三区| 精品奇米国产一区二区三区| 亚洲成av人影院| 日本精品一级二级| 国产精品无人区| 国产一区二区女| 日韩欧美亚洲另类制服综合在线| 亚洲成人av电影在线| 色天使色偷偷av一区二区| 亚洲国产高清aⅴ视频| 精品伊人久久久久7777人| 777奇米成人网| 天堂蜜桃91精品| 欧美日韩一级二级三级| 亚洲精品视频自拍| 91老师片黄在线观看| 成人欧美一区二区三区视频网页| 国产凹凸在线观看一区二区| 视频一区国产视频| 欧美三级日韩三级| 亚洲香肠在线观看| 欧美视频一二三区| 亚洲一区二区视频在线观看| 色女孩综合影院| 亚洲自拍偷拍九九九| 欧美亚洲图片小说| 亚洲第一久久影院| 在线观看91精品国产麻豆| 午夜精品福利视频网站| 91精品在线麻豆| 男女性色大片免费观看一区二区| 日韩欧美视频一区| 国产主播一区二区三区| 欧美va亚洲va香蕉在线| 狠狠色伊人亚洲综合成人| 精品国产人成亚洲区| 国产麻豆精品theporn| 久久一日本道色综合| 懂色av中文字幕一区二区三区| 国产精品素人视频| 色婷婷精品大视频在线蜜桃视频| 亚洲色图欧洲色图婷婷| 欧美日韩一区二区三区免费看| 日本成人在线电影网| 欧美成人r级一区二区三区| 国产精品91一区二区| 亚洲欧洲美洲综合色网| 欧美性受极品xxxx喷水| 蜜臀久久99精品久久久久久9| 精品毛片乱码1区2区3区| 国产成人丝袜美腿| 亚洲欧美激情插| 不卡的电影网站| 亚洲在线视频免费观看| 日韩精品中午字幕| 成人小视频免费在线观看| 亚洲午夜成aⅴ人片|