▸ JTAG (IEEE 1149.1) signal lines: TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock, max 50 MHz for Aurix), TMS (Test Mode Select state machine controller), TRST (optional async reset); TAP (Test Access Port) state machine: 16 states driven by TMS - Reset → Run-Test/Idle → DR-Scan (capture/shift/update data registers) → IR-Scan (select instruction register); daisy-chain multiple ECUs on same JTAG bus using multi-ICE or Lauterbach PowerDebug with JTAG chain configuration
▸ SWD (Serial Wire Debug, ARM CoreSight): 2-wire interface replacing JTAG for ARM Cortex - SWDIO (bidirectional data) + SWCLK (clock); faster pin-count reduction (2 vs 4 pins); SWD packet format: 8-bit header (start bit, AP/DP access, R/W, A[2:3] address, parity, stop, park) + 32-bit data + 3-bit parity; SWDP (SWD port) connects to AHB-AP (Access Port) → accesses system memory-mapped resources and core debug registers (DCB, DWT, ITM)
▸ Debug Probe hardware types: Lauterbach TRACE32 PowerDebug (universal, supports JTAG/SWD/Nexus/MIPI, hardware trace capture, scripting API); iSYSTEM winIDEA (supports TC3xx MCDS, Nexus Class 4, up to 128 MB trace buffer); Segger J-Link (SWD/JTAG, ARM-only, RTT for non-halt logging, fast flash programming); PEEDI (multi-target, open JTAG protocol); probe connects via USB3 or GigE to host PC and via JTAG/SWD to ECU debug connector (typically 20-pin ARM Cortex or Infineon TC3xx JTAG-7 pin header on PCB)
▸ CoreSight components in ARM-based ECUs: ETM (Embedded Trace Macrocell) - instruction trace source; ITM (Instrumentation Trace Macrocell) - printf-style software trace via SWDIO; DWT (Data Watchpoint and Trace) - hardware data access watchpoints, PC sampling, cycle counter (DWT_CYCCNT register); TPIU (Trace Port Interface Unit) - serializes trace data to SWO pin (single-wire output, 1–80 Mbps) or full parallel trace port (4-bit TRACEDATA at up to 400 MHz); all components accessible via memory-mapped registers in CoreSight ROM table at 0xE00FF000