Embedded Systems · Cluster
Embedded Tooling
Cross toolchains, debug probes, and tracing.
- 01 Anatomy of a Cross Toolchain: Triples, Sysroots, and Multilibs How a compiler built for one machine produces code for another, what the target triple actually selects, and which ABI mismatches fail at link time versus silently at run time.
- 02 Linker Scripts: Why Sections Have Two Addresses How a linker script assigns load and virtual addresses, why initialised data needs a copy step at startup, and what happens to sections the script does not mention.
- 03 Reading an ELF Image: Sections, Symbols, and DWARF How a debugger maps a source line to a flash address, what the symbol table contributes that DWARF does not, and why a stripped image still debugs correctly.
- 04 Intel HEX, Motorola SREC, and What a Programmer Actually Consumes The record structure of the two textual image formats, how each encodes load addresses and detects corruption, and why a raw binary loses the information a programmer needs.
- 05 How a Probe Reads Memory Without the CPU: Debug Ports and Access Ports The transaction sequence a debug probe uses over SWD or JTAG to halt a core and touch memory, and why some reads return stale data even though the transfer succeeded.
- 06 Hardware Breakpoints, Watchpoints, and the Comparators Behind Them Why a target supports only a handful of breakpoints, how an address comparator matches an instruction fetch, and what a data watchpoint does to the pipeline when it fires.
- 07 Stack Unwinding on a Target With No Frame Pointer How a debugger reconstructs call frames from compiler-generated unwind tables, and why an interrupt frame on a bare-metal target breaks the unwinder entirely.
- 08 In-Circuit Programming: Why the Flash Algorithm Runs From RAM How a probe erases and writes flash through the target core, why the routine cannot execute from the memory it is modifying, and what sector granularity costs an update.
- 09 Instruction Trace: Funnels, Packet Formats, and Reconstructing Execution How an on-chip trace unit compresses executed addresses into packets, why the trace is not a log of instructions, and what a decoder must infer from partial data.
- 10 Secure Debug Lifecycle: Authentication, Locked Ports, and Recovery How a debug port is gated by device life-cycle state and certificates, what an open port exposes once keys are readable, and why the lock is one-way once the device ships.