...
This section describes each of the #define
constants in OS_CFG.H
.
Table of Contents |
---|
Miscellaneous
OS_APP_HOOKS_EN
When set to 1
, this #define
specifies that application defined hooks are called from µC/OS-II’s hooks. See also OS_CPU_HOOKS_EN
. Specifically:
...
OS_TLS_TBL_SIZE
performs two functions. By defining this #define
you indicate that you desire to have Thread Local Storage (TLS) support for either the CCES tools from Analog Devices Inc (ADI) or Embedded Workbench from IAR. The value of this #define determines the number of ‘elements’ needed in the TLS table for the desired toolchain. Each entry is typically a pointer size variable. You should specify 5
for both tools.
Event Flags
OS_FLAG_EN
OS_FLAG_EN
enables (when set to 1) or disables (when set to 0) code generation of all the event-flag services and data structures, which reduces the amount of code and data space needed when your application does not require the use of event flags. When OS_FLAG_EN
is set to 0, you do not need to enable or disable any of the other #define
constants in this section.
...
OS_FLAGS_NBITS
has been introduced in V2.80 and specifies the number of bits used in event flags and MUST be either 8, 16 or 32.
Message Mailboxes
OS_MBOX_EN
This constant enables (when set to 1) or disables (when set to 0) the code generation of all message-mailbox services and data structures, which reduces the amount of code space needed when your application does not require the use of message mailboxes. When OS_MBOX_EN
is set to 0, you do not need to enable or disable any of the other #define
constants in this section.
...
OS_MBOX_QUERY_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSMboxQuery()
.
Memory Management
OS_MEM_EN
OS_MEM_EN
enables (when set to 1) or disables (when set to 0) all code generation of the µC/OS-II partition-memory manager and its associated data structures. This feature reduces the amount of code and data space needed when your application does not require the use of memory partitions.
...
OS_MEM_QUERY_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSMemQuery()
.
Mutual Exclusion Semaphores
OS_MUTEX_EN
OS_MUTEX_EN
enables (when set to 1) or disables (when set to 0) the code generation of all mutual-exclusion-semaphore services and data structures, which reduces the amount of code and data space needed when your application does not require the use of mutexes. When OS_MUTEX_EN
is set to 0, you do not need to enable or disable any of the other #define
constants in this section.
...
OS_MUTEX_QUERY_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSMutexQuery()
.
Message Queues
OS_Q_EN
OS_Q_EN
enables (when set to 1) or disables (when set to 0) the code generation of all message-queue services and data structures, which reduces the amount of code space needed when your application does not require the use of message queues. When OS_Q_EN
is set to 0, you do not need to enable or disable any of the other #define
constants in this section. Note that if OS_Q_EN
is set to 0, the #define
constant OS_MAX_QS
is irrelevant.
...
OS_Q_QUERY_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSQQuery()
.
Semaphores
OS_SEM_EN
OS_SEM_EN
enables (when set to 1) or disables (when set to 0) all code generation of the µC/OS-II semaphore manager and its associated data structures, which reduces the amount of code and data space needed when your application does not require the use of semaphores. When OS_SEM_EN
is set to 0, you do not need to enable or disable any of the other #define
constants in this section.
...
OS_SEM_SET_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSSemSet()
.
Task Management
OS_TASK_TMR_STK_SIZE
OS_TASK_TMR_STK_SIZE
specifies the size of the µC/OS-II timer task stack. The size is specified not in bytes but in number of elements. This is because a stack is declared to be of type OS_STK
. The size of the timer-task stack depends on the processor you are using, the ‘callback’ functions that will be executed when each of the timer times out and the deepest anticipated interrupt-nesting level.
...
OS_TASK_TMR_PRIO
specifies the priority of the timer management task. You can set the priority of the timer task to anything you want. Note that timer callback functions are executed by the timer task. OS_TASK_TMR_PRIO
needs to be set in your application file called APP_CFG.H
.
Time Management
OS_TIME_DLY_HMSM_EN
OS_TIME_DLY_HMSM_EN
enables (when set to 1) or disables (when set to 0) the code generation of the function OSTimeDlyHMSM()
, which is used to delay a task for a specified number of hours, minutes, seconds, and milliseconds.
...
Normally, µC/OS-II requires the presence of a function called OSTimeTickHook()
which is called at the very beginning of the tick ISR. When set to 0
, this constant allows you to omit OSTimeTickHook()
from your code. This configuration constant was added to reduce the amount of overhead during a tick ISR in applications that doesn’t require this hook.
Timer Management
Note that timer management requires semaphores and thus, you need to set OS_SEM_EN
to 1
.
...
This configuration constant determines the rate at which timers are updated (in Hz). Timer updates should be done at a fraction of the tick rate (i.e. OS_TICKS_PER_SEC
). We recommend that you update timers at 10 Hz.
Function Summary
Table 17.1 lists each µC/OS-II function by type (Service), indicates which variables enable the code (Set to 1), and lists other configuration constants that affect the function (Other Constants).
...