📄 os.h
字号:
OS_ERR_OS_NOT_RUNNING = 24201u,
OS_ERR_OS_RUNNING = 24202u,
OS_ERR_P = 25000u,
OS_ERR_PEND_ABORT = 25001u,
OS_ERR_PEND_ABORT_ISR = 25002u,
OS_ERR_PEND_ABORT_NONE = 25003u,
OS_ERR_PEND_ABORT_SELF = 25004u,
OS_ERR_PEND_DEL = 25005u,
OS_ERR_PEND_ISR = 25006u,
OS_ERR_PEND_LOCKED = 25007u,
OS_ERR_PEND_WOULD_BLOCK = 25008u,
OS_ERR_POST_NULL_PTR = 25101u,
OS_ERR_POST_ISR = 25102u,
OS_ERR_PRIO_EXIST = 25201u,
OS_ERR_PRIO = 25202u,
OS_ERR_PRIO_INVALID = 25203u,
OS_ERR_PTR_INVALID = 25301u,
OS_ERR_Q = 26000u,
OS_ERR_Q_FULL = 26001u,
OS_ERR_Q_EMPTY = 26002u,
OS_ERR_Q_MAX = 26003u,
OS_ERR_Q_SIZE = 26004u,
OS_ERR_R = 27000u,
OS_ERR_REG_ID_INVALID = 27001u,
OS_ERR_ROUND_ROBIN_1 = 27002u,
OS_ERR_ROUND_ROBIN_DISABLED = 27003u,
OS_ERR_S = 28000u,
OS_ERR_SCHED_INVALID_TIME_SLICE = 28001u,
OS_ERR_SCHED_LOCK_ISR = 28002u,
OS_ERR_SCHED_LOCKED = 28003u,
OS_ERR_SCHED_NOT_LOCKED = 28004u,
OS_ERR_SCHED_UNLOCK_ISR = 28005u,
OS_ERR_SEM_OVF = 28101u,
OS_ERR_SET_ISR = 28102u,
OS_ERR_STAT_RESET_ISR = 28201u,
OS_ERR_STATE_INVALID = 28202u,
OS_ERR_STATUS_INVALID = 28203u,
OS_ERR_STK_INVALID = 28204u,
OS_ERR_STK_SIZE_INVALID = 28205u,
OS_ERR_STK_LIMIT_INVALID = 28206u,
OS_ERR_T = 29000u,
OS_ERR_TASK_CHANGE_PRIO_ISR = 29001u,
OS_ERR_TASK_CREATE_ISR = 29002u,
OS_ERR_TASK_DEL = 29003u,
OS_ERR_TASK_DEL_IDLE = 29004u,
OS_ERR_TASK_DEL_INVALID = 29005u,
OS_ERR_TASK_DEL_ISR = 29006u,
OS_ERR_TASK_INVALID = 29007u,
OS_ERR_TASK_NO_MORE_TCB = 29008u,
OS_ERR_TASK_NOT_DLY = 29009u,
OS_ERR_TASK_NOT_EXIST = 29010u,
OS_ERR_TASK_NOT_SUSPENDED = 29011u,
OS_ERR_TASK_OPT = 29012u,
OS_ERR_TASK_RESUME_ISR = 29013u,
OS_ERR_TASK_RESUME_PRIO = 29014u,
OS_ERR_TASK_RESUME_SELF = 29015u,
OS_ERR_TASK_STK_CHK_ISR = 29016u,
OS_ERR_TASK_SUSPENDED = 29017u,
OS_ERR_TASK_SUSPEND_IDLE = 29018u,
OS_ERR_TASK_SUSPEND_INT_HANDLER = 29019u,
OS_ERR_TASK_SUSPEND_ISR = 29020u,
OS_ERR_TASK_SUSPEND_PRIO = 29021u,
OS_ERR_TASK_WAITING = 29022u,
OS_ERR_TCB_INVALID = 29101u,
OS_ERR_TICK_WHEEL_SIZE = 29201u,
OS_ERR_TIME_DLY_ISR = 29301u,
OS_ERR_TIME_DLY_RESUME_ISR = 29302u,
OS_ERR_TIME_GET_ISR = 29303u,
OS_ERR_TIME_INVALID_HOURS = 29304u,
OS_ERR_TIME_INVALID_MINUTES = 29305u,
OS_ERR_TIME_INVALID_SECONDS = 29306u,
OS_ERR_TIME_INVALID_MILLISECONDS = 29307u,
OS_ERR_TIME_NOT_DLY = 29308u,
OS_ERR_TIME_SET_ISR = 29309u,
OS_ERR_TIME_ZERO_DLY = 29310u,
OS_ERR_TIMEOUT = 29401u,
OS_ERR_TMR_INACTIVE = 29501u,
OS_ERR_TMR_INVALID_DEST = 29502u,
OS_ERR_TMR_INVALID_DLY = 29503u,
OS_ERR_TMR_INVALID_PERIOD = 29504u,
OS_ERR_TMR_INVALID_STATE = 29505u,
OS_ERR_TMR_INVALID = 29506u,
OS_ERR_TMR_ISR = 29507u,
OS_ERR_TMR_NO_CALLBACK = 29508u,
OS_ERR_TMR_NON_AVAIL = 29509u,
OS_ERR_TMR_STK_INVALID = 29510u,
OS_ERR_TMR_STOPPED = 29511u,
OS_ERR_U = 30000u,
OS_ERR_V = 31000u,
OS_ERR_W = 32000u,
OS_ERR_X = 33000u,
OS_ERR_Y = 34000u,
OS_ERR_YIELD_ISR = 34001u,
OS_ERR_Z = 35000u
} OS_ERR;
/*$PAGE*/
/*
************************************************************************************************************************
************************************************************************************************************************
* D A T A T Y P E S
************************************************************************************************************************
************************************************************************************************************************
*/
typedef struct os_flag_grp OS_FLAG_GRP;
typedef struct os_mem OS_MEM;
typedef struct os_msg OS_MSG;
typedef struct os_msg_pool OS_MSG_POOL;
typedef struct os_msg_q OS_MSG_Q;
typedef struct os_mutex OS_MUTEX;
typedef struct os_int_q OS_INT_Q;
typedef struct os_q OS_Q;
typedef struct os_sem OS_SEM;
typedef void (*OS_TASK_PTR)(void *p_arg);
typedef struct os_tcb OS_TCB;
typedef struct os_rdy_list OS_RDY_LIST;
typedef struct os_tick_spoke OS_TICK_SPOKE;
typedef void (*OS_TMR_CALLBACK_PTR)(void *p_tmr, void *p_arg);
typedef struct os_tmr OS_TMR;
typedef struct os_tmr_spoke OS_TMR_SPOKE;
typedef struct os_pend_data OS_PEND_DATA;
typedef struct os_pend_list OS_PEND_LIST;
typedef struct os_pend_obj OS_PEND_OBJ;
#if OS_CFG_APP_HOOKS_EN > 0u
typedef void (*OS_APP_HOOK_VOID)(void);
typedef void (*OS_APP_HOOK_TCB)(OS_TCB *p_tcb);
#endif
/*$PAGE*/
/*
************************************************************************************************************************
************************************************************************************************************************
* D A T A S T R U C T U R E S
************************************************************************************************************************
************************************************************************************************************************
*/
/*
------------------------------------------------------------------------------------------------------------------------
* ISR POST DATA
------------------------------------------------------------------------------------------------------------------------
*/
#if OS_CFG_ISR_POST_DEFERRED_EN > 0u
struct os_int_q {
OS_OBJ_TYPE Type; /* Type of object placed in the circular list */
OS_INT_Q *NextPtr; /* Pointer to next OS_INT_Q in circular list */
void *ObjPtr; /* Pointer to object placed in the queue */
void *MsgPtr; /* Pointer to message if posting to a message queue */
OS_MSG_SIZE MsgSize; /* Message Size if posting to a message queue */
OS_FLAGS Flags; /* Value of flags if posting to an event flag group */
OS_OPT Opt; /* Post Options */
CPU_TS TS; /* Timestamp */
};
#endif
/*
------------------------------------------------------------------------------------------------------------------------
* READY LIST
------------------------------------------------------------------------------------------------------------------------
*/
struct os_rdy_list {
OS_TCB *HeadPtr; /* Pointer to task that will run at selected priority */
OS_TCB *TailPtr; /* Pointer to last task at selected priority */
OS_OBJ_QTY NbrEntries; /* Number of entries at selected priority */
};
/*
------------------------------------------------------------------------------------------------------------------------
* PEND DATA, PEND LIST and PEND OBJ
------------------------------------------------------------------------------------------------------------------------
*/
struct os_pend_data {
OS_PEND_DATA *PrevPtr;
OS_PEND_DATA *NextPtr;
OS_TCB *TCBPtr;
OS_PEND_OBJ *PendObjPtr;
OS_PEND_OBJ *RdyObjPtr;
void *RdyMsgPtr;
OS_MSG_SIZE RdyMsgSize;
CPU_TS RdyTS;
};
struct os_pend_list {
OS_PEND_DATA *HeadPtr;
OS_PEND_DATA *TailPtr;
OS_OBJ_QTY NbrEntries;
};
struct os_pend_obj {
OS_OBJ_TYPE Type;
CPU_CHAR *NamePtr;
OS_PEND_LIST PendList; /* List of tasks pending on object */
#if OS_CFG_DBG_EN > 0u
void *DbgPrevPtr;
void *DbgNextPtr;
CPU_CHAR *DbgNamePtr;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -