As a streamlined and componentized device operating system offering support for x86 and ARM architectures and a successor to Compact 7, Windows Embedded Compact 2013 has been available for a couple of months and Lauterbach has extended its "Windows Embedded Awareness" for the TRACE32 debugger to include this new version.

For ARM based processors, Microsoft provides the new embedded RTOS with a completely new compiler, which generates Thumb2 code.

This (above note) change means BSP (board support package) developers have to make a considerable effort to port their code, says the firm. In an effort to address this, Lauterbach has enhanced its debugger to read the code and symbol information provided

According to Lauterbach's Barry Lock, his firm's tools support all the major families of embedded processor cores, covering products from 75 silicon companies.

"Using the 'Windows Embedded Awareness' included in TRACE32, the user is able to inspect the current processes and threads. With TRACE32, this is possible even if no software debug channel (e.g., KITL) and no shell are present in the system. Using the extended MMU support of the TRACE32 debugger, the developer has access to the complete virtual address space at any time — i.e., a developer can debug bootstrap, kernel, drivers, and applications simultaneously," he said.

Developers can also debug several processes at once, which may be especially interesting for testing interprocess communications. If the system is based on a CPU with tracing capability (e.g., Cortex-A with ETM), then TRACE32 records the complete program flow without instrumenting the code. Using those records, thread switches can be examined and graphically displayed.

Code coverage information can be obtained down to individual lines of code and also thread runtimes and function runtimes can be analyzed to provide performance details.

Statistics tables provide accurate information about the system load. The debugger also supports Symmetric Multi Processing (SMP), which distributes an application onto several similar processors or cores. The developer can concentrate on the debugging of his application, independent of which core is currently running the thread.

The debugger can switch to any CPU at any time, showing the view of code running on each CPU. It evaluates the call stacks of all active and passive threads and shows where an active thread is currently running or where a passive thread is waiting. By using the support for Windows Embedded Compact 2013, the developer will gain access to the complete system and all OS resources.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!