Category: Development Tools News
Micrium is proud to announce that its newest version of µC/OS-II (V2.60) is now available from www.Micrium.com for only $50.00 USD.
V2.60 provides the following:
a) Fixes minor issues with V2.52.
b) Simplifies FAA Level A certification by removing all MCDC (Modified Condition Decision Coverage).
c) Follows most of the guidelines of The Motor Industry Software Reliability Association (MISRA C) "Guidelines for the use of the C language in vehicle based software".
d) Adds support for kernel awareness.
e) Directly supports µC/OS-View (for details on uC/OS-View, see http://www.ucos-ii.com/contents/products/ucos-ii/uc-view.html).
f) Adds some new features.
g) Made some changes to the code
New Features
1) Find out which flag(s) caused task to wakeup.
Added the function OSFlagPendGetFlagsRdy() (file OS_FLAG.C) to allow to determine which flag(s) caused the current task to become ready. In other words, you will now be able to know what event flag(s) caused the pending task to wake up.
2) Posting NULL pointers to queues.
It is now possible to send NULL pointer message through queues. OSQPost() and OSQPostFront() no longer blocks NULL pointers from being deposited into queues.
3) Assigning names to Tasks and other kernel objects.
It is now possible to assign names to Tasks, Memory Partitions, Semaphores, Mutexes, Event Flags, Mailboxes and Queues. The names are useful when debugging applications. You assign names by calling one of the following functions:
OSEventNameSet()
OSFlagNameSet()
OSMemNameSet()
OSTaskNameSet()
You can obtain the name of a task or a kernel object by calling the following functions:
OSEventNameGet()
OSFlagNameGet()
OSMemNameGet()
OSTaskNameGet()
4) Disable calls to OSTaskSwHook() and OSTimeTickHook()
It is now possible to disable (at compile time) the need to have the functions OSTaskSwHook() and OSTimeTickHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick.
To disable OSTaskSwHook(), simply set OS_TASK_SW_HOOK_EN to 0 in OS_CFG.H. Of course, the port (OS_CPU_A.ASM) for the processor you are using must not call OSTaskSwHook().
To disable OSTimeTickHook(), simply set OS_TIME_TICK_HOOK_EN to 0 in OS_CFG.H.
5) Added variables in OS_TCB to allow profiling
Variables have been added to OS_TCB to allow each task to be profiled. In other words, µC/OS-II contains variables that register the number of time a task is 'switched-in', how long a task takes to execute, how much stack space each task consumes and more. These variables have been added to better support µC/OS-View and other profiling tools.
6) Added tick stepping support for µC/OS-View
µC/OS-View can now 'halt' µC/OS-II's tick processing and allow you to issue 'step' commands from µC/OS-View. In other words, µC/OS-View can prevent µC/OS-II from calling OSTimeTick() so that timeouts and time delays are no longer processed. However, though a keystroke from µC/OS-View, you can execute a single tick at a time. If enabled, OSTimeTickHook() is still executed at the regular tick rate
in case you have time critical items to take care of in your application.
7) Added new #defines in OS_CFG.H
Instead of edition your OS_CFG.H, I recommend that you copy one of
the OS_CFG.H files provided with the V2.60 release and then modify it to satisfy your application requirements.
OS_DEBUG_EN
This #define adds ROM constants to help support kernel aware debuggers. Specifically, a number of named ROM variables can be queried by a debugger to find out about compiled-in options. For example, the debugger can find out the size of an OS_TCB, µC/OS-II's version number, the size of an event flag group (OS_FLAG_GRP) and
much more.
OS_EVENT_NAME_SIZE
This #define determines the size of ASCII strings used to name either semaphores, mutexes, mailboxes and queues. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSEventNameGet() and OSEventNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for
the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_FLAG_NAME_SIZE
This #define determines the size of ASCII strings used to name event flag groups. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSFlagNameGet() and OSFlagNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to
accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_MEM_NAME_SIZE
This #define determines the size of ASCII strings used to name memory partitions. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSMemNameGet() and OSMemNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_TASK_NAME_SIZE
This #define determines the size of ASCII strings used to name tasks. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSTaskNameGet() and OSTaskNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_TASK_PROFILE_EN
This #define is used to allocate storage for variables used for run-time task profiling. These variables are used by µC/OS-View and some kernel aware debuggers.
OS_TASK_STAT_STK_CHK_EN
This #define allows the statistic task to do run-time checking of all the stacks of all the active tasks. In other words, when set to 1, OS_TaskStat() calls the function OS_TaskStatStkChk(). Of course, for this to happen, OS_TASK_STAT_EN must also be set to 1.
OS_TASK_SW_HOOK_EN
It is now possible to disable (at compile time) the need to have the functions OSTaskSwHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick. To disable OSTaskSwHook(), simply set OS_TASK_SW_HOOK_EN to 0 in OS_CFG.H. Of course, the port (OS_CPU_A.ASM) for the processor you are using must not call OSTaskSwHook().
OS_TICK_STEP_EN
µC/OS-View can now 'halt' µC/OS-II's tick processing and allow you to issue 'step' commands from µC/OS-View. In other words, µC/OS-View can prevent µC/OS-II from calling OSTimeTick() so that timeouts and time delays are no longer processed. However, though a keystroke from µC/OS-View, you can execute a single tick at a time. If
OS_TIME_TICK_HOOK_EN (see below) is set to 1, OSTimeTicHook) is still executed at the regular tick rate in case you have time critical items to take care of in your application.
OS_TIME_TICK_HOOK_EN
It is now possible to disable (at compile time) the need to have the functions OSTimeTickHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick. To disable OSTimeTickHook(), simply set OS_TIME_TICK_HOOK_EN to 0 in OS_CFG.H.
Regards,
Jean J. Labrosse
-----------------------------------------
M I C R I U M , I N C.
949 Crestview Circle
Weston, FL 33327-1848
U.S.A.
e-mail: Jean.Labrosse@Micrium.com
Micrium Releases µC/OS-II v2.60
By Jean J. Labrosse
Oct 16, 2002 - 8:29:00 AM
Oct 16, 2002 - 8:29:00 AM
Micrium announces v2.60 of µC/OS-II
V2.60 provides the following:
a) Fixes minor issues with V2.52.
b) Simplifies FAA Level A certification by removing all MCDC (Modified Condition Decision Coverage).
c) Follows most of the guidelines of The Motor Industry Software Reliability Association (MISRA C) "Guidelines for the use of the C language in vehicle based software".
d) Adds support for kernel awareness.
e) Directly supports µC/OS-View (for details on uC/OS-View, see http://www.ucos-ii.com/contents/products/ucos-ii/uc-view.html).
f) Adds some new features.
g) Made some changes to the code
New Features
1) Find out which flag(s) caused task to wakeup.
Added the function OSFlagPendGetFlagsRdy() (file OS_FLAG.C) to allow to determine which flag(s) caused the current task to become ready. In other words, you will now be able to know what event flag(s) caused the pending task to wake up.
2) Posting NULL pointers to queues.
It is now possible to send NULL pointer message through queues. OSQPost() and OSQPostFront() no longer blocks NULL pointers from being deposited into queues.
3) Assigning names to Tasks and other kernel objects.
It is now possible to assign names to Tasks, Memory Partitions, Semaphores, Mutexes, Event Flags, Mailboxes and Queues. The names are useful when debugging applications. You assign names by calling one of the following functions:
OSEventNameSet()
OSFlagNameSet()
OSMemNameSet()
OSTaskNameSet()
You can obtain the name of a task or a kernel object by calling the following functions:
OSEventNameGet()
OSFlagNameGet()
OSMemNameGet()
OSTaskNameGet()
4) Disable calls to OSTaskSwHook() and OSTimeTickHook()
It is now possible to disable (at compile time) the need to have the functions OSTaskSwHook() and OSTimeTickHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick.
To disable OSTaskSwHook(), simply set OS_TASK_SW_HOOK_EN to 0 in OS_CFG.H. Of course, the port (OS_CPU_A.ASM) for the processor you are using must not call OSTaskSwHook().
To disable OSTimeTickHook(), simply set OS_TIME_TICK_HOOK_EN to 0 in OS_CFG.H.
5) Added variables in OS_TCB to allow profiling
Variables have been added to OS_TCB to allow each task to be profiled. In other words, µC/OS-II contains variables that register the number of time a task is 'switched-in', how long a task takes to execute, how much stack space each task consumes and more. These variables have been added to better support µC/OS-View and other profiling tools.
6) Added tick stepping support for µC/OS-View
µC/OS-View can now 'halt' µC/OS-II's tick processing and allow you to issue 'step' commands from µC/OS-View. In other words, µC/OS-View can prevent µC/OS-II from calling OSTimeTick() so that timeouts and time delays are no longer processed. However, though a keystroke from µC/OS-View, you can execute a single tick at a time. If enabled, OSTimeTickHook() is still executed at the regular tick rate
in case you have time critical items to take care of in your application.
7) Added new #defines in OS_CFG.H
Instead of edition your OS_CFG.H, I recommend that you copy one of
the OS_CFG.H files provided with the V2.60 release and then modify it to satisfy your application requirements.
OS_DEBUG_EN
This #define adds ROM constants to help support kernel aware debuggers. Specifically, a number of named ROM variables can be queried by a debugger to find out about compiled-in options. For example, the debugger can find out the size of an OS_TCB, µC/OS-II's version number, the size of an event flag group (OS_FLAG_GRP) and
much more.
OS_EVENT_NAME_SIZE
This #define determines the size of ASCII strings used to name either semaphores, mutexes, mailboxes and queues. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSEventNameGet() and OSEventNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for
the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_FLAG_NAME_SIZE
This #define determines the size of ASCII strings used to name event flag groups. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSFlagNameGet() and OSFlagNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to
accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_MEM_NAME_SIZE
This #define determines the size of ASCII strings used to name memory partitions. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSMemNameGet() and OSMemNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_TASK_NAME_SIZE
This #define determines the size of ASCII strings used to name tasks. If set to 0, this feature will be disabled: no RAM will be allocated and the functions OSTaskNameGet() and OSTaskNameSet() will not be compiled. If set to a non-zero value, it determines the number of bytes allocated for the name. Please note that you need to accommodate for the NUL character and if you do use a non-zero value, you should have a minimum of 2 for this value.
OS_TASK_PROFILE_EN
This #define is used to allocate storage for variables used for run-time task profiling. These variables are used by µC/OS-View and some kernel aware debuggers.
OS_TASK_STAT_STK_CHK_EN
This #define allows the statistic task to do run-time checking of all the stacks of all the active tasks. In other words, when set to 1, OS_TaskStat() calls the function OS_TaskStatStkChk(). Of course, for this to happen, OS_TASK_STAT_EN must also be set to 1.
OS_TASK_SW_HOOK_EN
It is now possible to disable (at compile time) the need to have the functions OSTaskSwHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick. To disable OSTaskSwHook(), simply set OS_TASK_SW_HOOK_EN to 0 in OS_CFG.H. Of course, the port (OS_CPU_A.ASM) for the processor you are using must not call OSTaskSwHook().
OS_TICK_STEP_EN
µC/OS-View can now 'halt' µC/OS-II's tick processing and allow you to issue 'step' commands from µC/OS-View. In other words, µC/OS-View can prevent µC/OS-II from calling OSTimeTick() so that timeouts and time delays are no longer processed. However, though a keystroke from µC/OS-View, you can execute a single tick at a time. If
OS_TIME_TICK_HOOK_EN (see below) is set to 1, OSTimeTicHook) is still executed at the regular tick rate in case you have time critical items to take care of in your application.
OS_TIME_TICK_HOOK_EN
It is now possible to disable (at compile time) the need to have the functions OSTimeTickHook(). This feature was requested because of the overhead involved in calling empty functions during a context switch and also every tick. To disable OSTimeTickHook(), simply set OS_TIME_TICK_HOOK_EN to 0 in OS_CFG.H.
Regards,
Jean J. Labrosse
-----------------------------------------
M I C R I U M , I N C.
949 Crestview Circle
Weston, FL 33327-1848
U.S.A.
e-mail: Jean.Labrosse@Micrium.com
Micrium Releases µC/OS-II v2.60
This Article has been seen 16558 times