[−][src]Crate probe_rs
Debugging toolset for embedded devices
Prerequisites
- Udev rules
- libusb
Examples
Halting the attached chip
use probe_rs::Probe; // Get a list of all available debug probes. let probes = Probe::list_all(); // Use the first probe found. let probe = probes[0].open()?; // Attach to a chip. let session = probe.attach("nrf52")?; // Select a core. let core = session.attach_to_core(0)?; // Halt the attached core. core.halt()?;
Reading from RAM
use probe_rs::Core; let core = Core::auto_attach("nrf52")?; // Read a block of 50 32 bit words. let mut buff = [0u32;50]; core.read_32(0x2000_0000, &mut buff)?; // Read a single 32 bit word. let word = core.read_word_32(0x2000_0000)?; // Writing is just as simple. let buff = [0u32;50]; core.write_32(0x2000_0000, &buff)?; // of course we can also write 8bit words. let buff = [0u8;50]; core.write_8(0x2000_0000, &buff)?;
probe-rs is built around 5 main interfaces: the Probe, Target, Session, Memory and Core strucs.
Modules
architecture | |
config | |
debug | Debugging support for probe-rs |
flashing | Flash programming operations. |
Macros
define_ap | |
define_ap_register | |
define_dp_register |
Structs
Breakpoint | |
BreakpointId | |
Core | |
CoreList | |
CoreRegisterAddress | |
DebugProbeInfo | |
Memory | |
MemoryList | |
Probe | The Probe struct is a generic wrapper over the different probes supported. |
Session | |
Target | This describes a complete target with a fixed chip model and variant. |
Enums
CoreType | |
DebugProbeError | |
Error | |
WireProtocol |
Traits
CommunicationInterface | |
CoreInterface | |
DebugProbe | |
MemoryInterface |