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

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

?? emos_core.h

?? emos是一個(gè)新的類似于ucos的內(nèi)核
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/****************************************************************************
 *
 * (c) Copyright 2001,2008, EMB system, All Rights Reserved.
 * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF EMB SYSTEM, INC.
 * The copyright notice above does not evidence any actual or intended
 * publication of such source code. 
 *
 *  Subsystem:   EMOS 
 *  File:        emos_core.h
 *  Author:      zenf zhao
 *  Description: embedded software  operation system core include files
 *
 ****************************************************************************/
#ifndef  _EMOS_CORE_H_
#define  _EMOS_CORE_H_
    
#include "emos_inc.h"
#include "emos_cfg.h"
#include "emos_cpu.h"

/**********************************************************************************************************
  *                                              MISCELLANEOUS
  *********************************************************************************************************/
/* Version of EMS_os (Vx.yy multiplied by 100)                */
#define  EMOS_VERSION              (100)   
#define  EMOS_VER_STRING           "emos version 1.0 by zenf_zhao @ EMB system"   
#define  EMOS_Print                printf
#define  EMOS_AUTH_STRING          "zenf_zhao"

#define  EMOS_TRC_BOOT             (0x01 << 0)
#define  EMOS_TRC_TASK             (0x01 << 1)
#define  EMOS_TRC_MSGQ             (0x01 << 2)
#define  EMOS_TRC_SEM              (0x01 << 3)
#define  EMOS_TRC_MEM              (0x01 << 4)
#define  EMOS_TRC_EVENT            (0x01 << 5)
#define  EMOS_TRC_ALL              (0xFFFFFFFF)

/*
#ifdef   EMOS_DBG_EN
#define  EMOS_Trace(a,b)           if(a&gEmosDbgLevel) printf b
#else
#define  EMOS_Trace(a,b)           if(a) printf b
#endif
*/

#define  EMOS_DEBUG_EN
#ifdef   EMOS_DEBUG_EN
#define EMOS_DBGID_STR "EMOS DBG:"
#define EMOS_Trace(fmt,arg...)     printf(EMOS_DBGID_STR fmt,##arg)
#else
#define EMOS_Trace(fmt,arg...)    
#endif

#ifdef  EMOS_DEBUG_EN
/*will be porting to another callback again*/
#define EMOS_Printf(fmt,arg...)    printf(fmt,##arg)
#else
#define EMOS_Printf(fmt,arg...)    
#endif


#ifdef   EMOS_GLOBALS
#define  EMOS_EXT
#else
#define  EMOS_EXT  extern
#endif

#define  EMOS_WAIT_FOREVER        (0xFFFF)
#define  EMOS_PRIO_SELF           (0xFF)   /* Indicate SELF priority                      */

#if EMOS_TASK_STAT_EN
#define  EMOS_N_SYS_TASKS            (2)   /* Number of system tasks     */
#else
#define  EMOS_N_SYS_TASKS            (1)
#endif

#define  EMOS_IDLE_PRIO        (EMOS_LOWEST_PRIO)             /* IDLE task priority lowest priority   */
#define  EMOS_STAT_PRIO        (EMOS_LOWEST_PRIO - 1)         /* Statistic task priority, higher than idle*/

#define  EMOS_EVENT_TBL_SIZE   ((EMOS_LOWEST_PRIO) / 8 + 1)   /* Size of event table        */
#define  EMOS_RDY_TBL_SIZE     ((EMOS_LOWEST_PRIO) / 8 + 1)   /* Size of ready table        */

#define  EMOS_TASK_IDLE_ID       (65535)   /* I.D. numbers for Idle and Stat tasks        */
#define  EMOS_TASK_STAT_ID       (65534)

/* TASK STATUS (Bit definition for EMS_osTCBStat)  */
#define  EMOS_STAT_RDY            (0x00)   /* Ready to run */
#define  EMOS_STAT_SEM            (0x01)   /* Pending on semaphore*/
#define  EMOS_STAT_MBOX           (0x02)   /* Pending on mailbox*/
#define  EMOS_STAT_Q              (0x04)   /* Pending on queue*/
#define  EMOS_STAT_SUSPEND        (0x08)   /* Task is suspended*/
#define  EMOS_STAT_MSGQ           (0x10)   /* Pending on msgq*/

#define  EMOS_EVENT_TYPE_MBOX      (1)
#define  EMOS_EVENT_TYPE_Q         (2)
#define  EMOS_EVENT_TYPE_SEM       (3)
#define  EMOS_EVENT_TYPE_MSGQ      (4)

/* TASK OPTIONS (see EMS_osTaskCreateExt())        */
#define  EMOS_TASK_OPT_STK_CHK   (0x0001)   /* Enable stack checking for the task          */
#define  EMOS_TASK_OPT_STK_CLR   (0x0002)   /* Clear the stack when the task is create     */
#define  EMOS_TASK_OPT_SAVE_FP   (0x0004)   /* Save the contents of any floating-point registers            */

/**********************************************************************************************************
  *                                              ERROR CODES
  **********************************************************************************************************/
#define EMOS_OK                      (0)
#define EMOS_FAIL                    (2)
#define EMOS_NO_ERR                   0
#define EMOS_ERR_EVENT_TYPE           1
#define EMOS_ERR_PEND_ISR             2
#define EMOS_INVALID_INPARA           3 
#define EMOS_TIMEOUT                  10
#define EMOS_TASK_NOT_EXIST           11
#define EMOS_MBOX_FULL                20
#define EMOS_Q_FULL                   30
#define EMOS_Q_EMPTY                  31
#define EMOS_PRIO_EXIST               40
#define EMOS_PRIO_ERR                 41
#define EMOS_PRIO_INVALID             42
#define EMOS_SEM_OVF                  50
#define EMOS_TASK_DEL_ERR             60
#define EMOS_TASK_DEL_IDLE            61
#define EMOS_TASK_DEL_REQ             62
#define EMOS_TASK_DEL_ISR             63
#define EMOS_NO_MORE_TCB              70
#define EMOS_TIME_NOT_DLY             80
#define EMOS_TIME_INVALID_MINUTES     81
#define EMOS_TIME_INVALID_SECONDS     82
#define EMOS_TIME_INVALID_MILLI       83
#define EMOS_TIME_ZERO_DLY            84
#define EMOS_TASK_SUSPEND_PRIO        90
#define EMOS_TASK_SUSPEND_IDLE        91
#define EMOS_TASK_RESUME_PRIO         100
#define EMOS_TASK_NOT_SUSPENDED       101
#define EMOS_MEM_INVALID_PART         110
#define EMOS_MEM_INVALID_BLKS         111
#define EMOS_MEM_INVALID_SIZE         112
#define EMOS_MEM_NO_FREE_BLKS         113
#define EMOS_MEM_FULL                 114
#define EMOS_TASK_OPT_ERR             130


/**********************************************************************************************************
*                                          EVENT CONTROL BLOCK
**********************************************************************************************************/
#if (EMOS_MAX_EVENTS >= 2)
typedef struct EMOS_EVENT_t
{
   /* Pointer to message or queue structure   */
    void*      osEventPtr;                    

   /* List of tasks waiting for event to occur*/
    uint8      osEventTbl[EMOS_EVENT_TBL_SIZE]; 

   /* EMOS_EVENT_TYPE_MBOX, EMOS_EVENT_TYPE_Q or EMOS_EVENT_TYPE_SEM */
    uint8      osEventType;                   

    /* Group corresponding to tasks waiting for event to occur  */
    uint8      osEventGrp;                     

    /* Count of used when event is a semaphore */    
    uint16     osEventCnt;                    
} EMOS_EVENT_T;
#endif


/**********************************************************************************************************
*                                          MESSAGE MAILBOX DATA
**********************************************************************************************************/
#if EMOS_MBOX_EN
typedef struct EMOS_MBOX_DATA_t
{
     /* Pointer to message in mailbox           */
     void*  osMsg;                        
     
     /* List of tasks waiting for event to occur*/
     uint8   osEventTbl[EMOS_EVENT_TBL_SIZE]; 
     
     /* Group corresponding to tasks waiting for event to occur  */
     uint8   osEventGrp;                    
} EMOS_MBOX_DATA_T;
#endif


/**********************************************************************************************************
  *                                     MEMORY PARTITION DATA STRUCTURES
  **********************************************************************************************************/
#if EMOS_MEM_EN && (EMOS_MAX_MEM_PART >= 2)
typedef struct  EMOS_MEM_DATA_t
{
    void*    osAddr;                    /* Pointer to the beginning address of the memory partition     */
    void*    osFreeList;                /* Pointer to the beginning of the free list of memory blocks   */
    uint32   osBlkSize;                 /* Size (in bytes) of each memory block        */
    uint32   osNBlks;                   /* Total number of blocks in the partition     */
    uint32   osNFree;                   /* Number of memory blocks free                */
    uint32   osNUsed;                   /* Number of memory blocks used                */
} EMOS_MEM_DATA_T;

typedef struct EMOS_MEM_t
{                       
   /* MEMORY CONTROL BLOCK */
    void*   osMemAddr;                 /* Pointer to beginning of memory partition    */
    void*   osMemFreeList;             /* Pointer to list of free memory blocks       */
    uint32  osMemBlkSize;              /* Size (in bytes) of each block of memory     */
    uint32  osMemNBlks;                /* Total number of blocks in this partition    */
    uint32  osMemNFree;                /* Number of memory blocks remaining in this partition          */
} EMOS_MEM_T;

typedef  EMOS_MEM_T EMOS_MEM_ID;

#endif


/********************************************************************************************************
  *                                          MESSAGE QUEUE DATA
  **********************************************************************************************************/
#if EMOS_Q_EN
typedef struct EMOS_Q_DATA_t
{
    void *   osMsg;                          /* Pointer to next message to be extracted from queue      */
    uint16   osNMsgs;                        /* Number of messages in message queue    */
    uint16   osQSize;                        /* Size of message queue                  */
    uint8    osEventTbl[EMOS_EVENT_TBL_SIZE];  /* List of tasks waiting for event to occur                */
    uint8    osEventGrp;                     /* Group corresponding to tasks waiting for event to occur */
} EMOS_Q_DATA_T;
#endif

/**********************************************************************************************************
*                                           SEMAPHORE DATA
**********************************************************************************************************/
#if EMOS_SEM_EN
typedef struct EMOS_SEM_DATA_t
{
    uint16    osCnt;                          /* Semaphore count                        */
   /* List of tasks waiting for event to occur                */
    uint8     osEventTbl[EMOS_EVENT_TBL_SIZE];  
  /* Group corresponding to tasks waiting for event to occur */
    uint8     osEventGrp;                     
} EMOS_SEM_DATA_T;
#endif

/**********************************************************************************************************
*                                            TASK STACK DATA
**********************************************************************************************************/
#if EMOS_TASK_CREATE_EXT_EN
typedef struct EMOS_STK_DATA_t
{
    uint32  osFree;                    /* Number of free bytes on the stack           */
    uint32  osUsed;                    /* Number of bytes used on the stack           */
} EMOS_STK_DATA_T;
#endif


/**********************************************************************************************************
*  TASK CONTROL BLOCK
**********************************************************************************************************/
typedef struct emos_tcb {
    EMOS_STK*     osTCBStkPtr;        /* Pointer to current top of stack             */

#if EMOS_TASK_CREATE_EXT_EN    
     void*        osTCBExtPtr;        /* Pointer to user definable data for TCB extension             */
     EMOS_STK*    osTCBStkBottom;     /* Pointer to bottom of stack                  */
     uint32       osTCBStkSize;       /* Size of task stack (in bytes)               */
     uint16       osTCBOpt;           /* Task options as passed by osTaskCreateExt() */
     uint16       osTCBId;            /* Task ID (0..65535)                          */
#endif

    struct emos_tcb* osTCBNext;          /* Pointer to next TCB in the TCB list     */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜激情影院| 91免费视频网| 亚洲免费av观看| 精品日本一线二线三线不卡| www..com久久爱| 久久99久久久久久久久久久| ...av二区三区久久精品| 欧美一二区视频| 一本一道久久a久久精品| 精品在线播放午夜| 亚洲国产你懂的| 中文字幕欧美日韩一区| 欧美一区午夜视频在线观看| 91国偷自产一区二区开放时间 | 在线电影院国产精品| 成人精品亚洲人成在线| 狠狠色狠狠色综合| 偷拍一区二区三区四区| 亚洲欧美日韩在线| 国产午夜精品美女毛片视频| 日韩一区二区影院| 欧美日韩久久不卡| 在线视频国产一区| 91亚洲男人天堂| 国产乱色国产精品免费视频| 麻豆成人久久精品二区三区小说| 亚洲黄色免费电影| 中文字幕一区在线观看视频| 国产日本欧美一区二区| 精品国产伦一区二区三区观看体验| 欧美麻豆精品久久久久久| 色爱区综合激月婷婷| 97久久超碰精品国产| 成人免费视频免费观看| 国产精品99久久久久久有的能看| 久久精品99久久久| 久久精品99国产精品日本| 免费人成在线不卡| 热久久国产精品| 日韩二区三区四区| 日本91福利区| 日韩电影一区二区三区| 天天色综合天天| 亚洲成av人片在线观看无码| 亚洲国产成人av网| 视频一区在线视频| 美女精品自拍一二三四| 丁香六月久久综合狠狠色| 青青草一区二区三区| 日本欧美肥老太交大片| 美女mm1313爽爽久久久蜜臀| 美女尤物国产一区| 国产在线播放一区| 国产成人精品网址| 99久久久久免费精品国产 | 人妖欧美一区二区| 九色|91porny| 高清不卡一区二区在线| av午夜精品一区二区三区| 99国产精品久久久| 欧美亚洲尤物久久| 日韩欧美色电影| 国产欧美精品一区二区色综合| 中文字幕中文字幕在线一区| 亚洲欧美经典视频| 亚洲va欧美va人人爽午夜| 奇米综合一区二区三区精品视频| 国产一区福利在线| 91色.com| 日韩欧美视频在线| 国产精品高潮呻吟久久| 亚洲成年人影院| 国产主播一区二区| 91论坛在线播放| 日韩一区二区三区在线| 欧美韩国一区二区| 五月天一区二区三区| 国产又黄又大久久| 欧洲精品在线观看| 精品国产免费一区二区三区香蕉 | 精品少妇一区二区| 中文字幕一区二区三区四区 | 久久综合色之久久综合| 亚洲欧美日韩一区| 另类成人小视频在线| 成人av电影在线网| 91精品中文字幕一区二区三区| 国产欧美精品一区aⅴ影院| 亚洲影院久久精品| 国产精品原创巨作av| 在线精品视频免费观看| 久久久国产午夜精品| 亚洲一区在线播放| 国产激情精品久久久第一区二区 | 精品日韩一区二区三区免费视频| 亚洲欧美激情插| 国产在线视频一区二区| 在线国产亚洲欧美| 久久精品欧美日韩精品| 日本最新不卡在线| 91免费视频网址| 国产日韩欧美麻豆| 美女视频黄a大片欧美| 91精彩视频在线观看| 国产欧美视频在线观看| 日本不卡在线视频| 色乱码一区二区三区88| 国产欧美一区二区在线| 美日韩一区二区三区| 色婷婷综合中文久久一本| 精品国产sm最大网站免费看 | 国产成人免费在线视频| 欧美一区二区久久| 亚洲高清不卡在线| 91在线观看一区二区| 国产欧美日韩在线| 国产专区欧美精品| 精品久久五月天| 奇米影视在线99精品| 欧美日韩一区 二区 三区 久久精品| 国产精品毛片无遮挡高清| 国产一二三精品| 精品美女在线播放| 久久精品国产精品青草| 91精品一区二区三区久久久久久| 一区二区欧美国产| 一本色道**综合亚洲精品蜜桃冫| 国产精品久久精品日日| 国产高清精品久久久久| 久久久久久久国产精品影院| 久久99精品国产麻豆婷婷| 91精品国产乱码| 视频一区视频二区中文| 欧美精品久久久久久久久老牛影院| 有码一区二区三区| 日本韩国欧美国产| 一级特黄大欧美久久久| 欧美影院一区二区| 黑人精品欧美一区二区蜜桃| 精品久久久久一区| 狠狠色综合色综合网络| 久久综合国产精品| 国产成人三级在线观看| 中文幕一区二区三区久久蜜桃| 粉嫩高潮美女一区二区三区| 欧美国产日韩一二三区| 懂色av一区二区三区免费观看 | 国产·精品毛片| 中文乱码免费一区二区| 波多野结衣在线aⅴ中文字幕不卡| 中文字幕不卡三区| 色综合天天做天天爱| 亚洲午夜在线电影| 欧美一级高清片| 国产麻豆日韩欧美久久| 国产精品午夜免费| 91黄色在线观看| 日韩电影在线看| 国产偷国产偷精品高清尤物 | 日产精品久久久久久久性色| 精品粉嫩aⅴ一区二区三区四区| 国产又粗又猛又爽又黄91精品| 国产拍欧美日韩视频二区| 95精品视频在线| 天天操天天色综合| 久久老女人爱爱| 91天堂素人约啪| 日本va欧美va瓶| 欧美激情中文不卡| 色噜噜狠狠一区二区三区果冻| 视频精品一区二区| 久久久久久**毛片大全| 色综合久久综合网97色综合| 日韩精品一级二级 | 欧美偷拍一区二区| 久色婷婷小香蕉久久| 国产精品理论片| 欧美日韩成人高清| 国产91精品露脸国语对白| 亚洲资源在线观看| 精品久久久久久久久久久久久久久 | 日韩午夜中文字幕| 成人看片黄a免费看在线| 亚洲一区二区三区在线| 精品国产乱码久久久久久1区2区| 91免费版在线| 国内国产精品久久| 亚洲综合色婷婷| 国产日韩在线不卡| 5月丁香婷婷综合| 成人白浆超碰人人人人| 日本美女视频一区二区| 成人免费小视频| 精品国产乱码久久| 欧美日韩一区二区在线观看| 懂色av一区二区三区蜜臀 | 成人免费的视频| 青草国产精品久久久久久| 中文字幕欧美一区| 久久久久免费观看|