Crate itm[][src]

A library and tool (itmdump) to parse and dump ARM ITM packets.

Usage

itmdump  (de13e34 2017-12-19)

Reads data from an ARM CPU ITM and decodes it.

Input is from an existing file (or named pipe) at a supplied path, or else from standard input.

USAGE:
    itmdump [FLAGS] [OPTIONS]

FLAGS:
    -F, --follow     Keep the file open after reading through it and append new output as it is written. Like `tail -f'.
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -f, --file <file>        Path to file (or named pipe) to read from
    -s, --stimulus <port>    Stimulus port to extract ITM data for. [default: 0]

Example: reading from saved ITM data in a file

$ itmdump -f /tmp/itm.dump
PANIC at 'Hello, world!', examples/panic.rs:13

Example: reading from OpenOCD via a named pipe

OpenOCD is an open-source tool to debug and flash microcontrollers.

Reading via a named pipe works well on POSIX machines; e.g. Linux or macOS, but not Windows.

$ mkfifo /tmp/itm.fifo
$ itmdump -f /tmp/itm.fifo

This will create a named pipe: /tmp/itm.fifo. Another application, e.g. OpenOCD, will have to connect to this pipe and write to it. Here's an example command for OpenOCD + GDB that does that. (OpenOCD documentation on ITM and TPIU).

(gdb) monitor tpiu config internal /tmp/itm.fifo uart off 8000000

itmdump will read from the pipe, parse the packets and write the payload to stdout:

PANIC at 'Hello, world!', examples/panic.rs:13

Example: monitoring a file

itmdump can monitor a file and dump new ITM data written to it (similar to tail -f).

This may be useful on Windows especially where POSIX named pipes are not available. Just let OpenOCD capture to a file and monitor it with itmdump.

$ itmdump -f /tmp/itm.live -F
PANIC at 'Hello, world!', examples/panic.rs:13

References

  • ARMv7-M Architecture Reference Manual - Appendix D4.2 Packet descriptions

Available to download as a PDF after a free registration.

Re-exports

pub use decoder::Decoder;

Modules

decoder

Parse ITM packets from bytes and streams.

packet

Defines ITM packets and their possible contents.

Enums

Error

Error type