Keil Logo

Technical Support

On-Line Manuals

µVision User's Guide

About µVision User Interface Creating Applications Debugging Start Debugging Start Energy Measurement without Debug Application Program Execution Debug Windows and Dialogs Breakpoints Window Call Stack and Locals Window Code Coverage Command Window Component Viewer Disassembly Window Editor Window Event Recorder Setup Event Recorder Event Recorder Window Events Filtering Event Statistics Window Post-mortem Analysis Event Viewer Execution Profiler Instruction Trace Window System Analyzer Usage tips Save System Analyzer Contents Statistics Restrictions Logic Analyzer Setup Setup in Detail Restrictions Cortex-M Trace Configuration Memory Map Memory Window Performance Analyzer Registers Window Serial Window Debug (printf) Viewer Symbols Window System Viewer Adding System Viewer Windows System and Thread Viewer Thread States Toolbox Trace Data Window Trace Navigation Trace Exceptions Event Counters ULINKplus Window Watch Window Core Peripherals Cortex-M0 and Cortex-M0+ Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports (Cortex-M0+ only) Cortex-M3, Cortex-M4, and Cortex-M7 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Cortex-M23/M33/M35P and Cortex-M55 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Security Attribution Unit M-Profile Vector Extension (MVE) Debug Scripting Expressions Constants System Variables Peripheral Variables I/O Ports Serial Ports Program Variables (Symbols) Fully Qualified Symbols Non-Qualified Symbols Literal Symbols Using Symbols Line Numbers Bit Addresses Type Specifications Memory Attribution Specifiers Operators Differences between µVision and C Expression Examples Code and Data Trace (Cortex-M) Trace Features Configuring Trace Tracepoint Expressions Tracepoint Intrinsics Tracepoint Limitations Tracepoint Marks Tips and Tricks Review Peripherals and CPU Configuration Simulate I/O Ports Simulate Interrupts and Clock Inputs Simulate external I/O Devices Assign Serial I/O to a PC COM Port Check Illegal Memory Access Command Input from File Preset I/O Ports or Memory Contents Write Debug Output to a File Keyboard Shortcuts TPIU Initialization after RESET (Cortex-M) Prevent Opening Files Show Japanese Messages Debug Commands Debug Functions Simulation Flash Programming Dialogs Utilities Command Line Example Programs Appendix

System and Thread Viewer

The System and Thread Viewer window shows system state information and running threads for a CMSIS RTOS RTX application.


  • The System and Thread Viewer only supports Keil RTX 4.82 or earlier.
  • For similar information with Keil RTX 5, use the Component Viewer (View - Watch Window - RTX RTOS)

Open the window with Debug – OS Support – System and Thread Viewer.

System and Thread Viewer

One thread can run in multiple instances. All active threads are listed in this dialog. The System property shows general information about the RTOS configuration. The item Thread Usage shows the number of available and used threads that are currently active.

The Threads property shows details about thread execution, including information about priority, execution state, and stack usage. Threads columns identify:


ID Thread index assigned when the thread was started.
Name Name of the thread function.
Priority Current thread priority.
State Current thread state.
Delay Delay timeout value of a thread.
Event Value Event flags set for a thread.
Event Mask Event flags that the thread is waiting for.
Stack Usage Stack usage of a thread.

If the option Stack usage watermark is enabled in the file RTX_Conf_CM.c, then the field Stack Usage shows the current and maximum stack load.
The value cur: is the current stack usage at the actual program location.
The value max: is the maximum stack load that occurred during thread execution, based on overwrites of the stack usage watermark pattern.
Values in brackets ([ ]) are the maximum stack usage in bytes and the total stack size in bytes.

This allows you:
  • to identify a stack overflow during thread execution
  • to optimize and reduce the stack space for a thread.


  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.