📄 os_time.p
字号:
#line 1 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\Task\\os_time.c"
#line 1 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\CPU\\os_cpu.h"
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef unsigned short INT16U;
typedef signed short INT16S;
typedef unsigned long INT32U;
typedef signed long INT32S;
typedef float FP32;
typedef double FP64;
typedef unsigned short OS_STK;
typedef unsigned char OS_CPU_SR;
void Tmr_Init(void);
void Tmr_ISRClr(void);
OS_CPU_SR OSCPUSaveSR(void);
void OSCPURestoreSR(OS_CPU_SR os_cpu_sr);
#line 18 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\Public\\os_cfg.h"
#line 50 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\Public\\os_cfg.h"
#line 59 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\Public\\os_cfg.h"
#line 83 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\Public\\os_cfg.h"
#line 102 "E:\\Study\\ucOS-II\\ucOS-II\\PLATFORM\\Public\\os_cfg.h"
typedef INT16U OS_FLAGS;
#line 19 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 80 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 92 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 174 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 181 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 222 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
typedef struct os_event {
INT8U OSEventType;
INT8U OSEventGrp;
INT16U OSEventCnt;
void *OSEventPtr;
INT8U OSEventTbl[((4) / 8 + 1)];
} OS_EVENT;
#line 288 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
typedef struct os_mbox_data {
void *OSMsg;
INT8U OSEventTbl[((4) / 8 + 1)];
INT8U OSEventGrp;
} OS_MBOX_DATA;
#line 332 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
typedef struct os_mutex_data {
INT8U OSEventTbl[((4) / 8 + 1)];
INT8U OSEventGrp;
INT8U OSValue;
INT8U OSOwnerPrio;
INT8U OSMutexPIP;
} OS_MUTEX_DATA;
typedef struct os_q {
struct os_q *OSQPtr;
void **OSQStart;
void **OSQEnd;
void **OSQIn;
void **OSQOut;
INT16U OSQSize;
INT16U OSQEntries;
} OS_Q;
typedef struct os_q_data {
void *OSMsg;
INT16U OSNMsgs;
INT16U OSQSize;
INT8U OSEventTbl[((4) / 8 + 1)];
INT8U OSEventGrp;
} OS_Q_DATA;
#line 390 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 403 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
typedef struct os_tcb {
OS_STK *OSTCBStkPtr;
#line 421 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
struct os_tcb *OSTCBNext;
struct os_tcb *OSTCBPrev;
OS_EVENT *OSTCBEventPtr;
void *OSTCBMsg;
#line 439 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
INT16U OSTCBDly;
INT8U OSTCBStat;
INT8U OSTCBPrio;
INT8U OSTCBX;
INT8U OSTCBY;
INT8U OSTCBBitX;
INT8U OSTCBBitY;
#line 460 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
} OS_TCB;
extern INT32U OSCtxSwCtr;
extern OS_EVENT *OSEventFreeList;
extern OS_EVENT OSEventTbl[5];
extern INT8S OSCPUUsage;
extern INT32U OSIdleCtrMax;
extern INT32U OSIdleCtrRun;
extern BOOLEAN OSStatRdy;
extern OS_STK OSTaskStatStk[50];
extern INT8U OSIntNesting;
extern INT8U OSIntExitY;
extern INT8U OSLockNesting;
extern INT8U OSPrioCur;
extern INT8U OSPrioHighRdy;
extern INT8U OSRdyGrp;
extern INT8U OSRdyTbl[((4) / 8 + 1)];
extern BOOLEAN OSRunning;
extern INT8U OSTaskCtr;
extern volatile INT32U OSIdleCtr;
extern OS_STK OSTaskIdleStk[25];
extern OS_TCB *OSTCBCur;
extern OS_TCB *OSTCBFreeList;
extern OS_TCB *OSTCBHighRdy;
extern OS_TCB *OSTCBList;
extern OS_TCB *OSTCBPrioTbl[4 + 1];
extern OS_TCB OSTCBTbl[2 + 2];
extern OS_Q *OSQFreeList;
extern OS_Q OSQTbl[2];
extern INT8U const OSMapTbl[8];
extern INT8U const OSUnMapTbl[256];
#line 592 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
void *OSMboxAccept(OS_EVENT *pevent);
OS_EVENT *OSMboxCreate(void *msg);
OS_EVENT *OSMboxDel(OS_EVENT *pevent, INT8U opt, INT8U *err);
void *OSMboxPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);
INT8U OSMboxPost(OS_EVENT *pevent, void *msg);
INT8U OSMboxPostOpt(OS_EVENT *pevent, void *msg, INT8U opt);
INT8U OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *p_mbox_data);
#line 647 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
INT8U OSMutexAccept(OS_EVENT *pevent, INT8U *err);
OS_EVENT *OSMutexCreate(INT8U prio, INT8U *err);
OS_EVENT *OSMutexDel(OS_EVENT *pevent, INT8U opt, INT8U *err);
void OSMutexPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);
INT8U OSMutexPost(OS_EVENT *pevent);
INT8U OSMutexQuery(OS_EVENT *pevent, OS_MUTEX_DATA *p_mutex_data);
void *OSQAccept (OS_EVENT *pevent);
OS_EVENT *OSQCreate(void **start, INT16U size);
OS_EVENT *OSQDel(OS_EVENT *pevent, INT8U opt, INT8U *err);
INT8U OSQFlush(OS_EVENT *pevent);
void *OSQPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);
INT8U OSQPost(OS_EVENT *pevent, void *msg);
INT8U OSQPostFront(OS_EVENT *pevent, void *msg);
INT8U OSQPostOpt(OS_EVENT *pevent, void *msg, INT8U opt);
INT8U OSQQuery(OS_EVENT *pevent, OS_Q_DATA *p_q_data);
#line 744 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
INT8U OSTaskCreate(void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio);
#line 770 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
void OSTimeDly(INT16U ticks);
void OSTimeTick(void);
void OSInit(void);
void OSIntEnter(void);
void OSIntExit(void);
void OSStart(void);
void OSStatInit(void);
INT16U OSVersion(void);
INT8U OS_EventTaskRdy(OS_EVENT *pevent, void *msg, INT8U msk);
void OS_EventTaskWait(OS_EVENT *pevent);
void OS_EventTO(OS_EVENT *pevent);
void OS_EventWaitListInit(OS_EVENT *pevent);
void OS_MemClr(INT8U *pdest, INT16U size);
void OS_MemCopy(INT8U *pdest, INT8U *psrc, INT16U size);
void OS_QInit(void);
void OS_Sched(void);
void OS_TaskIdle(void *p_arg);
void OS_TaskStat(void *p_arg);
INT8U OS_TCBInit(INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U stk_size, void *pext, INT16U opt);
void OSInitHookBegin(void);
void OSInitHookEnd(void);
void OSIntCtxSw(void);
void OSStartHighRdy(void);
void OSTaskCreateHook(OS_TCB *ptcb);
void OSTaskDelHook(OS_TCB *ptcb);
void OSTaskIdleHook(void);
void OSTaskStatHook(void);
OS_STK *OSTaskStkInit(void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt);
void OSTaskSwHook(void);
void OSTCBInitHook(OS_TCB *ptcb);
void OSTimeTickHook(void);
void OSCtxSw(void);
void OSTickISR(void);
#line 982 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1016 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1050 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1072 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1098 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1140 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1166 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 1258 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\ucos_ii.h"
#line 17 "E:\\Study\\ucOS-II\\ucOS-II\\ucOS kernel\\Task\\os_time.c"
void OSTimeDly (INT16U ticks)
{
OS_CPU_SR cpu_sr;
INT8U y;
if (ticks > 0) {
cpu_sr = OSCPUSaveSR();
y = OSTCBCur->OSTCBY;
OSRdyTbl[y] &= ~OSTCBCur->OSTCBBitX;
if (OSRdyTbl[y] == 0) {
OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
}
OSTCBCur->OSTCBDly = ticks;
OSCPURestoreSR(cpu_sr);
OS_Sched();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -