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

📄 rm.h

📁 这是一个修改ucos的操作系统
💻 H
字号:
//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
**********************************************************************************************************
*/
#include "ucos_ii.h"
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
*********************************************************************************************************
*/

#if RM_TASK_EN > 0
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;
#endif

/*
*********************************************************************************************************
*                                          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 + -