浏览该文件的文档.
36 #define OS_VERSION 289u
70 #define OS_ASCII_NUL (INT8U)0
72 #define OS_PRIO_SELF 0xFFu
74 #if OS_TASK_STAT_EN > 0u
75 #define OS_N_SYS_TASKS 2u
77 #define OS_N_SYS_TASKS 1u
80 #define OS_TASK_STAT_PRIO (OS_LOWEST_PRIO - 1u)
81 #define OS_TASK_IDLE_PRIO (OS_LOWEST_PRIO)
83 #if OS_LOWEST_PRIO <= 63u
84 #define OS_EVENT_TBL_SIZE ((OS_LOWEST_PRIO) / 8u + 1u)
85 #define OS_RDY_TBL_SIZE ((OS_LOWEST_PRIO) / 8u + 1u)
87 #define OS_EVENT_TBL_SIZE ((OS_LOWEST_PRIO) / 16u + 1u)
88 #define OS_RDY_TBL_SIZE ((OS_LOWEST_PRIO) / 16u + 1u)
91 #define OS_TASK_IDLE_ID 65535u
92 #define OS_TASK_STAT_ID 65534u
93 #define OS_TASK_TMR_ID 65533u
95 #define OS_EVENT_EN (((OS_Q_EN > 0u) && (OS_MAX_QS > 0u)) || (OS_MBOX_EN > 0u) || (OS_SEM_EN > 0u) || (OS_MUTEX_EN > 0u))
97 #define OS_TCB_RESERVED ((OS_TCB *)1)
105 #define OS_STAT_RDY 0x00u
106 #define OS_STAT_SEM 0x01u
107 #define OS_STAT_MBOX 0x02u
108 #define OS_STAT_Q 0x04u
109 #define OS_STAT_SUSPEND 0x08u
110 #define OS_STAT_MUTEX 0x10u
111 #define OS_STAT_FLAG 0x20u
112 #define OS_STAT_MULTI 0x80u
114 #define OS_STAT_PEND_ANY (OS_STAT_SEM | OS_STAT_MBOX | OS_STAT_Q | OS_STAT_MUTEX | OS_STAT_FLAG)
121 #define OS_STAT_PEND_OK 0u
122 #define OS_STAT_PEND_TO 1u
123 #define OS_STAT_PEND_ABORT 2u
130 #define OS_EVENT_TYPE_UNUSED 0u
131 #define OS_EVENT_TYPE_MBOX 1u
132 #define OS_EVENT_TYPE_Q 2u
133 #define OS_EVENT_TYPE_SEM 3u
134 #define OS_EVENT_TYPE_MUTEX 4u
135 #define OS_EVENT_TYPE_FLAG 5u
137 #define OS_TMR_TYPE 100u
145 #define OS_FLAG_WAIT_CLR_ALL 0u
146 #define OS_FLAG_WAIT_CLR_AND 0u
148 #define OS_FLAG_WAIT_CLR_ANY 1u
149 #define OS_FLAG_WAIT_CLR_OR 1u
151 #define OS_FLAG_WAIT_SET_ALL 2u
152 #define OS_FLAG_WAIT_SET_AND 2u
154 #define OS_FLAG_WAIT_SET_ANY 3u
155 #define OS_FLAG_WAIT_SET_OR 3u
158 #define OS_FLAG_CONSUME 0x80u
161 #define OS_FLAG_CLR 0u
162 #define OS_FLAG_SET 1u
172 #if OS_TICK_STEP_EN > 0u
173 #define OS_TICK_STEP_DIS 0u
174 #define OS_TICK_STEP_WAIT 1u
175 #define OS_TICK_STEP_ONCE 2u
183 #define OS_DEL_NO_PEND 0u
184 #define OS_DEL_ALWAYS 1u
193 #define OS_PEND_OPT_NONE 0u
194 #define OS_PEND_OPT_BROADCAST 1u
203 #define OS_POST_OPT_NONE 0x00u
204 #define OS_POST_OPT_BROADCAST 0x01u
205 #define OS_POST_OPT_FRONT 0x02u
206 #define OS_POST_OPT_NO_SCHED 0x04u
213 #define OS_TASK_OPT_NONE 0x0000u
214 #define OS_TASK_OPT_STK_CHK 0x0001u
215 #define OS_TASK_OPT_STK_CLR 0x0002u
216 #define OS_TASK_OPT_SAVE_FP 0x0004u
223 #define OS_TMR_OPT_NONE 0u
225 #define OS_TMR_OPT_ONE_SHOT 1u
226 #define OS_TMR_OPT_PERIODIC 2u
228 #define OS_TMR_OPT_CALLBACK 3u
229 #define OS_TMR_OPT_CALLBACK_ARG 4u
236 #define OS_TMR_STATE_UNUSED 0u
237 #define OS_TMR_STATE_STOPPED 1u
238 #define OS_TMR_STATE_COMPLETED 2u
239 #define OS_TMR_STATE_RUNNING 3u
246 #define OS_ERR_NONE 0u
248 #define OS_ERR_EVENT_TYPE 1u
249 #define OS_ERR_PEND_ISR 2u
250 #define OS_ERR_POST_NULL_PTR 3u
251 #define OS_ERR_PEVENT_NULL 4u
252 #define OS_ERR_POST_ISR 5u
253 #define OS_ERR_QUERY_ISR 6u
254 #define OS_ERR_INVALID_OPT 7u
255 #define OS_ERR_ID_INVALID 8u
256 #define OS_ERR_PDATA_NULL 9u
258 #define OS_ERR_TIMEOUT 10u
259 #define OS_ERR_EVENT_NAME_TOO_LONG 11u
260 #define OS_ERR_PNAME_NULL 12u
261 #define OS_ERR_PEND_LOCKED 13u
262 #define OS_ERR_PEND_ABORT 14u
263 #define OS_ERR_DEL_ISR 15u
264 #define OS_ERR_CREATE_ISR 16u
265 #define OS_ERR_NAME_GET_ISR 17u
266 #define OS_ERR_NAME_SET_ISR 18u
268 #define OS_ERR_MBOX_FULL 20u
270 #define OS_ERR_Q_FULL 30u
271 #define OS_ERR_Q_EMPTY 31u
273 #define OS_ERR_PRIO_EXIST 40u
274 #define OS_ERR_PRIO 41u
275 #define OS_ERR_PRIO_INVALID 42u
277 #define OS_ERR_SEM_OVF 50u
279 #define OS_ERR_TASK_CREATE_ISR 60u
280 #define OS_ERR_TASK_DEL 61u
281 #define OS_ERR_TASK_DEL_IDLE 62u
282 #define OS_ERR_TASK_DEL_REQ 63u
283 #define OS_ERR_TASK_DEL_ISR 64u
284 #define OS_ERR_TASK_NAME_TOO_LONG 65u
285 #define OS_ERR_TASK_NO_MORE_TCB 66u
286 #define OS_ERR_TASK_NOT_EXIST 67u
287 #define OS_ERR_TASK_NOT_SUSPENDED 68u
288 #define OS_ERR_TASK_OPT 69u
289 #define OS_ERR_TASK_RESUME_PRIO 70u
290 #define OS_ERR_TASK_SUSPEND_IDLE 71u
291 #define OS_ERR_TASK_SUSPEND_PRIO 72u
292 #define OS_ERR_TASK_WAITING 73u
294 #define OS_ERR_TIME_NOT_DLY 80u
295 #define OS_ERR_TIME_INVALID_MINUTES 81u
296 #define OS_ERR_TIME_INVALID_SECONDS 82u
297 #define OS_ERR_TIME_INVALID_MS 83u
298 #define OS_ERR_TIME_ZERO_DLY 84u
299 #define OS_ERR_TIME_DLY_ISR 85u
301 #define OS_ERR_MEM_INVALID_PART 90u
302 #define OS_ERR_MEM_INVALID_BLKS 91u
303 #define OS_ERR_MEM_INVALID_SIZE 92u
304 #define OS_ERR_MEM_NO_FREE_BLKS 93u
305 #define OS_ERR_MEM_FULL 94u
306 #define OS_ERR_MEM_INVALID_PBLK 95u
307 #define OS_ERR_MEM_INVALID_PMEM 96u
308 #define OS_ERR_MEM_INVALID_PDATA 97u
309 #define OS_ERR_MEM_INVALID_ADDR 98u
310 #define OS_ERR_MEM_NAME_TOO_LONG 99u
312 #define OS_ERR_NOT_MUTEX_OWNER 100u
314 #define OS_ERR_FLAG_INVALID_PGRP 110u
315 #define OS_ERR_FLAG_WAIT_TYPE 111u
316 #define OS_ERR_FLAG_NOT_RDY 112u
317 #define OS_ERR_FLAG_INVALID_OPT 113u
318 #define OS_ERR_FLAG_GRP_DEPLETED 114u
319 #define OS_ERR_FLAG_NAME_TOO_LONG 115u
321 #define OS_ERR_PIP_LOWER 120u
323 #define OS_ERR_TMR_INVALID_DLY 130u
324 #define OS_ERR_TMR_INVALID_PERIOD 131u
325 #define OS_ERR_TMR_INVALID_OPT 132u
326 #define OS_ERR_TMR_INVALID_NAME 133u
327 #define OS_ERR_TMR_NON_AVAIL 134u
328 #define OS_ERR_TMR_INACTIVE 135u
329 #define OS_ERR_TMR_INVALID_DEST 136u
330 #define OS_ERR_TMR_INVALID_TYPE 137u
331 #define OS_ERR_TMR_INVALID 138u
332 #define OS_ERR_TMR_ISR 139u
333 #define OS_ERR_TMR_NAME_TOO_LONG 140u
334 #define OS_ERR_TMR_INVALID_STATE 141u
335 #define OS_ERR_TMR_STOPPED 142u
336 #define OS_ERR_TMR_NO_CALLBACK 143u
343 #define OS_NO_ERR OS_ERR_NONE
344 #define OS_TIMEOUT OS_ERR_TIMEOUT
345 #define OS_TASK_NOT_EXIST OS_ERR_TASK_NOT_EXIST
346 #define OS_MBOX_FULL OS_ERR_MBOX_FULL
347 #define OS_Q_FULL OS_ERR_Q_FULL
348 #define OS_Q_EMPTY OS_ERR_Q_EMPTY
349 #define OS_PRIO_EXIST OS_ERR_PRIO_EXIST
350 #define OS_PRIO_ERR OS_ERR_PRIO
351 #define OS_PRIO_INVALID OS_ERR_PRIO_INVALID
352 #define OS_SEM_OVF OS_ERR_SEM_OVF
353 #define OS_TASK_DEL_ERR OS_ERR_TASK_DEL
354 #define OS_TASK_DEL_IDLE OS_ERR_TASK_DEL_IDLE
355 #define OS_TASK_DEL_REQ OS_ERR_TASK_DEL_REQ
356 #define OS_TASK_DEL_ISR OS_ERR_TASK_DEL_ISR
357 #define OS_NO_MORE_TCB OS_ERR_TASK_NO_MORE_TCB
358 #define OS_TIME_NOT_DLY OS_ERR_TIME_NOT_DLY
359 #define OS_TIME_INVALID_MINUTES OS_ERR_TIME_INVALID_MINUTES
360 #define OS_TIME_INVALID_SECONDS OS_ERR_TIME_INVALID_SECONDS
361 #define OS_TIME_INVALID_MS OS_ERR_TIME_INVALID_MS
362 #define OS_TIME_ZERO_DLY OS_ERR_TIME_ZERO_DLY
363 #define OS_TASK_SUSPEND_PRIO OS_ERR_TASK_SUSPEND_PRIO
364 #define OS_TASK_SUSPEND_IDLE OS_ERR_TASK_SUSPEND_IDLE
365 #define OS_TASK_RESUME_PRIO OS_ERR_TASK_RESUME_PRIO
366 #define OS_TASK_NOT_SUSPENDED OS_ERR_TASK_NOT_SUSPENDED
367 #define OS_MEM_INVALID_PART OS_ERR_MEM_INVALID_PART
368 #define OS_MEM_INVALID_BLKS OS_ERR_MEM_INVALID_BLKS
369 #define OS_MEM_INVALID_SIZE OS_ERR_MEM_INVALID_SIZE
370 #define OS_MEM_NO_FREE_BLKS OS_ERR_MEM_NO_FREE_BLKS
371 #define OS_MEM_FULL OS_ERR_MEM_FULL
372 #define OS_MEM_INVALID_PBLK OS_ERR_MEM_INVALID_PBLK
373 #define OS_MEM_INVALID_PMEM OS_ERR_MEM_INVALID_PMEM
374 #define OS_MEM_INVALID_PDATA OS_ERR_MEM_INVALID_PDATA
375 #define OS_MEM_INVALID_ADDR OS_ERR_MEM_INVALID_ADDR
376 #define OS_MEM_NAME_TOO_LONG OS_ERR_MEM_NAME_TOO_LONG
377 #define OS_TASK_OPT_ERR OS_ERR_TASK_OPT
378 #define OS_FLAG_INVALID_PGRP OS_ERR_FLAG_INVALID_PGRP
379 #define OS_FLAG_ERR_WAIT_TYPE OS_ERR_FLAG_WAIT_TYPE
380 #define OS_FLAG_ERR_NOT_RDY OS_ERR_FLAG_NOT_RDY
381 #define OS_FLAG_INVALID_OPT OS_ERR_FLAG_INVALID_OPT
382 #define OS_FLAG_GRP_DEPLETED OS_ERR_FLAG_GRP_DEPLETED
391 #if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0u)
392 typedef struct os_event {
396 #if OS_LOWEST_PRIO <= 63u
404 #if OS_EVENT_NAME_EN > 0u
417 #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)
419 #if OS_FLAGS_NBITS == 8u
423 #if OS_FLAGS_NBITS == 16u
427 #if OS_FLAGS_NBITS == 32u
432 typedef struct os_flag_grp {
436 #if OS_FLAG_NAME_EN > 0u
443 typedef struct os_flag_node {
465 typedef struct os_mbox_data {
467 #if OS_LOWEST_PRIO <= 63u
483 #if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)
484 typedef struct os_mem {
490 #if OS_MEM_NAME_EN > 0u
496 typedef struct os_mem_data {
514 typedef struct os_mutex_data {
515 #if OS_LOWEST_PRIO <= 63u
535 typedef struct os_q {
546 typedef struct os_q_data {
550 #if OS_LOWEST_PRIO <= 63u
567 typedef struct os_sem_data {
569 #if OS_LOWEST_PRIO <= 63u
585 #if OS_TASK_CREATE_EXT_EN > 0u
586 typedef struct os_stk_data {
599 typedef struct os_tcb {
602 #if OS_TASK_CREATE_EXT_EN > 0u
613 #if (OS_EVENT_EN) || (OS_FLAG_EN > 0u)
617 #if (OS_EVENT_EN) && (OS_EVENT_MULTI_EN > 0u)
621 #if ((OS_Q_EN > 0u) && (OS_MAX_QS > 0u)) || (OS_MBOX_EN > 0u)
625 #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)
626 #if OS_TASK_DEL_EN > 0u
639 #if OS_LOWEST_PRIO <= 63u
647 #if OS_TASK_DEL_EN > 0u
651 #if OS_TASK_PROFILE_EN > 0u
659 #if OS_TASK_NAME_EN > 0u
663 #if OS_TASK_REG_TBL_SIZE > 0u
680 typedef struct os_tmr {
689 #if OS_TMR_CFG_NAME_EN > 0u
701 typedef struct os_tmr_wheel {
716 #if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0u)
721 #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)
726 #if OS_TASK_STAT_EN > 0u
741 #if OS_LOWEST_PRIO <= 63u
765 #if OS_TICK_STEP_EN > 0u
769 #if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)
774 #if (OS_Q_EN > 0u) && (OS_MAX_QS > 0u)
779 #if OS_TIME_GET_SET_EN > 0u
816 #if (OS_EVENT_NAME_EN > 0u)
826 #if (OS_EVENT_MULTI_EN > 0u)
842 #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)
844 #if OS_FLAG_ACCEPT_EN > 0u
854 #if OS_FLAG_DEL_EN > 0u
860 #if (OS_FLAG_EN > 0u) && (OS_FLAG_NAME_EN > 0u)
882 #if OS_FLAG_QUERY_EN > 0u
896 #if OS_MBOX_ACCEPT_EN > 0u
902 #if OS_MBOX_DEL_EN > 0u
912 #if OS_MBOX_PEND_ABORT_EN > 0u
918 #if OS_MBOX_POST_EN > 0u
923 #if OS_MBOX_POST_OPT_EN > 0u
929 #if OS_MBOX_QUERY_EN > 0u
941 #if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)
950 #if OS_MEM_NAME_EN > 0u
962 #if OS_MEM_QUERY_EN > 0u
977 #if OS_MUTEX_ACCEPT_EN > 0u
985 #if OS_MUTEX_DEL_EN > 0u
997 #if OS_MUTEX_QUERY_EN > 0u
1011 #if (OS_Q_EN > 0u) && (OS_MAX_QS > 0u)
1013 #if OS_Q_ACCEPT_EN > 0u
1021 #if OS_Q_DEL_EN > 0u
1027 #if OS_Q_FLUSH_EN > 0u
1035 #if OS_Q_PEND_ABORT_EN > 0u
1041 #if OS_Q_POST_EN > 0u
1046 #if OS_Q_POST_FRONT_EN > 0u
1051 #if OS_Q_POST_OPT_EN > 0u
1057 #if OS_Q_QUERY_EN > 0u
1072 #if OS_SEM_ACCEPT_EN > 0u
1078 #if OS_SEM_DEL_EN > 0u
1088 #if OS_SEM_PEND_ABORT_EN > 0u
1096 #if OS_SEM_QUERY_EN > 0u
1101 #if OS_SEM_SET_EN > 0u
1115 #if OS_TASK_CHANGE_PRIO_EN > 0u
1120 #if OS_TASK_CREATE_EN > 0u
1127 #if OS_TASK_CREATE_EXT_EN > 0u
1139 #if OS_TASK_DEL_EN > 0u
1144 #if OS_TASK_NAME_EN > 0u
1154 #if OS_TASK_SUSPEND_EN > 0u
1159 #if (OS_TASK_STAT_STK_CHK_EN > 0u) && (OS_TASK_CREATE_EXT_EN > 0u)
1164 #if OS_TASK_QUERY_EN > 0u
1171 #if OS_TASK_REG_TBL_SIZE > 0u
1191 #if OS_TIME_DLY_HMSM_EN > 0u
1198 #if OS_TIME_DLY_RESUME_EN > 0u
1202 #if OS_TIME_GET_SET_EN > 0u
1227 #if OS_TMR_CFG_NAME_EN > 0u
1260 #if OS_SCHED_LOCK_EN > 0u
1279 #if OS_TASK_DEL_EN > 0u
1294 #if (OS_EVENT_MULTI_EN > 0u)
1304 #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)
1316 #if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)
1326 #if (OS_EVENT_NAME_EN > 0u) || (OS_FLAG_NAME_EN > 0u) || (OS_MEM_NAME_EN > 0u) || (OS_TASK_NAME_EN > 0u)
1334 #if OS_TASK_STAT_EN > 0u
1338 #if (OS_TASK_STAT_STK_CHK_EN > 0u) && (OS_TASK_CREATE_EXT_EN > 0u)
1344 #if (OS_TASK_STAT_STK_CHK_EN > 0u) && (OS_TASK_CREATE_EXT_EN > 0u)
1368 #if OS_DEBUG_EN > 0u
1369 void OSDebugInit (
void);
1388 #if OS_TASK_SW_HOOK_EN > 0u
1394 #if OS_TIME_TICK_HOOK_EN > 0u
1406 #if OS_APP_HOOKS_EN > 0u
1415 #if OS_TASK_SW_HOOK_EN > 0u
1421 #if OS_TIME_TICK_HOOK_EN > 0u
1460 #error "OS_CFG.H, Missing OS_FLAG_EN: Enable (1) or Disable (0) code generation for Event Flags"
1462 #ifndef OS_MAX_FLAGS
1463 #error "OS_CFG.H, Missing OS_MAX_FLAGS: Max. number of Event Flag Groups in your application"
1465 #if OS_MAX_FLAGS > 65500u
1466 #error "OS_CFG.H, OS_MAX_FLAGS must be <= 65500"
1470 #ifndef OS_FLAGS_NBITS
1471 #error "OS_CFG.H, Missing OS_FLAGS_NBITS: Determine #bits used for event flags, MUST be either 8, 16 or 32"
1474 #ifndef OS_FLAG_WAIT_CLR_EN
1475 #error "OS_CFG.H, Missing OS_FLAG_WAIT_CLR_EN: Include code for Wait on Clear EVENT FLAGS"
1478 #ifndef OS_FLAG_ACCEPT_EN
1479 #error "OS_CFG.H, Missing OS_FLAG_ACCEPT_EN: Include code for OSFlagAccept()"
1482 #ifndef OS_FLAG_DEL_EN
1483 #error "OS_CFG.H, Missing OS_FLAG_DEL_EN: Include code for OSFlagDel()"
1486 #ifndef OS_FLAG_NAME_EN
1487 #error "OS_CFG.H, Missing OS_FLAG_NAME_EN: Enable flag group names"
1490 #ifndef OS_FLAG_QUERY_EN
1491 #error "OS_CFG.H, Missing OS_FLAG_QUERY_EN: Include code for OSFlagQuery()"
1502 #error "OS_CFG.H, Missing OS_MBOX_EN: Enable (1) or Disable (0) code generation for MAILBOXES"
1504 #ifndef OS_MBOX_ACCEPT_EN
1505 #error "OS_CFG.H, Missing OS_MBOX_ACCEPT_EN: Include code for OSMboxAccept()"
1508 #ifndef OS_MBOX_DEL_EN
1509 #error "OS_CFG.H, Missing OS_MBOX_DEL_EN: Include code for OSMboxDel()"
1512 #ifndef OS_MBOX_PEND_ABORT_EN
1513 #error "OS_CFG.H, Missing OS_MBOX_PEND_ABORT_EN: Include code for OSMboxPendAbort()"
1516 #ifndef OS_MBOX_POST_EN
1517 #error "OS_CFG.H, Missing OS_MBOX_POST_EN: Include code for OSMboxPost()"
1520 #ifndef OS_MBOX_POST_OPT_EN
1521 #error "OS_CFG.H, Missing OS_MBOX_POST_OPT_EN: Include code for OSMboxPostOpt()"
1524 #ifndef OS_MBOX_QUERY_EN
1525 #error "OS_CFG.H, Missing OS_MBOX_QUERY_EN: Include code for OSMboxQuery()"
1536 #error "OS_CFG.H, Missing OS_MEM_EN: Enable (1) or Disable (0) code generation for MEMORY MANAGER"
1538 #ifndef OS_MAX_MEM_PART
1539 #error "OS_CFG.H, Missing OS_MAX_MEM_PART: Max. number of memory partitions"
1541 #if OS_MAX_MEM_PART > 65500u
1542 #error "OS_CFG.H, OS_MAX_MEM_PART must be <= 65500"
1546 #ifndef OS_MEM_NAME_EN
1547 #error "OS_CFG.H, Missing OS_MEM_NAME_EN: Enable memory partition names"
1550 #ifndef OS_MEM_QUERY_EN
1551 #error "OS_CFG.H, Missing OS_MEM_QUERY_EN: Include code for OSMemQuery()"
1562 #error "OS_CFG.H, Missing OS_MUTEX_EN: Enable (1) or Disable (0) code generation for MUTEX"
1564 #ifndef OS_MUTEX_ACCEPT_EN
1565 #error "OS_CFG.H, Missing OS_MUTEX_ACCEPT_EN: Include code for OSMutexAccept()"
1568 #ifndef OS_MUTEX_DEL_EN
1569 #error "OS_CFG.H, Missing OS_MUTEX_DEL_EN: Include code for OSMutexDel()"
1572 #ifndef OS_MUTEX_QUERY_EN
1573 #error "OS_CFG.H, Missing OS_MUTEX_QUERY_EN: Include code for OSMutexQuery()"
1584 #error "OS_CFG.H, Missing OS_Q_EN: Enable (1) or Disable (0) code generation for QUEUES"
1587 #error "OS_CFG.H, Missing OS_MAX_QS: Max. number of queue control blocks"
1589 #if OS_MAX_QS > 65500u
1590 #error "OS_CFG.H, OS_MAX_QS must be <= 65500"
1594 #ifndef OS_Q_ACCEPT_EN
1595 #error "OS_CFG.H, Missing OS_Q_ACCEPT_EN: Include code for OSQAccept()"
1599 #error "OS_CFG.H, Missing OS_Q_DEL_EN: Include code for OSQDel()"
1602 #ifndef OS_Q_FLUSH_EN
1603 #error "OS_CFG.H, Missing OS_Q_FLUSH_EN: Include code for OSQFlush()"
1606 #ifndef OS_Q_PEND_ABORT_EN
1607 #error "OS_CFG.H, Missing OS_Q_PEND_ABORT_EN: Include code for OSQPendAbort()"
1610 #ifndef OS_Q_POST_EN
1611 #error "OS_CFG.H, Missing OS_Q_POST_EN: Include code for OSQPost()"
1614 #ifndef OS_Q_POST_FRONT_EN
1615 #error "OS_CFG.H, Missing OS_Q_POST_FRONT_EN: Include code for OSQPostFront()"
1618 #ifndef OS_Q_POST_OPT_EN
1619 #error "OS_CFG.H, Missing OS_Q_POST_OPT_EN: Include code for OSQPostOpt()"
1622 #ifndef OS_Q_QUERY_EN
1623 #error "OS_CFG.H, Missing OS_Q_QUERY_EN: Include code for OSQQuery()"
1634 #error "OS_CFG.H, Missing OS_SEM_EN: Enable (1) or Disable (0) code generation for SEMAPHORES"
1636 #ifndef OS_SEM_ACCEPT_EN
1637 #error "OS_CFG.H, Missing OS_SEM_ACCEPT_EN: Include code for OSSemAccept()"
1640 #ifndef OS_SEM_DEL_EN
1641 #error "OS_CFG.H, Missing OS_SEM_DEL_EN: Include code for OSSemDel()"
1644 #ifndef OS_SEM_PEND_ABORT_EN
1645 #error "OS_CFG.H, Missing OS_SEM_PEND_ABORT_EN: Include code for OSSemPendAbort()"
1648 #ifndef OS_SEM_QUERY_EN
1649 #error "OS_CFG.H, Missing OS_SEM_QUERY_EN: Include code for OSSemQuery()"
1652 #ifndef OS_SEM_SET_EN
1653 #error "OS_CFG.H, Missing OS_SEM_SET_EN: Include code for OSSemSet()"
1663 #ifndef OS_MAX_TASKS
1664 #error "OS_CFG.H, Missing OS_MAX_TASKS: Max. number of tasks in your application"
1666 #if OS_MAX_TASKS < 2u
1667 #error "OS_CFG.H, OS_MAX_TASKS must be >= 2"
1670 #if OS_MAX_TASKS > ((OS_LOWEST_PRIO - OS_N_SYS_TASKS) + 1)
1671 #error "OS_CFG.H, OS_MAX_TASKS must be <= OS_LOWEST_PRIO - OS_N_SYS_TASKS + 1"
1676 #if OS_LOWEST_PRIO > 254u
1677 #error "OS_CFG.H, OS_LOWEST_PRIO must be <= 254 in V2.8x and higher"
1680 #ifndef OS_TASK_IDLE_STK_SIZE
1681 #error "OS_CFG.H, Missing OS_TASK_IDLE_STK_SIZE: Idle task stack size"
1684 #ifndef OS_TASK_STAT_EN
1685 #error "OS_CFG.H, Missing OS_TASK_STAT_EN: Enable (1) or Disable(0) the statistics task"
1688 #ifndef OS_TASK_STAT_STK_SIZE
1689 #error "OS_CFG.H, Missing OS_TASK_STAT_STK_SIZE: Statistics task stack size"
1692 #ifndef OS_TASK_STAT_STK_CHK_EN
1693 #error "OS_CFG.H, Missing OS_TASK_STAT_STK_CHK_EN: Check task stacks from statistics task"
1696 #ifndef OS_TASK_CHANGE_PRIO_EN
1697 #error "OS_CFG.H, Missing OS_TASK_CHANGE_PRIO_EN: Include code for OSTaskChangePrio()"
1700 #ifndef OS_TASK_CREATE_EN
1701 #error "OS_CFG.H, Missing OS_TASK_CREATE_EN: Include code for OSTaskCreate()"
1704 #ifndef OS_TASK_CREATE_EXT_EN
1705 #error "OS_CFG.H, Missing OS_TASK_CREATE_EXT_EN: Include code for OSTaskCreateExt()"
1708 #ifndef OS_TASK_DEL_EN
1709 #error "OS_CFG.H, Missing OS_TASK_DEL_EN: Include code for OSTaskDel()"
1712 #ifndef OS_TASK_NAME_EN
1713 #error "OS_CFG.H, Missing OS_TASK_NAME_EN: Enable task names"
1716 #ifndef OS_TASK_SUSPEND_EN
1717 #error "OS_CFG.H, Missing OS_TASK_SUSPEND_EN: Include code for OSTaskSuspend() and OSTaskResume()"
1720 #ifndef OS_TASK_QUERY_EN
1721 #error "OS_CFG.H, Missing OS_TASK_QUERY_EN: Include code for OSTaskQuery()"
1724 #ifndef OS_TASK_REG_TBL_SIZE
1725 #error "OS_CFG.H, Missing OS_TASK_REG_TBL_SIZE: Include code for task specific registers"
1727 #if OS_TASK_REG_TBL_SIZE > 255u
1728 #error "OS_CFG.H, OS_TASK_REG_TBL_SIZE must be <= 255"
1738 #ifndef OS_TICKS_PER_SEC
1739 #error "OS_CFG.H, Missing OS_TICKS_PER_SEC: Sets the number of ticks in one second"
1742 #ifndef OS_TIME_DLY_HMSM_EN
1743 #error "OS_CFG.H, Missing OS_TIME_DLY_HMSM_EN: Include code for OSTimeDlyHMSM()"
1746 #ifndef OS_TIME_DLY_RESUME_EN
1747 #error "OS_CFG.H, Missing OS_TIME_DLY_RESUME_EN: Include code for OSTimeDlyResume()"
1750 #ifndef OS_TIME_GET_SET_EN
1751 #error "OS_CFG.H, Missing OS_TIME_GET_SET_EN: Include code for OSTimeGet() and OSTimeSet()"
1761 #error "OS_CFG.H, Missing OS_TMR_EN: When (1) enables code generation for Timer Management"
1762 #elif OS_TMR_EN > 0u
1764 #error "OS_CFG.H, Semaphore management is required (set OS_SEM_EN to 1) when enabling Timer Management."
1765 #error " Timer management require TWO semaphores."
1768 #ifndef OS_TMR_CFG_MAX
1769 #error "OS_CFG.H, Missing OS_TMR_CFG_MAX: Determines the total number of timers in an application (2 .. 65500)"
1771 #if OS_TMR_CFG_MAX < 2u
1772 #error "OS_CFG.H, OS_TMR_CFG_MAX should be between 2 and 65500"
1775 #if OS_TMR_CFG_MAX > 65500u
1776 #error "OS_CFG.H, OS_TMR_CFG_MAX should be between 2 and 65500"
1780 #ifndef OS_TMR_CFG_WHEEL_SIZE
1781 #error "OS_CFG.H, Missing OS_TMR_CFG_WHEEL_SIZE: Sets the size of the timer wheel (1 .. 1023)"
1783 #if OS_TMR_CFG_WHEEL_SIZE < 2u
1784 #error "OS_CFG.H, OS_TMR_CFG_WHEEL_SIZE should be between 2 and 1024"
1787 #if OS_TMR_CFG_WHEEL_SIZE > 1024u
1788 #error "OS_CFG.H, OS_TMR_CFG_WHEEL_SIZE should be between 2 and 1024"
1792 #ifndef OS_TMR_CFG_NAME_EN
1793 #error "OS_CFG.H, Missing OS_TMR_CFG_NAME_EN: Enable Timer names"
1796 #ifndef OS_TMR_CFG_TICKS_PER_SEC
1797 #error "OS_CFG.H, Missing OS_TMR_CFG_TICKS_PER_SEC: Determines the rate at which tiem timer management task will run (Hz)"
1800 #ifndef OS_TASK_TMR_STK_SIZE
1801 #error "OS_CFG.H, Missing OS_TASK_TMR_STK_SIZE: Determines the size of the Timer Task's stack"
1812 #ifndef OS_ARG_CHK_EN
1813 #error "OS_CFG.H, Missing OS_ARG_CHK_EN: Enable (1) or Disable (0) argument checking"
1817 #ifndef OS_CPU_HOOKS_EN
1818 #error "OS_CFG.H, Missing OS_CPU_HOOKS_EN: uC/OS-II hooks are found in the processor port files when 1"
1822 #ifndef OS_APP_HOOKS_EN
1823 #error "OS_CFG.H, Missing OS_APP_HOOKS_EN: Application-defined hooks are called from the uC/OS-II hooks"
1828 #error "OS_CFG.H, Missing OS_DEBUG_EN: Allows you to include variables for debugging or not"
1832 #ifndef OS_LOWEST_PRIO
1833 #error "OS_CFG.H, Missing OS_LOWEST_PRIO: Defines the lowest priority that can be assigned"
1837 #ifndef OS_MAX_EVENTS
1838 #error "OS_CFG.H, Missing OS_MAX_EVENTS: Max. number of event control blocks in your application"
1840 #if OS_MAX_EVENTS > 65500u
1841 #error "OS_CFG.H, OS_MAX_EVENTS must be <= 65500"
1846 #ifndef OS_SCHED_LOCK_EN
1847 #error "OS_CFG.H, Missing OS_SCHED_LOCK_EN: Include code for OSSchedLock() and OSSchedUnlock()"
1851 #ifndef OS_EVENT_MULTI_EN
1852 #error "OS_CFG.H, Missing OS_EVENT_MULTI_EN: Include code for OSEventPendMulti()"
1856 #ifndef OS_TASK_PROFILE_EN
1857 #error "OS_CFG.H, Missing OS_TASK_PROFILE_EN: Include data structure for run-time task profiling"
1861 #ifndef OS_TASK_SW_HOOK_EN
1862 #error "OS_CFG.H, Missing OS_TASK_SW_HOOK_EN: Allows you to include the code for OSTaskSwHook() or not"
1866 #ifndef OS_TICK_STEP_EN
1867 #error "OS_CFG.H, Missing OS_TICK_STEP_EN: Allows to 'step' one tick at a time with uC/OS-View"
1871 #ifndef OS_TIME_TICK_HOOK_EN
1872 #error "OS_CFG.H, Missing OS_TIME_TICK_HOOK_EN: Allows you to include the code for OSTimeTickHook() or not"
1881 #ifdef SAFETY_CRITICAL_RELEASE
1883 #if OS_ARG_CHK_EN < 1u
1884 #error "OS_CFG.H, OS_ARG_CHK_EN must be enabled for safety-critical release code"
1887 #if OS_APP_HOOKS_EN > 0u
1888 #error "OS_CFG.H, OS_APP_HOOKS_EN must be disabled for safety-critical release code"
1891 #if OS_DEBUG_EN > 0u
1892 #error "OS_CFG.H, OS_DEBUG_EN must be disabled for safety-critical release code"
1896 #error "OS_CFG.H, CANTATA must be disabled for safety-critical release code"
1899 #ifdef OS_SCHED_LOCK_EN
1900 #error "OS_CFG.H, OS_SCHED_LOCK_EN must be disabled for safety-critical release code"
1903 #ifdef VSC_VALIDATION_MODE
1904 #error "OS_CFG.H, VSC_VALIDATION_MODE must be disabled for safety-critical release code"
1907 #if OS_TASK_STAT_EN > 0u
1908 #error "OS_CFG.H, OS_TASK_STAT_EN must be disabled for safety-critical release code"
1911 #if OS_TICK_STEP_EN > 0u
1912 #error "OS_CFG.H, OS_TICK_STEP_EN must be disabled for safety-critical release code"
1916 #if OS_FLAG_DEL_EN > 0
1917 #error "OS_CFG.H, OS_FLAG_DEL_EN must be disabled for safety-critical release code"
1922 #if OS_MBOX_DEL_EN > 0u
1923 #error "OS_CFG.H, OS_MBOX_DEL_EN must be disabled for safety-critical release code"
1927 #if OS_MUTEX_EN > 0u
1928 #if OS_MUTEX_DEL_EN > 0u
1929 #error "OS_CFG.H, OS_MUTEX_DEL_EN must be disabled for safety-critical release code"
1934 #if OS_Q_DEL_EN > 0u
1935 #error "OS_CFG.H, OS_Q_DEL_EN must be disabled for safety-critical release code"
1940 #if OS_SEM_DEL_EN > 0u
1941 #error "OS_CFG.H, OS_SEM_DEL_EN must be disabled for safety-critical release code"
1946 #if OS_TASK_DEL_EN > 0u
1947 #error "OS_CFG.H, OS_TASK_DEL_EN must be disabled for safety-critical release code"
1951 #if OS_CRITICAL_METHOD != 3u
1952 #error "OS_CPU.H, OS_CRITICAL_METHOD must be type 3 for safety-critical release code"