embedded-trace
A Future tracing utility for embedded systems.
This crate aims to provide tools to measure the execution time and debug
async tasks and Futures for #![no_std] projects.

How to use this library
Two main traits are defined: TraceFuture and Instrument.
TraceFuture
TraceFuture extends the standard library's Future trait by adding
the trace_task, trace_poll and trace_task_and_poll methods.
These methods each take one or more types implementing Instrument. The
three provided methods call on_enter and on_exit when entering the
specified spans, respectively. Consult the TraceFuture trait
documentation for more information.
Instrument
Instrument represents the mechanism by which TraceFuture's methods will signal when a span is entered or exited. You can implement this trait on your own types. Some implementation for commonly used types are also provided in the instruments module.
For instance, a simple mechanism may be to set a GPIO pin HIGH when entering the span, and setting it LOW when exiting. This instrumentation is provided in the instruments::gpio module.
Supported GPIO implementations:
- Types implementing
embedded-halversion 1.0OutputPin - Types implementing
embedded-halversion 0.2OutputPin(by enabling theembedded-hal_0_2Cargo feature)
Example use with GPIO instrumentation
use Future;
// `TraceFuture` must be in scope in order to use its methods.
use ;
use OutputPin;
async