Intel® System Studio 2014 – JTAG Debugger Supports More Processor Families

Introduction

Intel® System Studio JTAG debugger has so far only supported Intel® Atom CPUs. The next version, Intel® System Studio 2014, introduces JTAG debugging for systems based on processors with the new Silvermont and Haswell microarchitectures. This document describes the basic requirements for JTAG debugging and some of the features offered for these new processors.

Overview

Intel® System Studio 2014 is planned to be released in the first quarter of 2014. One of the many new features is the increased processor support of JTAG debugging. Adding to the so far supported Intel® Atom CPUs (N2xxx, D2xxx, Z5xx, E6xx, CE42xx, and CE 53xx), the new Intel® System Studio 2014 enables developers to also debug Silvermont microarchitecture based processors (e.g. Avoton, Bay Trail, Rangeley ) and 4th Generation Intel® Core™ products (Haswell). Please consult ark.intel.com for up-to-date information on the processors offered under these code names:

http://ark.intel.com/products/codename/54859/Avoton
http://ark.intel.com/products/codename/55844/Bay-Trail
http://ark.intel.com/products/codename/60191/Rangeley
http://ark.intel.com/products/codename/42174/Haswell

Requirements

JTAG debugging requires a target – host environment. Intel® System Studio must be installed on the host system. To connect the host to a Silvermont or Haswell target an Intel® debug probe ITP-XDP3 must be used as other models are currently not supported for these platforms (please consult the release notes for details on processor support against probe types). The following photo shows what is delivered when you order an ITP-XDP3.If you cannot use the US power cable you will need to get a standard IEC-60320 C13 cable as usually used with desktop PCs:

ITP-XDP3 contents

Each target platform must be enabled to support JTAG debugging, esp. there must be an XDP connector on the PCB such as on this board:

XDP Connector Onboard

Consult your system vendor's documentation for details about the XDP connector and enabling of JTAG debugging.

On the host computer both Linux and Windows operating systems are supported. Detailed and up-to-date software and hardware requirements for the host and target environments are described in the Intel® System Studio 2014 release notes (links are in the reference section below) and the Intel® JTAG Debugger User and Reference Guide installed with Intel® System Studio.

Features

 

Full Intel Silicon & Chipset support

An in-depth view into Intel® processors supporting silicon specific features, including - architectural registers - Intel® Streaming SIMD Extensions - as well as graphics chipset registers for Atom™ Processor chipsets You will find the graphical representation of peripheral registers, corresponding bit fields and their online documentation from within the debugger GUI very helpful when examining or altering a system configuration.

Modify Registers

Execution Trace Support

View execution history and gain a deep understanding of the system wide executed code flow. Find errors by analysing the execution path and identifying the root cause of exceptions.

Updated Source Files Window

The Source Files Window shows, within a tree structure, all source files loaded for the target. At top level the libraries, below that the folders and as leaf nodes the source files itself are displayed. Use the search field to filter the displayed files. Double click on a source file in this tree to open the file in a Source Window.

Source Window

Linux* OS Awareness / Kernel Module Debugging

Debugging a Linux* system is much easier with the Intel® JTAG debugger. It shows all currently active kernel threads and a list of all currently loaded kernel modules with status information and the memory location of the initialization and clean-up methods. To debug a kernel module set breakpoints on module load, initialization or clean-up/exit. On reaching a breakpoint the module source code is displayed - now single step through your code. Unloaded kernel modules are debugged by entering the modules name and then defining breakpoints just as with modules already loaded into the OS.

Power Events Handling

If a target is reset or powered-off the debugger retains the setup and once power is restored the debugger will attempt to halt the target at the reset vector.

JTAG Debugger after start

Address Translation

It is very easy to translate any address between the physical and virtual address spaces. Use this to identify what physical memory areas your code is actually accessing or running from.

Address Translation

Scripting Language

A rich set of powerful debugging commands are available for debugging in a non-interactive mode. Results can be logged and analysed on completion. This feature is ideally suited for regression testing. Here is a simple example I used after resetting the target to get over the initial start-up code and load symbols for the EFI firmware I was debugging:

! creation date: Wed Nov 06 14:56:30 2013 STEP /ASSEMBLER 38 efi "loadthis 0x00000000FFFFB5D8" run until @line 1409

Debugging UEFI Firmware

The Intel JTAG Debugger not only allows source code debugging of your UEFI firmware / BIOS, it also has some nice features to help you find your modules! One of the difficulties is locating the modules and assigning the correct source code to the assembly code. Once you have stepped into your code type this command into the debugger console:

efi "loadthis"
. This tells the debugger to look for a module header starting at the current IP. Once the header is found the debugger will load the source code for that module and display your source! This function is especially nice to have once the BIOS has moved itself to RAM and all the addresses are wrong again - a simple
efi "loadthis"
will find the module header once again and you are back into your source code! Here is a screen shot of what you see after the header has been found. You can see the command in the console window and that the debugger has loaded the C-source code.

UEFI Debugging

Flash Programming

Selected Intel® Atom processor types allow flash memory programming through the JTAG debugger probe. Please consult the release notes for details on supported processors and Flash devices.

Outlook

In future Intel® System Studio will support new microarchitectures and CPU products as they are launched into the market. With the 2014 release Intel® System Studio continues to be the excellent choice for embedded application and system software developers on Intel® based platforms.

References

Webinar -"Intel® System Studio: Embedded application development and debugging tools"
    http://software.intel.com/en-us/articles/webinar-intel-system-studio-embedded-application-development-and-debugging-tools
System Software Debug with JTAG and Event Trace
    http://software.intel.com/en-us/articles/intel-system-studio-jtag-sven-sdk
How to Find and Fix System Software Issues Fast - Intel® System Studio's Intel® JTAG Debugger
    http://software.intel.com/en-us/find-and-fix-system-software-issues-with-intel-JTAG-debugger
Intel® System Studio 2014 release notes
    http://software.intel.com/en-us/articles/intel-system-studio-beta-release-notes
Intel® System Studio main page
    http://software.intel.com/en-us/intel-system-studio

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.