📄 ucos_ii.lst
字号:
=2 #define OS_EXT extern
=2 #endif
29 =2
30 =2 #define OS_PRIO_SELF 0xFF /* Indicate SELF priority */
31 =2
32 =2 #if OS_TASK_STAT_EN
=2 #define OS_N_SYS_TASKS 2 /* Number of system tasks */
=2 #else
35 =2 #define OS_N_SYS_TASKS 1
36 =2 #endif
37 =2
38 =2 #define OS_STAT_PRIO (OS_LOWEST_PRIO - 1) /* Statistic task priority */
39 =2 #define OS_IDLE_PRIO (OS_LOWEST_PRIO) /* IDLE task priority */
40 =2
41 =2 #define OS_EVENT_TBL_SIZE ((OS_LOWEST_PRIO) / 8 + 1) /* Size of event table */
42 =2 #define OS_RDY_TBL_SIZE ((OS_LOWEST_PRIO) / 8 + 1) /* Size of ready table */
43 =2
44 =2 #define OS_TASK_IDLE_ID 65535 /* I.D. numbers for Idle and Stat tasks */
45 =2 #define OS_TASK_STAT_ID 65534
46 =2
47 =2 /* TASK STATUS (Bit definition for OSTCBStat) */
48 =2 #define OS_STAT_RDY 0x00 /* Ready to run */
49 =2 #define OS_STAT_SEM 0x01 /* Pending on semaphore */
50 =2 #define OS_STAT_MBOX 0x02 /* Pending on mailbox */
51 =2 #define OS_STAT_Q 0x04 /* Pending on queue */
52 =2 #define OS_STAT_SUSPEND 0x08 /* Task is suspended */
53 =2
54 =2 #define OS_EVENT_TYPE_MBOX 1
55 =2 #define OS_EVENT_TYPE_Q 2
56 =2 #define OS_EVENT_TYPE_SEM 3
C51 COMPILER V8.02 UCOS_II 03/10/2008 11:50:50 PAGE 5
57 =2
58 =2 /* TASK OPTIONS (see OSTaskCreateExt()) */
59 =2 #define OS_TASK_OPT_STK_CHK 0x0001 /* Enable stack checking for the task */
60 =2 #define OS_TASK_OPT_STK_CLR 0x0002 /* Clear the stack when the task is create */
61 =2 #define OS_TASK_OPT_SAVE_FP 0x0004 /* Save the contents of any floating-point registers */
62 =2
63 =2
64 =2 #ifndef FALSE
65 =2 #define FALSE 0
66 =2 #endif
67 =2
68 =2 #ifndef TRUE
69 =2 #define TRUE 1
70 =2 #endif
71 =2
72 =2 /*
73 =2 *********************************************************************************************************
74 =2 * ERROR CODES
75 =2 *********************************************************************************************************
76 =2 */
77 =2
78 =2 #define OS_NO_ERR 0
79 =2 #define OS_ERR_EVENT_TYPE 1
80 =2 #define OS_ERR_PEND_ISR 2
81 =2
82 =2 #define OS_TIMEOUT 10
83 =2 #define OS_TASK_NOT_EXIST 11
84 =2
85 =2 #define OS_MBOX_FULL 20
86 =2
87 =2 #define OS_Q_FULL 30
88 =2
89 =2 #define OS_PRIO_EXIST 40
90 =2 #define OS_PRIO_ERR 41
91 =2 #define OS_PRIO_INVALID 42
92 =2
93 =2 #define OS_SEM_OVF 50
94 =2
95 =2 #define OS_TASK_DEL_ERR 60
96 =2 #define OS_TASK_DEL_IDLE 61
97 =2 #define OS_TASK_DEL_REQ 62
98 =2 #define OS_TASK_DEL_ISR 63
99 =2
100 =2 #define OS_NO_MORE_TCB 70
101 =2
102 =2 #define OS_TIME_NOT_DLY 80
103 =2 #define OS_TIME_INVALID_MINUTES 81
104 =2 #define OS_TIME_INVALID_SECONDS 82
105 =2 #define OS_TIME_INVALID_MILLI 83
106 =2 #define OS_TIME_ZERO_DLY 84
107 =2
108 =2 #define OS_TASK_SUSPEND_PRIO 90
109 =2 #define OS_TASK_SUSPEND_IDLE 91
110 =2
111 =2 #define OS_TASK_RESUME_PRIO 100
112 =2 #define OS_TASK_NOT_SUSPENDED 101
113 =2
114 =2 #define OS_MEM_INVALID_PART 110
115 =2 #define OS_MEM_INVALID_BLKS 111
116 =2 #define OS_MEM_INVALID_SIZE 112
117 =2 #define OS_MEM_NO_FREE_BLKS 113
118 =2 #define OS_MEM_FULL 114
C51 COMPILER V8.02 UCOS_II 03/10/2008 11:50:50 PAGE 6
119 =2
120 =2 #define OS_TASK_OPT_ERR 130
121 =2
122 =2 /*$PAGE*/
123 =2 /*
124 =2 *********************************************************************************************************
125 =2 * EVENT CONTROL BLOCK
126 =2 *********************************************************************************************************
127 =2 */
128 =2
129 =2 #if (OS_MAX_EVENTS >= 2)
130 =2 typedef struct {
131 =2 void *OSEventPtr; /* Pointer to message or queue structure */
132 =2 INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur */
133 =2 INT16U OSEventCnt; /* Count of used when event is a semaphore */
134 =2 INT8U OSEventType; /* OS_EVENT_TYPE_MBOX, OS_EVENT_TYPE_Q or OS_EVENT_TYPE_SEM */
135 =2 INT8U OSEventGrp; /* Group corresponding to tasks waiting for event to occur */
136 =2 } OS_EVENT;
137 =2 #endif
138 =2
139 =2 /*$PAGE*/
140 =2 /*
141 =2 *********************************************************************************************************
142 =2 * MESSAGE MAILBOX DATA
143 =2 *********************************************************************************************************
144 =2 */
145 =2
146 =2 #if OS_MBOX_EN
=2 typedef struct {
=2 void *OSMsg; /* Pointer to message in mailbox */
=2 INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur */
=2 INT8U OSEventGrp; /* Group corresponding to tasks waiting for event to occur */
=2 } OS_MBOX_DATA;
=2 #endif
153 =2
154 =2 /*
155 =2 *********************************************************************************************************
156 =2 * MEMORY PARTITION DATA STRUCTURES
157 =2 *********************************************************************************************************
158 =2 */
159 =2
160 =2 #if OS_MEM_EN && (OS_MAX_MEM_PART >= 2)
=2 typedef struct { /* MEMORY CONTROL BLOCK */
=2 void *OSMemAddr; /* Pointer to beginning of memory partition */
=2 void *OSMemFreeList; /* Pointer to list of free memory blocks */
=2 INT32U OSMemBlkSize; /* Size (in bytes) of each block of memory */
=2 INT32U OSMemNBlks; /* Total number of blocks in this partition */
=2 INT32U OSMemNFree; /* Number of memory blocks remaining in this partition */
=2 } OS_MEM;
=2
=2
=2 typedef struct {
=2 void *OSAddr; /* Pointer to the beginning address of the memory partition */
=2 void *OSFreeList; /* Pointer to the beginning of the free list of memory blocks */
=2 INT32U OSBlkSize; /* Size (in bytes) of each memory block */
=2 INT32U OSNBlks; /* Total number of blocks in the partition */
=2 INT32U OSNFree; /* Number of memory blocks free */
=2 INT32U OSNUsed; /* Number of memory blocks used */
=2 } OS_MEM_DATA;
=2 #endif
179 =2
180 =2 /*$PAGE*/
C51 COMPILER V8.02 UCOS_II 03/10/2008 11:50:50 PAGE 7
181 =2 /*
182 =2 *********************************************************************************************************
183 =2 * MESSAGE QUEUE DATA
184 =2 *********************************************************************************************************
185 =2 */
186 =2
187 =2 #if OS_Q_EN
=2 typedef struct {
=2 void *OSMsg; /* Pointer to next message to be extracted from queue */
=2 INT16U OSNMsgs; /* Number of messages in message queue */
=2 INT16U OSQSize; /* Size of message queue */
=2 INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur */
=2 INT8U OSEventGrp; /* Group corresponding to tasks waiting for event to occur */
=2 } OS_Q_DATA;
=2 #endif
196 =2
197 =2 /*
198 =2 *********************************************************************************************************
199 =2 * SEMAPHORE DATA
200 =2 *********************************************************************************************************
201 =2 */
202 =2
203 =2 #if OS_SEM_EN
=2 typedef struct {
=2 INT16U OSCnt; /* Semaphore count */
=2 INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur */
=2 INT8U OSEventGrp; /* Group corresponding to tasks waiting for event to occur */
=2 } OS_SEM_DATA;
=2 #endif
210 =2
211 =2 /*
212 =2 *********************************************************************************************************
213 =2 * TASK STACK DATA
214 =2 *********************************************************************************************************
215 =2 */
216 =2
217 =2 #if OS_TASK_CREATE_EXT_EN
=2 typedef struct {
=2 INT32U OSFree; /* Number of free bytes on the stack */
=2 INT32U OSUsed; /* Number of bytes used on the stack */
=2 } OS_STK_DATA;
=2 #endif
223 =2
224 =2 /*$PAGE*/
225 =2 /*
226 =2 *********************************************************************************************************
227 =2 * TASK CONTROL BLOCK
228 =2 *********************************************************************************************************
229 =2 */
230 =2
231 =2 typedef struct os_tcb {
232 =2 OS_STK *OSTCBStkPtr; /* Pointer to current top of stack */
233 =2
234 =2 #if OS_TASK_CREATE_EXT_EN
=2 void *OSTCBExtPtr; /* Pointer to user definable data for TCB extension */
=2 OS_STK *OSTCBStkBottom; /* Pointer to bottom of stack */
=2 INT32U OSTCBStkSize; /* Size of task stack (in bytes) */
=2 INT16U OSTCBOpt; /* Task options as passed by OSTaskCreateExt() */
=2 INT16U OSTCBId; /* Task ID (0..65535) */
=2 #endif
241 =2
242 =2 struct os_tcb *OSTCBNext; /* Pointer to next TCB in the TCB list */
C51 COMPILER V8.02 UCOS_II 03/10/2008 11:50:50 PAGE 8
243 =2 struct os_tcb *OSTCBPrev; /* Pointer to previous TCB in the TCB list */
244 =2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -