Nexus or IEEE-ISTO 5001-2003 is a standard
debugging
In computer programming and software development, debugging is the process of finding and resolving ''bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
interface for
embedded system
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
s.
Features
The
IEEE-ISTO
The IEEE Industry Standards and Technology Organization (ISTO) is a 501(c)(6) not-for-profit federation of industry alliances, consortia, and trade groups. Formed in 1999, ISTO has an affiliation with the Institute of Electrical and Electronics En ...
5001-2003 (Nexus) feature set is modeled on today's on-chip debug implementations, most of which are processor-specific. Its goal is to create a rich debug feature set while minimizing the required pin-count and die area, and being both processor- and architecture independent. It also supports multi-core and multi-processor designs. Accordingly, it is comparable to the
ARM CoreSight debug architecture.
Physically, IEEE-ISTO 5001-2003 defines a standard set of connectors for connecting the debug tool to the target or
system under test. Logically, data is transferred using a packet-based protocol. This protocol can be
JTAG
JTAG (named after the Joint Test Action Group which codified it) is an industry standard for verifying designs and testing printed circuit boards after manufacture.
JTAG implements standards for on-chip instrumentation in electronic design autom ...
(IEEE 1149.1); or, for high-speed systems, an auxiliary port can be used that supports full duplex, higher bandwidth transfers.
Key Nexus functionality involves either JTAG-style request/response interactions, or packets transferred through the
debug port
A debug port is a chip-level diagnostic interface (akin to a computer port) included in an integrated circuit to aid design, fabrication, development, bootstrapping, configuration, debugging, and post-sale in-system programming. In general ter ...
, and includes:
* Run-time control ... With all implementations, debug tools can start and stop the processor, modify registers, and single-step machine instructions.
* Memory access ... Nexus supports memory access while the processor is running. Such access is required when debugging systems where it is not possible to halt the system under test. Examples include Engine Control, where stopping digital feedback loops can create physically dangerous situations.
* Breakpoints ... Programs halt when a specified event, a
breakpoint
In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause.
More generally, a breakpoint is a means of acquiring knowl ...
, has occurred. The event can be specified as a code execution address, or as a data access (read or write) to an address with a specified value. Nexus breakpoints can be set at any address, including flash or ROM memory; CPUs may also provide special breakpoint instructions.
* Several kinds of event
tracing are defined, mostly depending on a high speed auxiliary port to offload the voluminous data without negatively impacting program execution:
** Program trace ... Branch tracing compresses program execution data, by emitting messages at branch or exception instructions only. Trace analysis reconstructs the program flow using a local image of code memory contents.
** Data trace ... Accesses to memory locations may be tracked, as limited by range (start and stop address) and access type (read or write).
** Ownership trace ... An
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
(OS, possibly an
RTOS
A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
) may write a task identifier to a Nexus register when switching tasks, forcing an ownership trace message to be emitted.
* Memory substitution and port replacement ... This feature allows memory or port accesses to be emulated over the auxiliary Nexus port.
* Data acquisition ...
Rapid prototyping
Rapid prototyping is a group of techniques used to quickly fabricate a scale model of a physical part or assembly using three-dimensional computer aided design ( CAD) data.
Construction of the part or assembly is usually done using 3D print ...
may require rapid transfer of large amounts of data via the auxiliary port to the debug tools. It uses a more efficient protocol than that used in data trace. It also helps calibration in automotive applications.
A low-level
application programming interface (API) is also allowed for, to mask target specifics such as the host connection mechanism (such as an
emulator
In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use peri ...
or Calibration-instrument{{Clarify, date=March 2010) and processor specific Nexus register details. This API is produced jointly by the tool and semiconductor vendor.
Compliance classes
IEEE-ISTO 5001-2003 is a scalable standard; there are currently four classes of compliance to the standard, ranging from the basic (JTAG only) Class 1 up to Class 4.
* Class 1 supports run-time control (run, stop, memory upload/download when the processor is halted, breakpoints, read or set registers) using the JTAG interface. Communications are half duplex only and bandwidth is limited. Trace is not supported.
* Class 2 adds ownership trace and program trace and allows the auxiliary debugging port to be shared with "slow" I/O port pins. Ownership trace allows current task or current process trace for systems based on real-time kernels or operating-systems.
* Class 3 adds data write trace and memory read/write on-the-fly without halting execution. Data read/write tracing, sharing of the auxiliary port with high speed I/O ports such as the address/data bus, and support for data acquisition (visibility of related data parameters stored in internal resources, typically related calibration variables) may also be optionally part of Class 3 compliance.
* Class 4 adds memory substitution (fetching or reading data over the Nexus auxiliary port) and allows tracing to be triggered by a watchpoint. Triggering memory substitution on a watchpoint is an optional feature of Class 4 compliance.
See also
*
BDM
*
JTAG
JTAG (named after the Joint Test Action Group which codified it) is an industry standard for verifying designs and testing printed circuit boards after manufacture.
JTAG implements standards for on-chip instrumentation in electronic design autom ...
Further reading
* IEEE-ISTO 5001™-199
The Nexus 5001 Forum™ Standard - providing the Gateway to the Embedded Systems of the Future* IEEE-ISTO 5001-2003
The Nexus 5001 Forum Standard for a Global Embedded Processor Debug Interface
External links
NEXUS 5001 ForumNexus 5001 Forum Global Embedded Processor Debug Interface Standard by William Wong
Multi-core analysis made easy with the Nexus 5001 debug spec by Dr. Neal Stollon
The NEXUS Debug Standard: Gateway to the Embedded Systems of the Future by Ashling Microsystems, Inc.
Debugging
IEEE standards