Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Unable to render {include} The included page could not be found.
Unable to render {include} The included page could not be found.

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. Table C-3 shows the differences between the data types used in both kernels

.

µ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

CPU_SR

(2)

µC/OS-II (os_cfg.h)

µC/CPU (cpu.h)

 

OS_STK_GROWTH

CPU_CFG_STK_GROWTH

(3)

    1. µC/OS-II vs. µC/OS-III basic data types
      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 Table C-4. Table C-4 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-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_INT_Q_SIZE

 

 

OS_CFG_INT_Q_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. µC/OS-III uses “CFG” in configuration
      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).

Table C-5 shows additional configuration constants added to os_cfg.h, while several µC/OS-II constants were either removed or renamed.

 

µ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_CFG_PEND_MULTI_EN

 

OS_EVENT_NAME_EN

 

(2)

 

OS_CFG_ISR_POST_DEFERRED_EN

 

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. µC/OS-III uses “CFG” in configuration
      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.
      3. In µC/OS-II, it is necessary to declare the maximum number of kernel objects (number of tasks, number of event flag groups, message queues, etc.) at compile time. In µC/OS-III, all kernel objects are allocated at run time so it is no longer necessary to specify the maximum number of these objects. This feature saves valuable RAM as it is no longer necessary to over allocate objects.
      4. In µC/OS-II, event-flag width must be declared at compile time through OS_FLAG_NBITS. In µC/OS-III, this is accomplished by defining the width (i.e., number of bits) in os_type.h through the data type OS_FLAG. The default is typically 32 bits.
      5. µC/OS-III does not provide query services to the application.
      6. µC/OS-III does not directly provide “accept” function calls as with µC/OS-II. Instead, OS???Pend() functions provide an option that emulates the “accept” functionality by specifying OS_OPT_PEND_NON_BLOCKING.
      7. In µC/OS-II, there are a number of “post” functions. The features offered are now combined in the OS???Post() functions in µC/OS-III.
      8. The µC/OS-View feature OS_TICK_STEP_EN is not present in µC/OS-III since µC/OS-View is an obsolete product and in fact, was replaced by µC/Probe.
  • No labels