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

📄 os_core.lst

📁 ucOS 模拟环境
💻 LST
📖 第 1 页 / 共 5 页
字号:
       173     *********************************************************************************************************
       174     */
       175     #define  OS_TASK_OPT_NONE        0x0000u    /* NO option selected                                      */
       176     #define  OS_TASK_OPT_STK_CHK     0x0001u    /* Enable stack checking for the task                      */
       177     #define  OS_TASK_OPT_STK_CLR     0x0002u    /* Clear the stack when the task is create                 */
       178     #define  OS_TASK_OPT_SAVE_FP     0x0004u    /* Save the contents of any floating-point registers       */
       179     
       180     /*
       181     *********************************************************************************************************
       182     *                                             ERROR CODES
       183     *********************************************************************************************************
       184     */
       185     #define OS_NO_ERR                     0u
       186     
       187     #define OS_ERR_EVENT_TYPE             1u
       188     #define OS_ERR_PEND_ISR               2u
       189     #define OS_ERR_POST_NULL_PTR          3u
       190     #define OS_ERR_PEVENT_NULL            4u
       191     #define OS_ERR_POST_ISR               5u
       192     #define OS_ERR_QUERY_ISR              6u
       193     #define OS_ERR_INVALID_OPT            7u
       194     #define OS_ERR_TASK_WAITING           8u
       195     #define OS_ERR_PDATA_NULL             9u
       196     
       197     #define OS_TIMEOUT                   10u
       198     #define OS_TASK_NOT_EXIST            11u
       199     #define OS_ERR_EVENT_NAME_TOO_LONG   12u
       200     #define OS_ERR_FLAG_NAME_TOO_LONG    13u
       201     #define OS_ERR_TASK_NAME_TOO_LONG    14u
       202     #define OS_ERR_PNAME_NULL            15u
       203     #define OS_ERR_TASK_CREATE_ISR       16u
       204     
       205     #define OS_MBOX_FULL                 20u
       206     
       207     #define OS_Q_FULL                    30u
       208     #define OS_Q_EMPTY                   31u
       209     
       210     #define OS_PRIO_EXIST                40u
       211     #define OS_PRIO_ERR                  41u
       212     #define OS_PRIO_INVALID              42u
       213     
       214     #define OS_SEM_OVF                   50u
       215     
       216     #define OS_TASK_DEL_ERR              60u
       217     #define OS_TASK_DEL_IDLE             61u
       218     #define OS_TASK_DEL_REQ              62u
       219     #define OS_TASK_DEL_ISR              63u
       220     
       221     #define OS_NO_MORE_TCB               70u
       222     
       223     #define OS_TIME_NOT_DLY              80u
       224     #define OS_TIME_INVALID_MINUTES      81u
       225     #define OS_TIME_INVALID_SECONDS      82u
       226     #define OS_TIME_INVALID_MILLI        83u
       227     #define OS_TIME_ZERO_DLY             84u
       228     
       229     #define OS_TASK_SUSPEND_PRIO         90u
       230     #define OS_TASK_SUSPEND_IDLE         91u
       231     
       232     #define OS_TASK_RESUME_PRIO         100u
       233     #define OS_TASK_NOT_SUSPENDED       101u
       234     
       235     #define OS_MEM_INVALID_PART         110u
       236     #define OS_MEM_INVALID_BLKS         111u
       237     #define OS_MEM_INVALID_SIZE         112u
       238     #define OS_MEM_NO_FREE_BLKS         113u
       239     #define OS_MEM_FULL                 114u
       240     #define OS_MEM_INVALID_PBLK         115u
       241     #define OS_MEM_INVALID_PMEM         116u
       242     #define OS_MEM_INVALID_PDATA        117u
       243     #define OS_MEM_INVALID_ADDR         118u
       244     #define OS_MEM_NAME_TOO_LONG        119u
       245     
       246     #define OS_ERR_NOT_MUTEX_OWNER      120u
       247     
       248     #define OS_TASK_OPT_ERR             130u
       249     
       250     #define OS_ERR_DEL_ISR              140u
       251     #define OS_ERR_CREATE_ISR           141u
       252     
       253     #define OS_FLAG_INVALID_PGRP        150u
       254     #define OS_FLAG_ERR_WAIT_TYPE       151u
       255     #define OS_FLAG_ERR_NOT_RDY         152u
       256     #define OS_FLAG_INVALID_OPT         153u
       257     #define OS_FLAG_GRP_DEPLETED        154u
       258     
       259     #define OS_ERR_PIP_LOWER            160u
       260     
       261     /*$PAGE*/ 
       262     /*
       263     *********************************************************************************************************
       264     *                                          EVENT CONTROL BLOCK
       265     *********************************************************************************************************
       266     */
       267     
       268  E  #if (((1 > 0) && (2 > 0)) || (1 > 0) || (1 > 0) || (1 > 0)) && (5 > 0)
       269     typedef struct os_event {
       270         INT8U    OSEventType;                    /* Type of event control block (see OS_EVENT_TYPE_xxxx)    */
       271         void    *OSEventPtr;                     /* Pointer to message or queue structure                   */
       272         INT16U   OSEventCnt;                     /* Semaphore Count (not used if other EVENT type)          */
       273  E  #if 4 <= 63
       274         INT8U    OSEventGrp;                     /* Group corresponding to tasks waiting for event to occur */
       275  E      INT8U    OSEventTbl[((4) / 8 + 1)];   
       276     #else
       277 X       INT16U   OSEventGrp;                     /* Group corresponding to tasks waiting for event to occur */
       278 X       INT16U   OSEventTbl[OS_EVENT_TBL_SIZE];  /* List of tasks waiting for event to occur                */
       279     #endif
       280     
       281  E  #if 0 > 1
       282 X       INT8U    OSEventName[OS_EVENT_NAME_SIZE];
       283     #endif
       284     } OS_EVENT;
       285     #endif
       286     
       287     
       288     /*
       289     *********************************************************************************************************
       290     *                                       EVENT FLAGS CONTROL BLOCK
       291     *********************************************************************************************************
       292     */
       293     
       294  E  #if (280u >= 251) && (1 > 0) && (0 > 0)
       295 X   
       296 X   #if OS_FLAGS_NBITS == 8                     /* Determine the size of OS_FLAGS (8, 16 or 32 bits)       */
       297 X   typedef  INT8U    OS_FLAGS;
       298 X   #endif
       299 X   
       300 X   #if OS_FLAGS_NBITS == 16
       301 X   typedef  INT16U   OS_FLAGS;
       302 X   #endif
       303 X   
       304 X   #if OS_FLAGS_NBITS == 32
       305 X   typedef  INT32U   OS_FLAGS;
       306 X   #endif
       307 X   
       308 X   
       309 X   typedef struct os_flag_grp {                /* Event Flag Group                                        */
       310 X       INT8U         OSFlagType;               /* Should be set to OS_EVENT_TYPE_FLAG                     */
       311 X       void         *OSFlagWaitList;           /* Pointer to first NODE of task waiting on event flag     */
       312 X       OS_FLAGS      OSFlagFlags;              /* 8, 16 or 32 bit flags                                   */
       313 X   #if OS_FLAG_NAME_SIZE > 1
       314 X       INT8U         OSFlagName[OS_FLAG_NAME_SIZE];
       315 X   #endif
       316 X   } OS_FLAG_GRP;
       317 X   
       318 X   
       319 X   
       320 X   typedef struct os_flag_node {               /* Event Flag Wait List Node                               */
       321 X       void         *OSFlagNodeNext;           /* Pointer to next     NODE in wait list                   */
       322 X       void         *OSFlagNodePrev;           /* Pointer to previous NODE in wait list                   */
       323 X       void         *OSFlagNodeTCB;            /* Pointer to TCB of waiting task                          */
       324 X       void         *OSFlagNodeFlagGrp;        /* Pointer to Event Flag Group                             */
       325 X       OS_FLAGS      OSFlagNodeFlags;          /* Event flag to wait on                                   */
       326 X       INT8U         OSFlagNodeWaitType;       /* Type of wait:                                           */
       327 X                                               /*      OS_FLAG_WAIT_AND                                   */
       328 X                                               /*      OS_FLAG_WAIT_ALL                                   */
       329 X                                               /*      OS_FLAG_WAIT_OR                                    */
       330 X                                               /*      OS_FLAG_WAIT_ANY                                   */
       331 X   } OS_FLAG_NODE;
       332     #endif
       333     
       334     /*$PAGE*/ 
       335     /*
       336     *********************************************************************************************************
       337     *                                          MESSAGE MAILBOX DATA
       338     *********************************************************************************************************
       339     */
       340     
       341  E  #if 1 > 0
       342     typedef struct os_mbox_data {
       343         void   *OSMsg;                         /* Pointer to message in mailbox                            */
       344  E  #if 4 <= 63
       345  E      INT8U   OSEventTbl[((4) / 8 + 1)];  
       346         INT8U   OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
       347     #else
       348 X       INT16U  OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur                 */
       349 X       INT16U  OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
       350     #endif
       351     } OS_MBOX_DATA;
       352     #endif
       353     
       354     /*
       355     *********************************************************************************************************
       356     *                                     MEMORY PARTITION DATA STRUCTURES
       357     *********************************************************************************************************
       358     */
       359     
       360  E  #if (1 > 0) && (0 > 0)
       361 X   typedef struct os_mem {                   /* MEMORY CONTROL BLOCK                                      */
       362 X       void   *OSMemAddr;                    /* Pointer to beginning of memory partition                  */
       363 X       void   *OSMemFreeList;                /* Pointer to list of free memory blocks                     */
       364 X       INT32U  OSMemBlkSize;                 /* Size (in bytes) of each block of memory                   */
       365 X       INT32U  OSMemNBlks;                   /* Total number of blocks in this partition                  */
       366 X       INT32U  OSMemNFree;                   /* Number of memory blocks remaining in this partition       */
       367 X   #if OS_MEM_NAME_SIZE > 1
       368 X       INT8U   OSMemName[OS_MEM_NAME_SIZE];  /* Memory partition name                                     */
       369 X   #endif
       370 X   } OS_MEM;
       371 X   
       372 X   
       373 X   typedef struct os_mem_data {
       374 X       void   *OSAddr;                    /* Pointer to the beginning address of the memory partition     */
       375 X       void   *OSFreeList;                /* Pointer to the beginning of the free list of memory blocks   */
       376 X       INT32U  OSBlkSize;                 /* Size (in bytes) of each memory block                         */
       377 X       INT32U  OSNBlks;                   /* Total number of blocks in the partition                      */
       378 X       INT32U  OSNFree;                   /* Number of memory blocks free                                 */
       379 X       INT32U  OSNUsed;                   /* Number of memory blocks used                                 */
       380 X   } OS_MEM_DATA;
       381     #endif
       382     
       383     /*$PAGE*/ 
       384     /*
       385     *********************************************************************************************************
       386     *                                    MUTUAL EXCLUSION SEMAPHORE DATA
       387     *********************************************************************************************************
       388     */

⌨️ 快捷键说明

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