⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos_ii.lst

📁 可以在51上运行的操作系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
           =2 #define  OS_EXT  extern
           =2 #endif
  29      =2  
  30      =2  #define  OS_PRIO_SELF           0xFF   /* Indicate SELF priority                                       */
  31      =2  
  32      =2  #if      OS_TASK_STAT_EN
           =2 #define  OS_N_SYS_TASKS            2                    /* Number of system tasks                      */
           =2 #else
  35      =2  #define  OS_N_SYS_TASKS            1
  36      =2  #endif
  37      =2  
  38      =2  #define  OS_STAT_PRIO       (OS_LOWEST_PRIO - 1)        /* Statistic task priority                     */
  39      =2  #define  OS_IDLE_PRIO       (OS_LOWEST_PRIO)            /* IDLE      task priority                     */
  40      =2  
  41      =2  #define  OS_EVENT_TBL_SIZE ((OS_LOWEST_PRIO) / 8 + 1)   /* Size of event table                         */
  42      =2  #define  OS_RDY_TBL_SIZE   ((OS_LOWEST_PRIO) / 8 + 1)   /* Size of ready table                         */
  43      =2  
  44      =2  #define  OS_TASK_IDLE_ID       65535   /* I.D. numbers for Idle and Stat tasks                         */
  45      =2  #define  OS_TASK_STAT_ID       65534
  46      =2  
  47      =2                                         /* TASK STATUS (Bit definition for OSTCBStat)                   */
  48      =2  #define  OS_STAT_RDY            0x00   /* Ready to run                                                 */
  49      =2  #define  OS_STAT_SEM            0x01   /* Pending on semaphore                                         */
  50      =2  #define  OS_STAT_MBOX           0x02   /* Pending on mailbox                                           */
  51      =2  #define  OS_STAT_Q              0x04   /* Pending on queue                                             */
  52      =2  #define  OS_STAT_SUSPEND        0x08   /* Task is suspended                                            */
  53      =2  
  54      =2  #define  OS_EVENT_TYPE_MBOX        1
  55      =2  #define  OS_EVENT_TYPE_Q           2
  56      =2  #define  OS_EVENT_TYPE_SEM         3
C51 COMPILER V8.02   UCOS_II                                                               03/10/2008 11:50:50 PAGE 5   

  57      =2  
  58      =2                                         /* TASK OPTIONS (see OSTaskCreateExt())                         */
  59      =2  #define  OS_TASK_OPT_STK_CHK  0x0001   /* Enable stack checking for the task                           */
  60      =2  #define  OS_TASK_OPT_STK_CLR  0x0002   /* Clear the stack when the task is create                      */
  61      =2  #define  OS_TASK_OPT_SAVE_FP  0x0004   /* Save the contents of any floating-point registers            */
  62      =2  
  63      =2  
  64      =2  #ifndef  FALSE
  65      =2  #define  FALSE                     0
  66      =2  #endif
  67      =2  
  68      =2  #ifndef  TRUE
  69      =2  #define  TRUE                      1
  70      =2  #endif
  71      =2  
  72      =2  /*
  73      =2  *********************************************************************************************************
  74      =2  *                                              ERROR CODES
  75      =2  *********************************************************************************************************
  76      =2  */
  77      =2  
  78      =2  #define OS_NO_ERR                 0
  79      =2  #define OS_ERR_EVENT_TYPE         1
  80      =2  #define OS_ERR_PEND_ISR           2
  81      =2  
  82      =2  #define OS_TIMEOUT               10
  83      =2  #define OS_TASK_NOT_EXIST        11
  84      =2  
  85      =2  #define OS_MBOX_FULL             20
  86      =2  
  87      =2  #define OS_Q_FULL                30
  88      =2  
  89      =2  #define OS_PRIO_EXIST            40
  90      =2  #define OS_PRIO_ERR              41
  91      =2  #define OS_PRIO_INVALID          42
  92      =2  
  93      =2  #define OS_SEM_OVF               50
  94      =2  
  95      =2  #define OS_TASK_DEL_ERR          60
  96      =2  #define OS_TASK_DEL_IDLE         61
  97      =2  #define OS_TASK_DEL_REQ          62
  98      =2  #define OS_TASK_DEL_ISR          63
  99      =2  
 100      =2  #define OS_NO_MORE_TCB           70
 101      =2  
 102      =2  #define OS_TIME_NOT_DLY          80
 103      =2  #define OS_TIME_INVALID_MINUTES  81
 104      =2  #define OS_TIME_INVALID_SECONDS  82
 105      =2  #define OS_TIME_INVALID_MILLI    83
 106      =2  #define OS_TIME_ZERO_DLY         84
 107      =2  
 108      =2  #define OS_TASK_SUSPEND_PRIO     90
 109      =2  #define OS_TASK_SUSPEND_IDLE     91
 110      =2  
 111      =2  #define OS_TASK_RESUME_PRIO     100
 112      =2  #define OS_TASK_NOT_SUSPENDED   101
 113      =2  
 114      =2  #define OS_MEM_INVALID_PART     110
 115      =2  #define OS_MEM_INVALID_BLKS     111
 116      =2  #define OS_MEM_INVALID_SIZE     112
 117      =2  #define OS_MEM_NO_FREE_BLKS     113
 118      =2  #define OS_MEM_FULL             114
C51 COMPILER V8.02   UCOS_II                                                               03/10/2008 11:50:50 PAGE 6   

 119      =2  
 120      =2  #define OS_TASK_OPT_ERR         130
 121      =2  
 122      =2  /*$PAGE*/
 123      =2  /*
 124      =2  *********************************************************************************************************
 125      =2  *                                          EVENT CONTROL BLOCK
 126      =2  *********************************************************************************************************
 127      =2  */
 128      =2  
 129      =2  #if (OS_MAX_EVENTS >= 2)
 130      =2  typedef struct {
 131      =2      void   *OSEventPtr;                    /* Pointer to message or queue structure                    */
 132      =2      INT8U   OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur                 */
 133      =2      INT16U  OSEventCnt;                    /* Count of used when event is a semaphore                  */
 134      =2      INT8U   OSEventType;                   /* OS_EVENT_TYPE_MBOX, OS_EVENT_TYPE_Q or OS_EVENT_TYPE_SEM */
 135      =2      INT8U   OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
 136      =2  } OS_EVENT;
 137      =2  #endif
 138      =2  
 139      =2  /*$PAGE*/
 140      =2  /*
 141      =2  *********************************************************************************************************
 142      =2  *                                          MESSAGE MAILBOX DATA
 143      =2  *********************************************************************************************************
 144      =2  */
 145      =2  
 146      =2  #if OS_MBOX_EN
           =2 typedef struct {
           =2     void   *OSMsg;                         /* Pointer to message in mailbox                            */
           =2     INT8U   OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur                 */
           =2     INT8U   OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
           =2 } OS_MBOX_DATA;
           =2 #endif
 153      =2  
 154      =2  /*
 155      =2  *********************************************************************************************************
 156      =2  *                                     MEMORY PARTITION DATA STRUCTURES
 157      =2  *********************************************************************************************************
 158      =2  */
 159      =2  
 160      =2  #if OS_MEM_EN && (OS_MAX_MEM_PART >= 2)
           =2 typedef struct {                       /* MEMORY CONTROL BLOCK                                         */
           =2     void   *OSMemAddr;                 /* Pointer to beginning of memory partition                     */
           =2     void   *OSMemFreeList;             /* Pointer to list of free memory blocks                        */
           =2     INT32U  OSMemBlkSize;              /* Size (in bytes) of each block of memory                      */
           =2     INT32U  OSMemNBlks;                /* Total number of blocks in this partition                     */
           =2     INT32U  OSMemNFree;                /* Number of memory blocks remaining in this partition          */
           =2 } OS_MEM;
           =2 
           =2 
           =2 typedef struct {
           =2     void   *OSAddr;                    /* Pointer to the beginning address of the memory partition     */
           =2     void   *OSFreeList;                /* Pointer to the beginning of the free list of memory blocks   */
           =2     INT32U  OSBlkSize;                 /* Size (in bytes) of each memory block                         */
           =2     INT32U  OSNBlks;                   /* Total number of blocks in the partition                      */
           =2     INT32U  OSNFree;                   /* Number of memory blocks free                                 */
           =2     INT32U  OSNUsed;                   /* Number of memory blocks used                                 */
           =2 } OS_MEM_DATA;
           =2 #endif
 179      =2  
 180      =2  /*$PAGE*/
C51 COMPILER V8.02   UCOS_II                                                               03/10/2008 11:50:50 PAGE 7   

 181      =2  /*
 182      =2  *********************************************************************************************************
 183      =2  *                                          MESSAGE QUEUE DATA
 184      =2  *********************************************************************************************************
 185      =2  */
 186      =2  
 187      =2  #if OS_Q_EN
           =2 typedef struct {
           =2     void   *OSMsg;                          /* Pointer to next message to be extracted from queue      */
           =2     INT16U  OSNMsgs;                        /* Number of messages in message queue                     */
           =2     INT16U  OSQSize;                        /* Size of message queue                                   */
           =2     INT8U   OSEventTbl[OS_EVENT_TBL_SIZE];  /* List of tasks waiting for event to occur                */
           =2     INT8U   OSEventGrp;                     /* Group corresponding to tasks waiting for event to occur */
           =2 } OS_Q_DATA;
           =2 #endif
 196      =2  
 197      =2  /*
 198      =2  *********************************************************************************************************
 199      =2  *                                           SEMAPHORE DATA
 200      =2  *********************************************************************************************************
 201      =2  */
 202      =2  
 203      =2  #if OS_SEM_EN
           =2 typedef struct {
           =2     INT16U  OSCnt;                          /* Semaphore count                                         */
           =2     INT8U   OSEventTbl[OS_EVENT_TBL_SIZE];  /* List of tasks waiting for event to occur                */
           =2     INT8U   OSEventGrp;                     /* Group corresponding to tasks waiting for event to occur */
           =2 } OS_SEM_DATA;
           =2 #endif
 210      =2  
 211      =2  /*
 212      =2  *********************************************************************************************************
 213      =2  *                                            TASK STACK DATA
 214      =2  *********************************************************************************************************
 215      =2  */
 216      =2  
 217      =2  #if OS_TASK_CREATE_EXT_EN
           =2 typedef struct {
           =2     INT32U  OSFree;                    /* Number of free bytes on the stack                            */
           =2     INT32U  OSUsed;                    /* Number of bytes used on the stack                            */
           =2 } OS_STK_DATA;
           =2 #endif
 223      =2  
 224      =2  /*$PAGE*/
 225      =2  /*
 226      =2  *********************************************************************************************************
 227      =2  *                                          TASK CONTROL BLOCK
 228      =2  *********************************************************************************************************
 229      =2  */
 230      =2  
 231      =2  typedef struct os_tcb {
 232      =2      OS_STK        *OSTCBStkPtr;        /* Pointer to current top of stack                              */
 233      =2  
 234      =2  #if OS_TASK_CREATE_EXT_EN    
           =2     void          *OSTCBExtPtr;        /* Pointer to user definable data for TCB extension             */
           =2     OS_STK        *OSTCBStkBottom;     /* Pointer to bottom of stack                                   */
           =2     INT32U         OSTCBStkSize;       /* Size of task stack (in bytes)                                */
           =2     INT16U         OSTCBOpt;           /* Task options as passed by OSTaskCreateExt()                  */
           =2     INT16U         OSTCBId;            /* Task ID (0..65535)                                           */
           =2 #endif
 241      =2  
 242      =2      struct os_tcb *OSTCBNext;          /* Pointer to next     TCB in the TCB list                      */
C51 COMPILER V8.02   UCOS_II                                                               03/10/2008 11:50:50 PAGE 8   

 243      =2      struct os_tcb *OSTCBPrev;          /* Pointer to previous TCB in the TCB list                      */
 244      =2  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -