Overview
SEGGER's embOS plug-in for IAR Embedded Workbench provides
embOS awareness during debugging sessions. This enables you to inspect
the state of several embOS primitives such as the task list, resource
semaphores, mailboxes, or timers.
Requirements
In order to use the embOS IAR plug-in you need a version
of IAR's Embedded Workbench installed and a debug target which uses embOS.
Specifically:
- An embOS version 3.28 or higher is required for complete compatibility.
Older embOS versions use different internal structures and the plug-in
is therefore of limited use with version prior to 3.28.
- An IAR Embedded Workbench IDE with a C-SPY debugger version 4.3 or
higher is required.
Supported CPUs
The embOS plug-in works with 16-bit or 32-bit CPUs in
little- or big-endian mode supported by embOS, but due to limited testing,
support can only be granted for the CPUs listed below.
- Any ARM7 / ARM9 CPU
- Renesas H8/H8S
- Renesas M16C
- NEC V850
- NEC 78/K0
- TI MSP430
Installation and Configuration
Installation
The installation procedure is very straightforward since
it only requires you to copy the contents of the embOS plug-in package
into the IAR common plug-in directory. The directory structure may look
like this:
Create a directory embOS
below common\plugins in
your IAR installation directory. Extract the contents of the embOS plug-in
ZIP file into this directory and restart the IAR workbench.
Configuration
By default the embOS plug-in is not loaded during debugging.
For each project configuration you have to explicitly enable the plug-in
in the debugger section of the project options:
That's all. The embOS plug-in is now available in debugging
sessions and may be accessed from the main menu.
Getting started
Overview
During your debugging session, the embOS plug-in is
accessible from the IAR Embedded Workbench main menu. Please note that
if you are not running a debugging session, there is no embOS menu item
available.
From the menu you may activate the individual windows
that provide embOS related information. The sections below describe these
individual windows. The amount of information available depends on the
embOS build used during debugging. If a certain part is not available,
the respective menu item is either greyed out or the window column shows
a "N/A".
Task list
The task list window lists all current embOS tasks.
It retrieves its information directly from the embOS task list.
The individual columns are described below:
| * |
A green arrow points at the currently active embOS task. |
| Id |
The task control block address that uniquely identifies a task. |
| Name |
If available the task name is show here. |
| Status |
The task status as a short text. |
| Timeout |
If a task is delayed, this column shows the timeout value and in
parentheses the point in time when the delay will be finished. |
| Events |
The event mask of a task. |
| Stack Info |
If available this column shows the amount of used stack space and
the available stack space as well as the value of the current stack
bottom pointer. |
| Activations |
The number of task activations. |
| Round Robin |
If round robin scheduling is available, this column shows the number
of remaining time slices and the number of time slice reloads. |
Mailboxes
A mailbox is a buffer that is managed by the real time
operating system. The buffer behaves like a normal buffer; you can put
something (called a message) in and retrieve it later. This window shows
the mailboxes and provides information about the number of messages, waiting
tasks etc.
| Id |
The mailbox address. |
| Messages |
Shows the number of messages in a mailbox and the maximum number
of messages as mailbox can hold. |
| Message size |
The size of an individual message. |
| pBuffer |
The message buffer address. |
| Waiting tasks |
Shows the list of tasks that are waiting on a mailbox, that is their
address and name. |
Timers
A software timer is an object that calls a user-specified
routine after a specified delay. This window provides information about
active software timers.
| Id |
The timer's address. |
| Hook |
The function (address and name) that is called after the timeout. |
| Time |
The time delay and the point in time, the timer finishes waiting. |
| Period |
The time period the timer runs. |
| Active |
Shows whether the timer is active or not. |
Resource semaphores
Resource semaphores are used to manage resources by
avoiding conflicts caused by simultaneous use of a resource. This window
provides information about available resources.
| Id |
The resource semaphore address. |
| Owner |
The address and name of the owning task. |
| Use counter |
Counts the number of semaphore uses. |
| Waiting tasks |
Lists the tasks (address and name) that are waiting at the semaphore. |
System information
A running embOS contains a number of system variables
that are available for inspection. This window lists the most important
ones.
Settings
To be safe, the embOS plug-in imposes certain limits
on the amount of information retrieved from the target, to avoid endless
requests in case of false values in the target memory. This dialog allows
you to tweak these limits in a certain range, e.g. if your task names
are no longer that 32 characters you may set the maximum string length
to 32, or if they are longer than the default you may increase that value.
After changing settings and pressing the OK button,
your changes are applied immediately and should become noticeable after
the next window update, e.g. when hitting the next breakpoint. However
the settings are restored to their defaults on plugin reload.
Software download

Copyright SEGGER Microcontroller GmbH & Co.KG. All
rights reserved.
For more information, please visit our web site
www.segger.com or contact us at info@segger.com
Last update:
December 7, 2007
|