diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 991fdd57..62f76fb8 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -246,8 +246,9 @@ - [Board support crates](bare-metal/microcontrollers/board-support.md) - [The type state pattern](bare-metal/microcontrollers/type-state.md) - [embedded-hal](bare-metal/microcontrollers/embedded-hal.md) + - [probe-rs, cargo-embed](bare-metal/microcontrollers/probe-rs.md) + - [Debugging](bare-metal/microcontrollers/debugging.md) - [Other projects](bare-metal/microcontrollers/other-projects.md) - - [cargo-embed, probe-rs]() - [Exercises](exercises/bare-metal/morning.md) - [Compass](exercises/bare-metal/compass.md) diff --git a/src/bare-metal/microcontrollers/probe-rs.md b/src/bare-metal/microcontrollers/probe-rs.md new file mode 100644 index 00000000..5559e982 --- /dev/null +++ b/src/bare-metal/microcontrollers/probe-rs.md @@ -0,0 +1,29 @@ +# probe-rs, `cargo-embed` + +[probe-rs](https://probe.rs/) is a handy toolset for embedded debugging, like OpenOCD but better +integrated. + +* SWD and JTAG via CMSIS-DAP, ST-Link and J-Link probes +* GDB stub and Microsoft DAP server +* Cargo integration + +`cargo-embed` is a cargo subcommand to build and flash binaries, log +RTT output and connect GDB. It's configured by an +`Embed.toml` file in your project directory. + +
+ +* [CMSIS-DAP](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) is an Arm standard + protocol over USB for an in-circuit debugger to access the CoreSight Debug Access Port of various + Arm Cortex processors. It's what the on-board debugger on the BBC micro:bit uses. +* ST-Link is a range of in-circuit debuggers from ST Microelectronics, J-Link is a range from + SEGGER. +* The Debug Access Port is usually either a 5-pin JTAG interface or 2-pin Serial Wire Debug. +* probe-rs is a library which you can integrate into your own tools if you want to. +* The [Microsoft Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) lets + VSCode and other IDEs debug code running on any supported microcontroller. +* cargo-embed is a binary built using the probe-rs library. +* RTT (Real Time Transfers) is a mechanism to transfer data between the debug host and the target + through a number of ringbuffers. + +