Convention Changes

Convention Changes

There are a number of convention changes from µC/OS-II to µC/OS-III. The most notable is the use of CPU-specific data types. The table below shows the differences between the data types used in both kernels.

µC/OS-II vs. µC/OS-III basic Data Types

µC/OS-II (os_cpu.h)

µC/CPU (cpu.h)

Note

BOOLEAN

CPU_BOOLEAN

INT8S

CPU_INT08S

INT8U

CPU_INT08U

INT16S

CPU_INT16S

INT16U

CPU_INT16U

INT32S

CPU_INT32S

INT32U

CPU_INT32U

OS_STK

CPU_STK

(1)

OS_CPU_SR
µC/OS-II (os_cfg.h)

CPU_SR
µC/CPU (cpu.h)

(2)

OS_STK_GROWTH

CPU_CFG_STK_GROWTH

(3)

(1)  A task stack in µC/OS-II is declared as an  OS_STK , which is now replaced by a CPU specific data type  CPU_STK . These two data types are equivalent, except that defining the width of the CPU stack in µC/CPU makes more sense.

(2) It also makes sense to declare the CPU’s status register in µC/CPU.

(3) Stack growth (high-to-low or low-to-high memory) is declared in µC/CPU since stack growth is a CPU feature and not an OS one.

Another convention change is the use of the acronym “ CFG ” which stands for configuration. Now, all #define configuration constants and variables have the “ CFG ” or “ Cfg ” acronym in them as shown in the table below. This table shows the configuration constants that have been moved from os_cfg.h to os_cfg_app.h . This is done because µC/OS-III is configurable at the application level instead of just at compile time as with µC/OS-II.

µC/OS-III uses "CFG" in configuration

µC/OS-II (os_cfg.h)

µC/OS-III (os_cfg_app.h)

Note

OS_CFG_MSG_POOL_SIZE

OS_CFG_ISR_STK_SIZE

OS_CFG_TASK_STK_LIMIT_PCT_EMPTY

OS_TASK_IDLE_STK_SIZE

OS_CFG_IDLE_TASK_STK_SIZE

OS_CFG_STAT_TASK_PRIO

OS_CFG_STAT_TASK_RATE_HZ

OS_TASK_STAT_STK_SIZE

OS_CFG_STAT_TASK_STK_SIZE

OS_TICKS_PER_SEC

OS_CFG_TICK_RATE_HZ

(1)

OS_CFG_TICK_TASK_PRIO

OS_CFG_TICK_TASK_STK_SIZE

OS_CFG_TMR_TASK_PRIO

OS_TMR_CFG_TICKS_PER_SEC

OS_CFG_TMR_TASK_RATE_HZ

OS_TASK_TMR_STK_SIZE

OS_CFG_TMR_TASK_STK_SIZE


 

(1)  The very useful  OS_TICKS_PER_SEC  in µC/OS-II was renamed to  OS_CFG_TICK_RATE_HZ  in µC/OS-III. The “ HZ ” indicates that this  #define  represents Hertz (i.e., ticks per second).

The table belowshows additional configuration constants added to os_cfg.h , while several µC/OS-II constants were either removed or renamed.

µC/OS-III uses "CFG" in configuration

µC/OS-II (os_cfg.h)

µC/OS-III (os_cfg.h)

Note

OS_APP_HOOKS_EN

OS_CFG_APP_HOOKS_EN

OS_ARG_CHK_EN

OS_CFG_ARG_CHK_EN

OS_CFG_CALLED_FROM_ISR_CHK_EN

OS_DEBUG_EN

OS_CFG_DBG_EN

(1)

OS_EVENT_MULTI_EN

OS_EVENT_NAME_EN

(2)

OS_MAX_EVENTS

(3)

OS_MAX_FLAGS

(3)

OS_MAX_MEM_PART

(3)

OS_MAX_QS

(3)

OS_MAX_TASKS

(3)

OS_CFG_OBJ_TYPE_CHK_EN

OS_LOWEST_PRIO

OS_CFG_PRIO_MAX

OS_CFG_SCHED_LOCK_TIME_MEAS_EN

OS_CFG_SCHED_ROUND_ROBIN_EN

OS_CFG_STK_SIZE_MIN

OS_FLAG_EN

OS_CFG_FLAG_EN

OS_FLAG_ACCEPT_EN

(6)

OS_FLAG_DEL_EN

OS_CFG_FLAG_DEL_EN

OS_FLAG_WAIT_CLR_EN

OS_CFG_FLAG_MODE_CLR_EN

OS_FLAG_NAME_EN

(2)

OS_FLAG_NBITS

(4)

OS_FLAG_QUERY_EN

(5)

OS_CFG_PEND_ABORT_EN

OS_MBOX_EN

OS_MBOX_ACCEPT_EN

(6)

OS_MBOX_DEL_EN

OS_MBOX_PEND_ABORT_EN

OS_MBOX_POST_EN

OS_MBOX_POST_OPT_EN

OS_MBOX_QUERY_EN

(5)

OS_MEM_EN

OS_CFG_MEM_EN

OS_MEM_NAME_EN

(2)

OS_MEM_QUERY_EN

(5)

OS_MUTEX_EN

OS_CFG_MUTEX_EN

OS_MUTEX_ACCEPT_EN

(6)

OS_MUTEX_DEL_EN

OS_CFG_MUTEX_DEL_EN

OS_CFG_MUTEX_PEND_ABORT_EN

OS_MUTEX_QUERY_EN

(5)

OS_Q_EN

OS_CFG_Q_EN

OS_Q_ACCEPT_EN

(6)

OS_Q_DEL_EN

OS_CFG_Q_DEL_EN

OS_Q_FLUSH_EN

OS_CFG_Q_FLUSH_EN

OS_CFG_Q_PEND_ABORT_EN

OS_Q_POST_EN

(7)

OS_Q_POST_FRONT_EN

(7)

OS_Q_POST_OPT_EN

(7)

OS_Q_QUERY_EN

(5)

OS_SCHED_LOCK_EN

OS_SEM_EN

OS_CFG_SEM_EN

OS_SEM_ACCEPT_EN

(6)

OS_SEM_DEL_EN

OS_CFG_SEM_DEL_EN

OS_SEM_PEND_ABORT_EN

OS_CFG_SEM_PEND_ABORT_EN

OS_SEM_QUERY_EN

(5)

OS_SEM_SET_EN

OS_CFG_SEM_SET_EN

OS_TASK_STAT_EN

OS_CFG_STAT_TASK_EN

OS_TASK_STK_CHK_EN

OS_CFG_STAT_TASK_STK_CHK_EN

OS_TASK_CHANGE_PRIO_EN

OS_CFG_TASK_CHANGE_PRIO_EN

OS_TASK_CREATE_EN

OS_TASK_CREATE_EXT_EN

OS_TASK_DEL_EN

OS_CFG_TASK_DEL_EN

OS_TASK_NAME_EN

(2)

OS_CFG_TASK_Q_EN

OS_CFG_TASK_Q_PEND_ABORT_EN

OS_TASK_QUERY_EN

(5)

OS_TASK_PROFILE_EN

OS_CFG_TASK_PROFILE_EN

OS_CFG_TASK_REG_TBL_SIZE

OS_CFG_TASK_SEM_PEND_ABORT_EN

OS_TASK_SUSPEND_EN

OS_CFG_TASK_SUSPEND_EN

OS_TASK_SW_HOOK_EN

OS_TICK_STEP_EN

(8)

OS_TIME_DLY_HMSM_EN

OS_CFG_TIME_DLY_HMSM_EN

OS_TIME_DLY_RESUME_EN

OS_CFG_TIME_DLY_RESUME_EN

OS_TIME_GET_SET_EN

OS_TIME_TICK_HOOK_EN

OS_TMR_EN

OS_CFG_TMR_EN

OS_TMR_CFG_NAME_EN

(2)

OS_TMR_DEL_EN

OS_CFG_TMR_DEL_EN

(1)  DEBUG is replaced with DBG.

(2) In µC/OS-II, all kernel objects can be assigned ASCII names after creation. In µC/OS-III, ASCII names are assigned when the object is created.