?? rm.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 + -