(1) µC/OS-III Features ( os_cfg.h ): os_cfg.h is used to determine which features are needed from µC/OS-III for an application (i.e., product). Specifically, this file allows a user to determine whether to include semaphores, mutexes, event flags, run-time argument checking, etc.
(2) µC/OS-III Data Types ( os_type.h ): os_type.h establishes µC/OS-III-specific data types used when building an application. It specifies the size of variables used to represent task priorities, the size of a semaphore count, and more. This file contains recommended data types for µC/OS-III, however these can be altered to make better use of the CPU’s natural word size. For example, on some 32-bit CPUs, it is better to declare boolean variables as 32-bit values for performance considerations, even though an 8-bit quantity is more space efficient (assuming performance is more important than footprint).
The port developer typically makes those decisions, since altering the contents of the file requires a deep understanding of the CPU and, most important, how data sizes affect µC/OS-III. (3) µC/OS-III Stacks, Pools and other data sizes ( os_cfg_app.h ): µC/OS-III can be configured at the application level through #define constants in os_cfg_app.h . The #defines allows a user to specify stack sizes for all µC/OS-III internal tasks: the idle task, statistic task, tick task, timer task, and the ISR handler task. os_cfg_app.h also allows users to specify task priorities (except for the idle task since it is always the lowest priority), the tick rate, and more. |