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

📄 rm.bak

📁 这是一个修改ucos的操作系统
💻 BAK
字号:
//OS_EXT  RM_TCB           *RMTCBCur;                        /* Pointer to currently running RM TCB      */

//OS_EXT  OS_TCB           *OSTCBHighRdy;                    /* Pointer to highest priority TCB R-to-R   */
//OS_EXT  OS_TCB           *OSTCBList;                       /* Pointer to doubly linked list of TCBs    */
//OS_EXT  OS_TCB           *RMTCBPrioTbl[OS_LOWEST_PRIO + 1];/* Table of pointers to created RM TCBs        */
//OS_EXT  OS_TCB            OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS];   /* Table of TCBs  */
/*
**********************************************************************************************************
*                                      RM_TASK MISCELLANEOUS
**********************************************************************************************************
*/

OS_EXT  RM_TCB           *RMTCBFreeList;                      /* 指向空闲RMTCB控制块的指针           */
OS_EXT  RM_TCB           *RMTCBWaitList;                      /* 指向等待RM任务的指针                */
OS_EXT  RM_TCB           *RMTCBRunList;                      /* 指向等待RM任务的指针                ×/
//OS_EXT  RM_TCB         *RMTCBPerioTbl[HIGHEST_PERIO + 1];   /* Table of pointers to created RM TCBs    */
#define RM_TASK          10                                   /*定义RM任务的最大数目为10*/





/*
*********************************************************************************************************
*                                          TASK CONTROL BLOCK
*********************************************************************************************************
*/

typedef struct os_tcb {
    OS_STK        *OSTCBStkPtr;        /* Pointer to current top of stack                              */

#if OS_TASK_CREATE_EXT_EN > 0
    void          *OSTCBExtPtr;        /* Pointer to user definable data for TCB extension             */
    OS_STK        *OSTCBStkBottom;     /* Pointer to bottom of stack                                   */
    INT32U         OSTCBStkSize;       /* Size of task stack (in number of stack elements)             */
    INT16U         OSTCBOpt;           /* Task options as passed by OSTaskCreateExt()                  */
    INT16U         OSTCBId;            /* Task ID (0..65535)                                           */
#endif

    struct os_tcb *OSTCBNext;          /* Pointer to next     TCB in the TCB list                      */
    struct os_tcb *OSTCBPrev;          /* Pointer to previous TCB in the TCB list                      */

#if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0)
    OS_EVENT      *OSTCBEventPtr;      /* Pointer to event control block                               */
#endif

#if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0)
    void          *OSTCBMsg;           /* Message received from OSMboxPost() or OSQPost()              */
#endif

#if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
#if OS_TASK_DEL_EN > 0
    OS_FLAG_NODE  *OSTCBFlagNode;      /* Pointer to event flag node                                   */
#endif    
    OS_FLAGS       OSTCBFlagsRdy;      /* Event flags that made task ready to run                      */
#endif

    INT16U         OSTCBDly;           /* Nbr ticks to delay task or, timeout waiting for event        */
    INT8U          OSTCBStat;          /* Task status                                                  */
    INT8U          OSTCBPrio;          /* Task priority (0 == highest, 63 == lowest)                   */

    INT8U          OSTCBX;             /* Bit position in group  corresponding to task priority (0..7) */
    INT8U          OSTCBY;             /* Index into ready table corresponding to task priority        */
    INT8U          OSTCBBitX;          /* Bit mask to access bit position in ready table               */
    INT8U          OSTCBBitY;          /* Bit mask to access bit position in ready group               */

#if OS_TASK_DEL_EN > 0
    BOOLEAN        OSTCBDelReq;        /* Indicates whether a task needs to delete itself              */
#endif

#if RM_TASK_EN > 0
    RM_TCB        *OS_TO_RMTCBPtr;     /* 指向rm_tcb控制块 */ 
#endif    
} OS_TCB;

/*
*********************************************************************************************************
*                                          RM_TASK CONTROL BLOCK
*********************************************************************************************************
*/

typedef struct rm_tcb {

     OS_TCB         *RM_TO_OSTCBPtr;         /* 指向os_tcb控制块 */ 
      
     INT16U          RMTCBStartTime             /* 第一次开始执行时间 */
     INT16U          RMTCBInitTime;             /* 初始执行时间       */
     INT16U          RMTCBRemainTime;           /* 所剩执行时间       */  
    
     INT16U          RMTCBPeriods;              /* 任务周期           */
     INT16U          RMTCBInitPeriodsNum;          /* 初始周期数         */ 
     INT16U          RMTCBRemainPeriodsNum;        /* 所剩周期数         */
     
     struct rm_tcb  *RMTCBNext;          /* Pointer to next     RMTCB in the TCB list      */
     struct rm_tcb  *RMTCBPrev;          /* Pointer to previous RMTCB in the TCB list      */  
} RM_TCB;

⌨️ 快捷键说明

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