JTAG

JTAG is a standard way to reach into a chip through a small set of dedicated pins, in order to test it, debug software running on it, and program its memory. The name comes from the Joint Test Action Group, the industry committee that defined the interface, which was formally standardized as IEEE 1149.1, “IEEE Standard for Test Access Port and Boundary-Scan Architecture.” It first arrived in 1990 to solve a manufacturing problem and later became a cornerstone of embedded development.

The original purpose was board testing. As circuit boards grew dense with surface-mounted chips, it became hard to physically probe connections to check for manufacturing faults such as shorts and broken solder joints. The IEEE 1149.1 standard defines a boundary-scan register: a chain of cells placed between each chip pin and the internal logic, so that a tester can drive and observe every pin through software. The interface itself is the Test Access Port, or TAP, which uses signals including Test Data In, Test Data Out, Test Clock, and Test Mode Select to shift instructions and data in and out.

That same access proved invaluable for software, too. Because JTAG can read and write a processor’s registers and memory and can halt and single-step the core, it became the standard means of on-chip debugging and of flashing firmware into a chip during development. A developer connects a JTAG adapter between a host computer and the target board, and tools on the host use it to load programs and control execution.

A widely used companion to JTAG is SWD, Serial Wire Debug, an ARM protocol that does the same debugging job over just two wires instead of JTAG’s larger pin count. According to the OpenOCD documentation, SWD supports only debugging, whereas JTAG also supports boundary-scan operations, which is why both interfaces remain common: SWD saves pins on small chips, while JTAG keeps its full test capabilities.

JTAG matters because it gives a stable, vendor-spanning window into hardware. Decades after its introduction it remains the foundation that debuggers, programmers, and test equipment rely on to talk to chips at the pin level, and it underpins the everyday tools embedded developers use to get code onto and debugged on real silicon.