- Small-footprint (small as 2KB, automatic scaling)
- Fast execution (sub microsecond context switch)
- Supports all popular processors and tools (see below)
- TraceX system analysis support
- Advanced Technology:
- Event Chaining™
- Performance Metrics
- Execution Profiling
- Run-time and Static Stack Analysis
- Multicore Support (SMP and AMP)
- Downloadable Application Modules
- Memory Protection for Downloadable Application Modules
- Extensive ThreadX ecosystem
- Safety Certifications (DO-178B, FDA510(k), IEC61508, etc)
- Deployed in over 1,000,000,000 devices
- Full Source Code
- Critical Link MityDSP/MityARM
- Energy Micro EFM32
- Fujitsu FM3
- Hitachi H8/300H
- Infineon XMC
- Microchip PIC24/dsPIC
- Microchip PIC32
- Nios II
- Power Architecture
- Renesas RX
- Renesas SH
- Renesas V8xx
- ST Microelectronics STM32
- Synopsys ARC
- TI ARM
- TI MSP430
- Univers A2P
- Xilinx ARM
The Univers Debugger for A2P
Introduction to the Univers Debugger for ThreadXAdveda “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 Thread List TabThis 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.