Keil RTX
On this page:
winIDEA provides dedicated debugging and profiling support for the Keil RTX4 and RTX5 RTOS. This includes specialized views for kernel objects and basic thread profiling.
With Keil RTX debug support, you can:
•inspect kernel objects such as threads, timers, semaphores, mutexes, and memory pools
•profile running threads.
winIDEA supports running threads profiling for Keil RTX. It records whether a thread is running and displays this information in the Profiler Timeline Window. No additional configuration is required.
If the Process names are available when the Analyzer Session starts, they are shown directly in the Profiler Timeline. To ensure this, start and stop Keil RTX plugin before launching the Analyzer. This is especially needed in RTX5 as threads can be created at runtime.
Note that infinite thread entry functions are not visible in the Code Profiler window unless Analyzer Configuration | Profiler | Advanced | Allow functions without exits is checked.
•Keil RTX version 4 or 5
To start using the Kel RTX plugin, follow these steps:
1. Open Debug | Configure Session … | [<application name>] | Application.
2. Select RTX under OS.
For more information, refer to Profile OS objects or follow the Session Configuration Wizard.
The Threads window shows information about all threads in the system. To open it go to View | [<application name>] New Keil RTX | Threads.

Column name |
Description |
|---|---|
Name |
Name provided in thread attributes at thread creation. If none is provided, the symbol name of the thread entry function is displayed. |
ID |
Thread ID. In RTX5 this is the object address. In RTX4 this is a sequential thread number. |
Priority |
Thread priority (1 = lowest, 56 = highest). |
State |
Current state of a thread.
•RTX5 can be either of: oINACTIVE oREADY oRUNNING oTERMINATED oWait(Delay, Join, ThreadFlags, Event, Mutex, Semaphore, MemoryPool, MessageGet or MessagePut)
•RTX4 can be either of: oINACTIVE oREADY oRUNNING oWAIT_(DLY, ITV, OR, AND, SEM, MBX and MUT) |
Delay |
Amount of ticks left to be suspended in the delay state. |
Stack Usage |
Used stack / total allocated stack (bytes). |
The Timers window shows information about all timers in the system. To open it go to View | [<application name>] New Keil RTX | Timers.

Column name |
Description |
|---|---|
Callback |
Function to be called once the timer elapses. |
State |
Current timer state.
Timer states: •INACTIVE •STOPPED •RUNNING •INVALID |
Period |
Period of the timer in ticks |
Ticks Left |
Ticks until callback function is called |
Type |
One shot or periodic. |
The Memory Pool window shows information about all memory pools in the system. To open it go to View | [<application name>] New Keil RTX | Memory Pools.
Note: Not supported for Keil RTX4.

Column name |
Description |
|---|---|
Pool ID |
Pool name attribute, if null, pool structure address is displayed instead |
Used Blocks |
Number of already allocated blocks |
Max Blocks |
Number of all available blocks in a pool |
Block Size |
Size of a block in bytes |
Memory Base |
Starting address of memory pool data |
Memory Size |
Size of memory pool in Bytes (Blocks * Block size) |
The Semaphore window shows semaphore usage info. To open it go to View | [<application name>] New Keil RTX | Semaphore.
Note: Not supported for Keil RTX4.

Column name |
Description |
|---|---|
Name |
Name of the semaphore or pointer to the semaphore structure if name is not provided in the attributes. |
Tokens |
Number of free tokens for given semaphore |
The Mutex window shows semaphore usage info. To open it go to View | [<application name>] New Keil RTX | Mutex.
Note: Not supported for Keil RTX4.

Column name |
Description |
|---|---|
Name |
Name of the mutex, or address of the mutex if name is not provided |
Status |
can be Locked or Unlocked |
Owner Thread |
thread ID which holds this mutex |