uC-OS-III Configuration Manual

Three (3) files are used to configure µC/OS-III as highlighted in the figure below: os_cfg.h, os_cfg_app.h and os_type.h.

The table below shows where these files are typically located on your on a computer.

Configuration Files and Directories
FileDirectory
os_cfg.h\Micrium\Software\uCOS-III\Cfg\Template
os_cfg_app.h\Micrium\Software\uCOS-III\Cfg\Template
os_type.h\Micrium\Software\uCOS-III\Source


µC/OS-III File Structure

(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.

The contents of the three configuration files will be described in the following sections.