25 #define OS_VERSION 252 41 #define OS_PRIO_SELF 0xFF 43 #if OS_TASK_STAT_EN > 0 44 #define OS_N_SYS_TASKS 2 46 #define OS_N_SYS_TASKS 1 49 #define OS_STAT_PRIO (OS_LOWEST_PRIO - 1) 50 #define OS_IDLE_PRIO (OS_LOWEST_PRIO) 52 #define OS_EVENT_TBL_SIZE ((OS_LOWEST_PRIO) / 8 + 1) 53 #define OS_RDY_TBL_SIZE ((OS_LOWEST_PRIO) / 8 + 1) 55 #define OS_TASK_IDLE_ID 65535 56 #define OS_TASK_STAT_ID 65534 58 #define OS_EVENT_EN (((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0)) 66 #define OS_STAT_RDY 0x00 67 #define OS_STAT_SEM 0x01 68 #define OS_STAT_MBOX 0x02 69 #define OS_STAT_Q 0x04 70 #define OS_STAT_SUSPEND 0x08 71 #define OS_STAT_MUTEX 0x10 72 #define OS_STAT_FLAG 0x20 79 #define OS_EVENT_TYPE_UNUSED 0 80 #define OS_EVENT_TYPE_MBOX 1 81 #define OS_EVENT_TYPE_Q 2 82 #define OS_EVENT_TYPE_SEM 3 83 #define OS_EVENT_TYPE_MUTEX 4 84 #define OS_EVENT_TYPE_FLAG 5 91 #define OS_FLAG_WAIT_CLR_ALL 0 92 #define OS_FLAG_WAIT_CLR_AND 0 94 #define OS_FLAG_WAIT_CLR_ANY 1 95 #define OS_FLAG_WAIT_CLR_OR 1 97 #define OS_FLAG_WAIT_SET_ALL 2 98 #define OS_FLAG_WAIT_SET_AND 2 100 #define OS_FLAG_WAIT_SET_ANY 3 101 #define OS_FLAG_WAIT_SET_OR 3 104 #define OS_FLAG_CONSUME 0x80 107 #define OS_FLAG_CLR 0 108 #define OS_FLAG_SET 1 115 #define OS_DEL_NO_PEND 0 116 #define OS_DEL_ALWAYS 1 125 #define OS_POST_OPT_NONE 0x00 126 #define OS_POST_OPT_BROADCAST 0x01 127 #define OS_POST_OPT_FRONT 0x02 134 #define OS_TASK_OPT_STK_CHK 0x0001 135 #define OS_TASK_OPT_STK_CLR 0x0002 136 #define OS_TASK_OPT_SAVE_FP 0x0004 145 #define OS_ERR_EVENT_TYPE 1 146 #define OS_ERR_PEND_ISR 2 147 #define OS_ERR_POST_NULL_PTR 3 148 #define OS_ERR_PEVENT_NULL 4 149 #define OS_ERR_POST_ISR 5 150 #define OS_ERR_QUERY_ISR 6 151 #define OS_ERR_INVALID_OPT 7 152 #define OS_ERR_TASK_WAITING 8 154 #define OS_TIMEOUT 10 155 #define OS_TASK_NOT_EXIST 11 157 #define OS_MBOX_FULL 20 161 #define OS_PRIO_EXIST 40 162 #define OS_PRIO_ERR 41 163 #define OS_PRIO_INVALID 42 165 #define OS_SEM_OVF 50 167 #define OS_TASK_DEL_ERR 60 168 #define OS_TASK_DEL_IDLE 61 169 #define OS_TASK_DEL_REQ 62 170 #define OS_TASK_DEL_ISR 63 172 #define OS_NO_MORE_TCB 70 174 #define OS_TIME_NOT_DLY 80 175 #define OS_TIME_INVALID_MINUTES 81 176 #define OS_TIME_INVALID_SECONDS 82 177 #define OS_TIME_INVALID_MILLI 83 178 #define OS_TIME_ZERO_DLY 84 180 #define OS_TASK_SUSPEND_PRIO 90 181 #define OS_TASK_SUSPEND_IDLE 91 183 #define OS_TASK_RESUME_PRIO 100 184 #define OS_TASK_NOT_SUSPENDED 101 186 #define OS_MEM_INVALID_PART 110 187 #define OS_MEM_INVALID_BLKS 111 188 #define OS_MEM_INVALID_SIZE 112 189 #define OS_MEM_NO_FREE_BLKS 113 190 #define OS_MEM_FULL 114 191 #define OS_MEM_INVALID_PBLK 115 192 #define OS_MEM_INVALID_PMEM 116 193 #define OS_MEM_INVALID_PDATA 117 194 #define OS_MEM_INVALID_ADDR 118 196 #define OS_ERR_NOT_MUTEX_OWNER 120 198 #define OS_TASK_OPT_ERR 130 200 #define OS_ERR_DEL_ISR 140 201 #define OS_ERR_CREATE_ISR 141 203 #define OS_FLAG_INVALID_PGRP 150 204 #define OS_FLAG_ERR_WAIT_TYPE 151 205 #define OS_FLAG_ERR_NOT_RDY 152 206 #define OS_FLAG_INVALID_OPT 153 207 #define OS_FLAG_GRP_DEPLETED 154 216 #if (OS_EVENT_EN > 0) && (OS_MAX_EVENTS > 0) 233 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) 236 void *OSFlagWaitList;
243 void *OSFlagNodeNext;
244 void *OSFlagNodePrev;
246 void *OSFlagNodeFlagGrp;
248 INT8U OSFlagNodeWaitType;
277 #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) 321 typedef struct os_q {
361 #if OS_TASK_CREATE_EXT_EN > 0 378 #if OS_TASK_CREATE_EXT_EN > 0 389 #if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0) 390 OS_EVENT *OSTCBEventPtr;
393 #if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) 397 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) 398 #if OS_TASK_DEL_EN > 0 399 OS_FLAG_NODE *OSTCBFlagNode;
413 #if OS_TASK_DEL_EN > 0 427 #if (OS_EVENT_EN > 0) && (OS_MAX_EVENTS > 0) 428 OS_EXT OS_EVENT *OSEventFreeList;
432 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) 434 OS_EXT OS_FLAG_GRP *OSFlagFreeList;
437 #if OS_TASK_STAT_EN > 0 438 OS_EXT
INT8S OSCPUUsage;
439 OS_EXT
INT32U OSIdleCtrMax;
440 OS_EXT
INT32U OSIdleCtrRun;
472 #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) 473 OS_EXT OS_MEM *OSMemFreeList;
477 #if (OS_Q_EN > 0) && (OS_MAX_QS > 0) 478 OS_EXT OS_Q *OSQFreeList;
482 #if OS_TIME_GET_SET_EN > 0 483 OS_EXT
volatile INT32U OSTime;
505 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) 507 #if OS_FLAG_ACCEPT_EN > 0 513 #if OS_FLAG_DEL_EN > 0 514 OS_FLAG_GRP *OSFlagDel(OS_FLAG_GRP *pgrp,
INT8U opt,
INT8U *err);
520 #if OS_FLAG_QUERY_EN > 0 533 #if OS_MBOX_ACCEPT_EN > 0 539 #if OS_MBOX_DEL_EN > 0 545 #if OS_MBOX_POST_EN > 0 549 #if OS_MBOX_POST_OPT_EN > 0 553 #if OS_MBOX_QUERY_EN > 0 564 #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) 567 void *OSMemGet(OS_MEM *pmem,
INT8U *err);
568 INT8U OSMemPut(OS_MEM *pmem,
void *pblk);
570 #if OS_MEM_QUERY_EN > 0 571 INT8U OSMemQuery(OS_MEM *pmem, OS_MEM_DATA *pdata);
584 #if OS_MUTEX_ACCEPT_EN > 0 585 INT8U OSMutexAccept(OS_EVENT *pevent,
INT8U *err);
588 OS_EVENT *OSMutexCreate(
INT8U prio,
INT8U *err);
590 #if OS_MUTEX_DEL_EN > 0 591 OS_EVENT *OSMutexDel(OS_EVENT *pevent,
INT8U opt,
INT8U *err);
594 void OSMutexPend(OS_EVENT *pevent,
INT16U timeout,
INT8U *err);
595 INT8U OSMutexPost(OS_EVENT *pevent);
597 #if OS_MUTEX_QUERY_EN > 0 598 INT8U OSMutexQuery(OS_EVENT *pevent, OS_MUTEX_DATA *pdata);
610 #if (OS_Q_EN > 0) && (OS_MAX_QS > 0) 612 #if OS_Q_ACCEPT_EN > 0 613 void *OSQAccept(OS_EVENT *pevent);
616 OS_EVENT *OSQCreate(
void **start,
INT16U size);
619 OS_EVENT *OSQDel(OS_EVENT *pevent,
INT8U opt,
INT8U *err);
622 #if OS_Q_FLUSH_EN > 0 623 INT8U OSQFlush(OS_EVENT *pevent);
626 void *OSQPend(OS_EVENT *pevent,
INT16U timeout,
INT8U *err);
629 INT8U OSQPost(OS_EVENT *pevent,
void *msg);
632 #if OS_Q_POST_FRONT_EN > 0 633 INT8U OSQPostFront(OS_EVENT *pevent,
void *msg);
636 #if OS_Q_POST_OPT_EN > 0 637 INT8U OSQPostOpt(OS_EVENT *pevent,
void *msg,
INT8U opt);
640 #if OS_Q_QUERY_EN > 0 641 INT8U OSQQuery(OS_EVENT *pevent, OS_Q_DATA *pdata);
654 #if OS_SEM_ACCEPT_EN > 0 655 INT16U OSSemAccept(OS_EVENT *pevent);
658 OS_EVENT *OSSemCreate(
INT16U cnt);
660 #if OS_SEM_DEL_EN > 0 661 OS_EVENT *OSSemDel(OS_EVENT *pevent,
INT8U opt,
INT8U *err);
664 void OSSemPend(OS_EVENT *pevent,
INT16U timeout,
INT8U *err);
665 INT8U OSSemPost(OS_EVENT *pevent);
667 #if OS_SEM_QUERY_EN > 0 668 INT8U OSSemQuery(OS_EVENT *pevent, OS_SEM_DATA *pdata);
679 #if OS_TASK_CHANGE_PRIO_EN > 0 683 #if OS_TASK_CREATE_EN > 0 684 INT8U OSTaskCreate(
void (*task)(
void *pd),
void *pdata,
OS_STK *ptos,
INT8U prio);
687 #if OS_TASK_CREATE_EXT_EN > 0 688 INT8U OSTaskCreateExt(
void (*task)(
void *pd),
699 #if OS_TASK_DEL_EN > 0 704 #if OS_TASK_SUSPEND_EN > 0 709 #if OS_TASK_CREATE_EXT_EN > 0 710 INT8U OSTaskStkChk(
INT8U prio, OS_STK_DATA *pdata);
713 #if OS_TASK_QUERY_EN > 0 726 #if OS_TIME_DLY_HMSM_EN > 0 730 #if OS_TIME_DLY_RESUME_EN > 0 734 #if OS_TIME_GET_SET_EN > 0 736 void OSTimeSet(
INT32U ticks);
752 #if OS_SCHED_LOCK_EN > 0 753 void OSSchedLock(
void);
754 void OSSchedUnlock(
void);
771 #if OS_TASK_DEL_EN > 0 775 #if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0) 776 INT8U OS_EventTaskRdy(OS_EVENT *pevent,
void *msg,
INT8U msk);
777 void OS_EventTaskWait(OS_EVENT *pevent);
778 void OS_EventTO(OS_EVENT *pevent);
779 void OS_EventWaitListInit(OS_EVENT *pevent);
782 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) 783 void OS_FlagInit(
void);
784 void OS_FlagUnlink(OS_FLAG_NODE *pnode);
787 #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) 788 void OS_MemInit(
void);
799 #if OS_TASK_STAT_EN > 0 800 void OS_TaskStat(
void *data);
813 #if OS_VERSION >= 204 825 #if OS_VERSION >= 251 833 #if OS_VERSION >= 204 846 #ifndef OS_ISR_PROTO_EXT 848 void OSTickISR(
void);
871 #error "OS_CFG.H, Missing OS_FLAG_EN: Enable (1) or Disable (0) code generation for Event Flags" 874 #error "OS_CFG.H, Missing OS_MAX_FLAGS: Max. number of Event Flag Groups in your application" 876 #if OS_MAX_FLAGS == 0 877 #error "OS_CFG.H, OS_MAX_FLAGS must be > 0" 879 #if OS_MAX_FLAGS > 255 880 #error "OS_CFG.H, OS_MAX_FLAGS must be <= 255" 884 #ifndef OS_FLAG_WAIT_CLR_EN 885 #error "OS_CFG.H, Missing OS_FLAG_WAIT_CLR_EN: Include code for Wait on Clear EVENT FLAGS" 888 #ifndef OS_FLAG_ACCEPT_EN 889 #error "OS_CFG.H, Missing OS_FLAG_ACCEPT_EN: Include code for OSFlagAccept()" 892 #ifndef OS_FLAG_DEL_EN 893 #error "OS_CFG.H, Missing OS_FLAG_DEL_EN: Include code for OSFlagDel()" 896 #ifndef OS_FLAG_QUERY_EN 897 #error "OS_CFG.H, Missing OS_FLAG_QUERY_EN: Include code for OSFlagQuery()" 908 #error "OS_CFG.H, Missing OS_MBOX_EN: Enable (1) or Disable (0) code generation for MAILBOXES" 910 #ifndef OS_MBOX_ACCEPT_EN 911 #error "OS_CFG.H, Missing OS_MBOX_ACCEPT_EN: Include code for OSMboxAccept()" 914 #ifndef OS_MBOX_DEL_EN 915 #error "OS_CFG.H, Missing OS_MBOX_DEL_EN: Include code for OSMboxDel()" 918 #ifndef OS_MBOX_POST_EN 919 #error "OS_CFG.H, Missing OS_MBOX_POST_EN: Include code for OSMboxPost()" 922 #ifndef OS_MBOX_POST_OPT_EN 923 #error "OS_CFG.H, Missing OS_MBOX_POST_OPT_EN: Include code for OSMboxPostOpt()" 926 #ifndef OS_MBOX_QUERY_EN 927 #error "OS_CFG.H, Missing OS_MBOX_QUERY_EN: Include code for OSMboxQuery()" 938 #error "OS_CFG.H, Missing OS_MEM_EN: Enable (1) or Disable (0) code generation for MEMORY MANAGER" 940 #ifndef OS_MAX_MEM_PART 941 #error "OS_CFG.H, Missing OS_MAX_MEM_PART: Max. number of memory partitions" 943 #if OS_MAX_MEM_PART == 0 944 #error "OS_CFG.H, OS_MAX_MEM_PART must be > 0" 946 #if OS_MAX_MEM_PART > 255 947 #error "OS_CFG.H, OS_MAX_MEM_PART must be <= 255" 951 #ifndef OS_MEM_QUERY_EN 952 #error "OS_CFG.H, Missing OS_MEM_QUERY_EN: Include code for OSMemQuery()" 963 #error "OS_CFG.H, Missing OS_MUTEX_EN: Enable (1) or Disable (0) code generation for MUTEX" 965 #ifndef OS_MUTEX_ACCEPT_EN 966 #error "OS_CFG.H, Missing OS_MUTEX_ACCEPT_EN: Include code for OSMutexAccept()" 969 #ifndef OS_MUTEX_DEL_EN 970 #error "OS_CFG.H, Missing OS_MUTEX_DEL_EN: Include code for OSMutexDel()" 973 #ifndef OS_MUTEX_QUERY_EN 974 #error "OS_CFG.H, Missing OS_MUTEX_QUERY_EN: Include code for OSMutexQuery()" 985 #error "OS_CFG.H, Missing OS_Q_EN: Enable (1) or Disable (0) code generation for QUEUES" 988 #error "OS_CFG.H, Missing OS_MAX_QS: Max. number of queue control blocks" 991 #error "OS_CFG.H, OS_MAX_QS must be > 0" 994 #error "OS_CFG.H, OS_MAX_QS must be <= 255" 998 #ifndef OS_Q_ACCEPT_EN 999 #error "OS_CFG.H, Missing OS_Q_ACCEPT_EN: Include code for OSQAccept()" 1003 #error "OS_CFG.H, Missing OS_Q_DEL_EN: Include code for OSQDel()" 1006 #ifndef OS_Q_FLUSH_EN 1007 #error "OS_CFG.H, Missing OS_Q_FLUSH_EN: Include code for OSQFlush()" 1010 #ifndef OS_Q_POST_EN 1011 #error "OS_CFG.H, Missing OS_Q_POST_EN: Include code for OSQPost()" 1014 #ifndef OS_Q_POST_FRONT_EN 1015 #error "OS_CFG.H, Missing OS_Q_POST_FRONT_EN: Include code for OSQPostFront()" 1018 #ifndef OS_Q_POST_OPT_EN 1019 #error "OS_CFG.H, Missing OS_Q_POST_OPT_EN: Include code for OSQPostOpt()" 1022 #ifndef OS_Q_QUERY_EN 1023 #error "OS_CFG.H, Missing OS_Q_QUERY_EN: Include code for OSQQuery()" 1034 #error "OS_CFG.H, Missing OS_SEM_EN: Enable (1) or Disable (0) code generation for SEMAPHORES" 1036 #ifndef OS_SEM_ACCEPT_EN 1037 #error "OS_CFG.H, Missing OS_SEM_ACCEPT_EN: Include code for OSSemAccept()" 1040 #ifndef OS_SEM_DEL_EN 1041 #error "OS_CFG.H, Missing OS_SEM_DEL_EN: Include code for OSSemDel()" 1044 #ifndef OS_SEM_QUERY_EN 1045 #error "OS_CFG.H, Missing OS_SEM_QUERY_EN: Include code for OSSemQuery()" 1055 #ifndef OS_MAX_TASKS 1056 #error "OS_CFG.H, Missing OS_MAX_TASKS: Max. number of tasks in your application" 1058 #if OS_MAX_TASKS == 0 1059 #error "OS_CFG.H, OS_MAX_TASKS must be >= 2" 1061 #if OS_MAX_TASKS > 63 1062 #error "OS_CFG.H, OS_MAX_TASKS must be <= 63" 1066 #ifndef OS_TASK_IDLE_STK_SIZE 1067 #error "OS_CFG.H, Missing OS_TASK_IDLE_STK_SIZE: Idle task stack size" 1070 #ifndef OS_TASK_STAT_EN 1071 #error "OS_CFG.H, Missing OS_TASK_STAT_EN: Enable (1) or Disable(0) the statistics task" 1074 #ifndef OS_TASK_STAT_STK_SIZE 1075 #error "OS_CFG.H, Missing OS_TASK_STAT_STK_SIZE: Statistics task stack size" 1078 #ifndef OS_TASK_CHANGE_PRIO_EN 1079 #error "OS_CFG.H, Missing OS_TASK_CHANGE_PRIO_EN: Include code for OSTaskChangePrio()" 1082 #ifndef OS_TASK_CREATE_EN 1083 #error "OS_CFG.H, Missing OS_TASK_CREATE_EN: Include code for OSTaskCreate()" 1086 #ifndef OS_TASK_CREATE_EXT_EN 1087 #error "OS_CFG.H, Missing OS_TASK_CREATE_EXT_EN: Include code for OSTaskCreateExt()" 1090 #ifndef OS_TASK_DEL_EN 1091 #error "OS_CFG.H, Missing OS_TASK_DEL_EN: Include code for OSTaskDel()" 1094 #ifndef OS_TASK_SUSPEND_EN 1095 #error "OS_CFG.H, Missing OS_TASK_SUSPEND_EN: Include code for OSTaskSuspend() and OSTaskResume()" 1098 #ifndef OS_TASK_QUERY_EN 1099 #error "OS_CFG.H, Missing OS_TASK_QUERY_EN: Include code for OSTaskQuery()" 1108 #ifndef OS_TICKS_PER_SEC 1109 #error "OS_CFG.H, Missing OS_TICKS_PER_SEC: Sets the number of ticks in one second" 1112 #ifndef OS_TIME_DLY_HMSM_EN 1113 #error "OS_CFG.H, Missing OS_TIME_DLY_HMSM_EN: Include code for OSTimeDlyHMSM()" 1116 #ifndef OS_TIME_DLY_RESUME_EN 1117 #error "OS_CFG.H, Missing OS_TIME_DLY_RESUME_EN: Include code for OSTimeDlyResume()" 1120 #ifndef OS_TIME_GET_SET_EN 1121 #error "OS_CFG.H, Missing OS_TIME_GET_SET_EN: Include code for OSTimeGet() and OSTimeSet()" 1130 #ifndef OS_MAX_EVENTS 1131 #error "OS_CFG.H, Missing OS_MAX_EVENTS: Max. number of event control blocks in your application" 1133 #if OS_MAX_EVENTS == 0 1134 #error "OS_CFG.H, OS_MAX_EVENTS must be > 0" 1136 #if OS_MAX_EVENTS > 255 1137 #error "OS_CFG.H, OS_MAX_EVENTS must be <= 255" 1141 #ifndef OS_LOWEST_PRIO 1142 #error "OS_CFG.H, Missing OS_LOWEST_PRIO: Defines the lowest priority that can be assigned" 1145 #ifndef OS_ARG_CHK_EN 1146 #error "OS_CFG.H, Missing OS_ARG_CHK_EN: Enable (1) or Disable (0) argument checking" 1149 #ifndef OS_CPU_HOOKS_EN 1150 #error "OS_CFG.H, Missing OS_CPU_HOOKS_EN: uC/OS-II hooks are found in the processor port files when 1" 1153 #ifndef OS_SCHED_LOCK_EN 1154 #error "OS_CFG.H, Missing OS_SCHED_LOCK_EN: Include code for OSSchedLock() and OSSchedUnlock()" OS_EXT INT8U OSIntNesting
Definition: UCOS_II.H:445
struct os_tcb * OSTCBPrev
Definition: UCOS_II.H:387
unsigned char INT8U
Definition: OS_CPU.H:38
INT8U OSTCBStat
Definition: UCOS_II.H:405
void OSStatInit(void)
STATISTICS INITIALIZATION.
OS_EXT INT8U OSRdyTbl[OS_RDY_TBL_SIZE]
Definition: UCOS_II.H:454
#define OS_MAX_QS
Definition: OS_CFG.H:42
OS_EXT INT32U OSCtxSwCtr
Definition: UCOS_II.H:425
#define OS_MAX_EVENTS
Definition: OS_CFG.H:28
OS_EXT OS_TCB OSTCBTbl[OS_MAX_TASKS+OS_N_SYS_TASKS]
Definition: UCOS_II.H:470
void OSTaskDelHook(OS_TCB *ptcb)
TASK DELETION HOOK This function is called when a task is deleted.
Definition: OS_CPU_C.C:146
void OSInitHookEnd(void)
OS INITIALIZATION HOOK This This function is called by OSInit() at the end of OSInit().
Definition: OS_CPU_C.C:314
#define OS_TASK_IDLE_STK_SIZE
Definition: OS_CFG.H:53
OS_STK * OSTaskStkInit(void(*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
INITIALIZE A TASK'S STACK This function is called by either OSTaskCreate() or OSTaskCreateExt() to ...
Definition: OS_CPU_C.C:69
void OSInitHookBegin(void)
OS INITIALIZATION HOOK This function is called by OSInit() at the beginning of OSInit().
Definition: OS_CPU_C.C:291
INT8U OSMboxPost(OS_EVENT *pevent, void *msg)
POST MESSAGE TO A MAILBOX.
Definition: OS_MBOX.C:381
INT8U OSMboxPostOpt(OS_EVENT *pevent, void *msg, INT8U opt)
POST MESSAGE TO A MAILBOX.
Definition: OS_MBOX.C:458
INT16U OS_FLAGS
Definition: OS_CFG.H:131
OS_EXT OS_STK OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE]
Definition: UCOS_II.H:462
void OSIntEnter(void)
ENTER ISR.
Definition: OS_CORE.C:161
INT8U OS_TCBInit(INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U stk_size, void *pext, INT16U opt)
INITIALIZE TCB.
Definition: OS_CORE.C:1131
void OS_Sched(void)
SCHEDULER This function is called by other uC/OS-II services to determine whether a new...
Definition: OS_CORE.C:939
void OS_TaskIdle(void *data)
IDLE TASK.
Definition: OS_CORE.C:986
INT16U OSVersion(void)
GET VERSION.
Definition: OS_CORE.C:472
OS_EXT volatile INT32U OSIdleCtr
Definition: UCOS_II.H:460
OS_EXT OS_TCB * OSTCBHighRdy
Definition: UCOS_II.H:467
#define OS_EVENT_TBL_SIZE
Definition: UCOS_II.H:52
void OSTaskIdleHook(void)
IDLE TASK HOOK This function is called by OS_TaskIdle() which is executed whenever no other task is r...
Definition: OS_CPU_C.C:269
INT8U OSTCBPrio
Definition: UCOS_II.H:406
void * OSMboxPend(OS_EVENT *pevent, INT16U timeout, INT8U *err)
PEND ON MAILBOX FOR A MESSAGE.
Definition: OS_MBOX.C:293
OS_EVENT * OSMboxDel(OS_EVENT *pevent, INT8U opt, INT8U *err)
DELETE A MAIBOX.
Definition: OS_MBOX.C:180
OS_EXT OS_TCB * OSTCBCur
Definition: UCOS_II.H:465
INT8U OSTCBY
Definition: UCOS_II.H:409
OS_EVENT * OSMboxCreate(void *msg)
CREATE A MESSAGE MAILBOX.
Definition: OS_MBOX.C:109
OS_EXT BOOLEAN OSRunning
Definition: UCOS_II.H:456
INT8U OS_STK
Definition: OS_CPU.H:52
void OSTCBInitHook(OS_TCB *ptcb)
TICK HOOK.
Definition: OS_CPU_C.C:243
Definition: UCOS_II.H:375
OS_EXT OS_TCB * OSTCBPrioTbl[OS_LOWEST_PRIO+1]
Definition: UCOS_II.H:469
rom INT8U const OSMapTbl[]
Definition: OS_CORE.C:30
void OSTaskStatHook(void)
STATISTIC TASK HOOK This function is called every second by uC/OS-II's statistics task...
Definition: OS_CPU_C.C:196
void OSIntCtxSw(void)
PERFORM A CONTEXT SWITCH (From an ISR)
Definition: OS_CPU_C.C:817
OS_STK * OSTCBStkPtr
Definition: UCOS_II.H:376
rom INT8U const OSUnMapTbl[]
Definition: OS_CORE.C:43
void OSCtxSw(void)
Switch the context by calling the function directly, since there are no software interrupts in a PIC1...
Definition: OS_CPU_C.C:495
INT8U OSTCBX
Definition: UCOS_II.H:408
#define OS_RDY_TBL_SIZE
Definition: UCOS_II.H:53
void * OSMboxAccept(OS_EVENT *pevent)
ACCEPT MESSAGE FROM MAILBOX.
Definition: OS_MBOX.C:55
void OSTimeTick(void)
PROCESS SYSTEM TICK.
Definition: OS_CORE.C:415
INT8U OSTCBBitX
Definition: UCOS_II.H:410
#define OS_MAX_TASKS
Definition: OS_CFG.H:47
unsigned char BOOLEAN
Definition: OS_CPU.H:37
#define OS_MAX_FLAGS
Definition: OS_CFG.H:32
unsigned long INT32U
Definition: OS_CPU.H:42
OS_EXT INT8U OSIntExitY
Definition: UCOS_II.H:446
OS_EXT OS_TCB * OSTCBList
Definition: UCOS_II.H:468
OS_EXT INT8U OSTaskCtr
Definition: UCOS_II.H:458
void OSTimeDly(INT16U ticks)
DELAY TASK 'n' TICKS (n from 0 to 65535) param ticks.
Definition: OS_TIME.C:50
INT8U OSTCBBitY
Definition: UCOS_II.H:411
void OSIntExit(void)
EXIT ISR.
Definition: OS_CORE.C:194
void OSTaskCreateHook(OS_TCB *ptcb)
TASK CREATION HOOK This function is called when a task is created.
Definition: OS_CPU_C.C:121
OS_EXT INT8U OSPrioHighRdy
Definition: UCOS_II.H:451
void OSTaskSwHook(void)
TASK SWITCH HOOK This function is called when a task switch is performed. This allows you to perfor...
Definition: OS_CPU_C.C:173
INT16U OSTCBDly
Definition: UCOS_II.H:404
#define OS_LOWEST_PRIO
Definition: OS_CFG.H:50
OS_EXT INT8U OSPrioCur
Definition: UCOS_II.H:450
struct os_tcb * OSTCBNext
Definition: UCOS_II.H:386
#define OS_MAX_MEM_PART
Definition: OS_CFG.H:37
INT8U OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *pdata)
QUERY A MESSAGE MAILBOX.
Definition: OS_MBOX.C:530
void OSInit(void)
INITIALIZATION.
Definition: OS_CORE.C:95
OS_EXT INT8U OSLockNesting
Definition: UCOS_II.H:448
OS_EXT OS_TCB * OSTCBFreeList
Definition: UCOS_II.H:466
signed char INT8S
Definition: OS_CPU.H:39
#define OS_N_SYS_TASKS
Definition: UCOS_II.H:46
unsigned int INT16U
Definition: OS_CPU.H:40
void OSTimeTickHook(void)
TICK HOOK This function is called every tick.
Definition: OS_CPU_C.C:218
#define OS_TASK_STAT_STK_SIZE
Definition: OS_CFG.H:56
OS_EXT INT8U OSRdyGrp
Definition: UCOS_II.H:453
void OSStart(void)
START MULTITASKING.
Definition: OS_CORE.C:333
void OSStartHighRdy(void)
START HIGHEST PRIORITY TASK.
Definition: OS_CPU_C.C:377