Go to the source code of this file.
Functions | |
| void | OsInit (void) |
| void | OsStart (void) |
| void | OsYield (void) |
| void | OsSleep (void) |
| void | OsFinish (void) |
| void | OsCoreInit (void) |
Variables | |
| INT32U | OSTaskSwitch |
| INT32U | OSTCBCur |
| INT32U | OSTCBHighRdy |
| INT32U | OSPrioCur |
| INT32U | OSPrioHighRdy |
| INT32U | OSTaskSwHook |
| INT32U | OSIntNesting |
| INT32U | OSRunning |
| void OsCoreInit | ( | void | ) |
Definition at line 29 of file os_core.c.
00029 { 00030 OSIntNesting=0; 00031 OSTaskSwitch=0; 00032 OSRunning=0; 00033 }
| void OsFinish | ( | void | ) |
Definition at line 70 of file os_core.c.
00070 { // Task killed 00071 OS_TCB *pOsTcb; 00072 00073 OS_ENTER_CRITICAL(); 00074 pOsTcb=(OS_TCB *)OSTCBCur; 00075 pOsTcb->Status=OS_TASK_FREE; 00076 pOsTcb->Id=0; 00077 pOsTcb->Priority=0; 00078 pOsTcb->Prev=(OS_TCB *)0; 00079 pOsTcb->Next=(OS_TCB *)0; 00080 OsTaskFreeTaskPut(pOsTcb); // put task tcb back to free list 00081 OsSchedulerRunNext(); 00082 OS_EXIT_CRITICAL(); 00083 }
| void OsInit | ( | void | ) |
Definition at line 34 of file os_core.c.
00034 { 00035 OsCoreInit(); 00036 OsTaskInit(); 00037 OsSchedulerInit(); 00038 OsTimeInit(); 00039 OsEventInit(); 00040 OsSemaphoreInit(); 00041 OsFlagInit(); 00042 OsMboxInit(); 00043 OsMutexInit(); 00044 }
| void OsSleep | ( | void | ) |
Definition at line 58 of file os_core.c.
00058 { // Task suspend 00059 OS_TCB *pOsTcb; 00060 00061 OS_ENTER_CRITICAL(); 00062 pOsTcb=(OS_TCB *)OSTCBCur; 00063 pOsTcb->Status=OS_TASK_SUSPEND; 00064 pOsTcb->PendingType=OS_PENDING_NONE; 00065 pOsTcb->TimeDelay=0; 00066 OsTaskSuspendTaskPut(pOsTcb); // put task into suspend list 00067 OsSchedulerRunNext(); 00068 OS_EXIT_CRITICAL(); 00069 }
| void OsStart | ( | void | ) |
Definition at line 45 of file os_core.c.
00045 { // Os gets first task to run 00046 if(OSRunning==FALSE){ 00047 if(OsSchedulerStartHigh()==TRUE){ 00048 OSStartHighRdy(); 00049 } 00050 } 00051 while(1); // If no task, halt os here. 00052 }
| void OsYield | ( | void | ) |
Definition at line 53 of file os_core.c.
00053 { // Task switchs out 00054 OS_ENTER_CRITICAL(); 00055 OsSchedulerRunNext(); 00056 OS_EXIT_CRITICAL(); 00057 }
| INT32U OSIntNesting |
| INT32U OSPrioHighRdy |
| INT32U OSTaskSwHook |
| INT32U OSTaskSwitch |
| INT32U OSTCBHighRdy |
1.5.6