threadx Snapshot
  • Industry Leader
  • Over 5.4 Billion Deployments
  • Small-footprint
  • Fast, deterministic execution
  • Simple, easy-to-use
  • Advanced technology
  • Multicore support (AMP & SMP)
  • Memory Protection via ThreadX Modules
  • Fastest Time-To-Market
  • Royalty Free
  • Full, highest-quality source code
  • Pre-certified by TUV and UL to IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D, UL/IEC 60730, UL/IEC 60335, UL 1998, and EN 50128 SW-SIL 4
  • MISRA-C:2004 and MISRA C:2012 Compliant
  • Supports most popular architectures
    (see below)
  • Supports most popular tools
ThreadX Architecture Support
  • ARM
    • ARM7, ARM9, ARM11
    • Cortex-M, Cortex-R, Cortex-A
    • Cortex-Axx 64-bit
  • AndesCore
  • Analog Devices
    • Blackfin BF5xx, BF6xx, BF7xx
    • SHARC
  • Cadence
    • Xtensa
    • Diamond
  • CEVA
    • TeakLite-III
  • EnSilica
    • eSi-RISC
  • NXP
    • ARM (LPC, i.MX, Kinetis)
    • 68K
    • Coldfire
    • PowerPC
  • Imagination
    • MIPS32 4Kx, 24Kx, 34Kx, 1004K
    • microAptiv, interAptiv, proAptiv
    • M-Class
  • Intel
    • ARM (Cyclone SOC, Arria 10 SOC)
    • NIOSII
    • x86PM
  • Microchip
    • ARM (SAM)
    • AVR32
    • PIC24
    • PIC32
  • Renesas
    • ARM (Synergy, RZ)
    • H8/300H
    • RX
    • SH
    • V850
  • Silicon Labs
    • EFM32
  • ST
    • STM32
  • Synopsys
    • ARC 600, 700
    • ARC EM, ARC HS
  • Texas Instruments
    • ARM (Tiva-C, Sitara, OMAP)
    • C5xx
    • C6xx
  • Xilinx
    • ARM (Zynq)
    • MicroBlaze
    • PowerPC

Univers A2P

The Univers Debugger for A2P

Introduction to the Univers Debugger for ThreadX

Adveda “Univers” The ThreadX RTOSystem application simulation. The ThreadX RTOSystem can be simulated and debugged in Adveda’s united software and hardware environment “Univers”. All information for studying a full ThreadX RTOSystem application is available and accessible by using features offered by Adveda’s Univers. A lot of different breakpoint types can be set on all registers, every memory location and variable in each thread and/or function. From the whole application the cycle accurate code flow is registered and the numbers of executions of each code memory location and/or subroutine are shown (Code-coverage feature.) ThreadX applications of different processor-types like A2P, Cortex (ARM7, 9, 11) and others are available. Each ThreadX RTOSystem application can be connected to peripherals and/or other processor simulators which all are running simultaneously. Even multiple ThreadX RTOSystem applications with different speeds can be simulated simultaneously in one single environment. Together with the ThreadX also applications using FileX, Netx and USBX can be simulated.
The ThreadX RTOSystem application can be started easily by opening Adveda’s Univers, selecting “File\Load project” and then double-click “ExpressLogic\A2P_ThreadX.hsim” or one of the other “.hsim” files.
The Univers debugger has ThreadX specific modules that shows the active kernel objects for any application running Threadx. For the typical basic RTOS parameters, different tabs are selectable by simple mouse clicks.

The Thread List Tab

This is arguably the single most important window of the RTOS plugin.

This window shows a list of all threads created by the current application (by calls to tx_thread_create) and some items pertaining to their current state. The currently active thread is indicated by an arrow in the first column (and typically by a state of RUNNING in the State column). The order of the threads is that of the _tx_thread_created_ptr.

You can examine a particular thread by double-clicking on the corresponding row in the window. All debugger windows (Watch, Locals, Register, Call Stack, Source, Diassembly etc) will then show the state of the program from the point of view of the thread in question. A thread selected in this way is indicated in the Thread window by a different color (for the moment, a subdued blue color).

The last row of the Thread window is always NO TASK. Double-clicking on this row makes the debugger show the state of the program as it currently is (that is, as it would be shown without an RTOS plugin), in effect always following the active task.

Note that if a task has been selected by double-clicking, the debugger will show the state of that particular task until another task (or NO TASK) is selected, even if execution is performed by or in another task. For example, if task A is currently active (RUNNING) and you double-click on task B, which is READY, you will see information about the suspended task B. If you now perform a single-step by pressing F10, the active task (A) will perform a single-step, but since you are focused on task B, not much will actually visibly change.

The disassembly window presents a detailed view of the various jumps in the code


The profile view window shows a graphical representation of the accesses to various memory locations (address on the horizontal axis, number of cycles on the vertical axis.) It allows for quick identification of code that is not used, or areas in memory where high speed memory will improve overall performance of the application.


The profile tabs window shows information per function, the function's location in memory, function size, how many times the function has been called and how many CPU cycles have been spent in a particular function, with an overall overview in percentages.


Inspector Windows

The seven other windows display RTOS status information of various types. These windows are formatted but passive displays of various internal RTOS data structures. Timers
Event Flag Groups
Byte Pools
Block Pools