A debug port is a chip-level diagnostic interface (akin to a
computer port) included in an
integrated circuit to aid
design
A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design' ...
,
fabrication,
development
Development or developing may refer to:
Arts
*Development hell, when a project is stuck in development
*Filmmaking, development phase, including finance and budgeting
*Development (music), the process thematic material is reshaped
* Photograph ...
,
bootstrapping
In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input.
Etymology
Tall boots may have a tab, loop or handle at the top known as a bootstrap, allowing one to use fingers ...
,
configuration,
debugging, and
post-sale in-system programming
In-system programming (ISP), or also called in-circuit serial programming (ICSP), is the ability of some programmable logic devices, microcontrollers, and other embedded devices to be programmed while installed in a complete system, rather tha ...
. In general terms, a debug port is not necessary for end-use function and is often hidden or disabled in finished products.
When constituted in a
high availability
High availability (HA) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.
Modernization has resulted in an increased reliance on these systems. F ...
or
safety critical system, a debug port may continue to operate as a
system monitor
A system monitor is a hardware or software component used to monitor system resources and performance in a computer system.
Among the management issues regarding use of system monitoring tools are resource usage and privacy.
Overview
Software ...
for integrity validation in the finished product. In low-cost or high-volume electronics, debug ports are sometimes left enabled to avoid costs of design changes, and can be used by
modder
''Modding'' is a slang expression derived from the English verb " to modify". The term refers to modification of hardware, software, or anything else, to perform a function not originally intended by the designer, or to achieve bespoke specifi ...
s and hackers to gain control of the device and/or access to extra functionality.
Due to their high complexity, debug ports are nearly universal in
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circ ...
s (CPUs) and
microcontrollers (MCUs). These are discussed below.
Hardware debug ports
* Ubiquitous
JTAG ports on
ICs
*
Low Pin Count
The Low Pin Count (LPC) bus is a computer bus used on IBM-compatible personal computers to connect low-bandwidth devices to the CPU, such as the BIOS ROM (BIOS ROM was moved to the Serial Peripheral Interface (SPI) bus in 2006), "legacy" I/O d ...
debug port on the original
Xbox
Xbox is a video gaming brand created and owned by Microsoft. The brand consists of five video game consoles, as well as applications (games), streaming services, an online service by the name of Xbox network, and the development arm by the ...
, used by modders
*
Serial Wire Debug (SWD), ubiquitous on Arm
Cortex-M
The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Thou ...
microcontrollers
*
Background Debug Mode interface
Background debug mode (BDM) interface is an electronic interface that allows debugging of embedded systems. Specifically, it provides in-circuit debugging functionality in microcontrollers. It requires a single wire and specialized electronics ...
(BDM)
*
Program and Debug Interface
AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families t ...
*
Nexus debug
Nexus or IEEE-ISTO 5001-2003 is a standard debugging interface for embedded systems.
Features
The IEEE-ISTO 5001-2003 (Nexus) feature set is modeled on today's on-chip debug implementations, most of which are processor-specific. Its goal is to ...
Debug ports on microprocessors
Microprocessors are exceptionally complex devices which commonly contain more than a billion transistors internally and sometimes exceed more than one trillion.
Debug ports on microcontrollers
Microcontrollers are generally smaller than mainstream CPUs, but have now evolved so far into
system on a chip (SoC) territory, that an MCU can be nearly the only complex chip remaining on an end-use application board (with additional chips devoted to specialized electrical functions such as
level shifting and enhanced
ESD protection).
SoC MCUs usually internal
flash memory as a program store and may also contain internal
EEPROM-based configuration fuses whose correct configuration is essential to the MCU powering up in the correct operating mode; the debug port may be the ''only'' way to initially configure the
clock tree
In electronics and especially synchronous digital circuits, a clock signal (historically also known as ''logic beat'') oscillates between a high and a low state and is used like a metronome to coordinate actions of digital circuits.
A clock sign ...
or to load the first software program post-manufacture.
USB Device Firmware Upgrade
Since around 2010, a broad class of MCUs now have integrated
USB
Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
peripherals with device firmware upgrade (DFU) in factory ROM.
This class of MCUs appeals to hobbyists who do not wish to invest in the hardware tools needed to access specialized debug ports such as
JTAG.
These devices are designed to be resistant to being
bricked
A brick (or bricked device) is a mobile device, game console, router or other consumer electronic device that is no longer functional due to corrupted firmware, a hardware problem, or other damage. The term analogizes the device to a brick's ...
. A bad firmware load is easily recovered by holding a special pin in the active state, which caused the chip to boot up using its internal factory
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* ...
, which makes a programming interface available through its build-in USB controller. DFU can be viewed as a form of debug port implemented in software rather than hardware. However, this largely defeats the debug functionality of a dedicated hardware debug port, as it is inherently fragile to debug software which also implements your debug interface—but only when functioning correctly.
See also
*
electronic design automation
*
in-target probe In-target probe, or ITP is a device used in computer hardware and microprocessor design, to control a target microprocessor or similar ASIC at the register level. It generally allows full control of the target device and allows the computer enginee ...
*
in-circuit emulation
In-circuit emulation (ICE) is the use of a hardware device or in-circuit emulator used to debug the software of an embedded system. It operates by using a processor with the additional ability to support debugging operations, as well as to car ...
*
in-system programming
In-system programming (ISP), or also called in-circuit serial programming (ICSP), is the ability of some programmable logic devices, microcontrollers, and other embedded devices to be programmed while installed in a complete system, rather tha ...
*
board support package
In embedded systems, a board support package (BSP) is the layer of software containing hardware-specific boot firmware and device drivers and other routines that allow a given embedded operating system, for example a real-time operating system ( ...
*
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circ ...
*
microcontroller
*
system on a chip
References
{{reflist
Hardware testing