Green Hills MULTI 2000 With THREADX Aware Debugging
The MULTI Software Development Environment from Green Hills Software works seamlessly with the THREADX embedded real-time kernel from Express Logic, and provides detailed, kernel-aware information to developers.
MULTI for THREADX is fully aware of all seven THREADX kernel components and includes live, easy to understand summary lists and detailed individual views of all THREADX component types: Threads, Message Queues, Semaphores, Mutexes, Event Flag Groups, Memory Block Pools, Memory Byte Pools, and Application Timers.
Debugging can be performed on a specific thread. Thread-specific breakpoints can be set so that all other threads will continue past the breakpoint. This capability allows a single thread to be debugged even when it uses code that is common to multiple threads. Also, any thread’s register context can be shown with a single button click. For solicited stack frames that result from service calls that suspend, only certain registers are saved. The others are explicitly marked “N/A” to indicate that no useful register contents are available.
MULTI for THREADX contains enhanced views of memory block pools and byte pools intended specifically to help developers find problems with dynamic memory allocation. A single click from a memory pool window brings up a view of all memory blocks or fragments together with their location in memory, their current state – either in use or available – and, for byte pool fragments, their size. Observing dynamic memory allocation and fragmentation has never been more straightforward, and detecting the reasons for byte pool fragmentation has never been easier.
Advanced Stack Checking
Stack overflow is another common problem that MULTI helps diagnose. MULTI’s enhanced stack checking and monitoring features provide unprecedented ease of use.
In all thread views, a stack use indicator shows how much stack is currently in use by that thread. This information identifies threads that are using more stack space than anticipated, ideally before problems occur. Then, stack sizes can be adjusted to guard against overflow.
MULTI for THREADX provides optional stack checking to ensure that thread stack sizes are appropriate. A slight modification to a user’s project enables maximum stack use checking. Users can check stack use for a single thread or for all threads. In either case, a window displays the peak stack usage as determined by the highest point in the stack that was changed since the thread was created. Furthermore, because this maximum stack use checking occurs on the target itself, there is no need to upload large parts of target memory simply to check maximum stack usage.