#rtos #cortex-m #no-std

no-std systemview-target

RTOS tracing trait implementation for SEGGER SystemView

3 releases

0.1.2 Aug 20, 2022
0.1.1 Jul 19, 2022
0.1.0 Jul 19, 2022

#1083 in Embedded development

MIT license

270KB
3.5K SLoC

C 3K SLoC // 0.5% comments Rust 515 SLoC // 0.0% comments GNU Style Assembly 126 SLoC // 0.5% comments

systemview-target

RTOS tracing trait implementation for SEGGER SystemView.

SEGGER SystemView can be used for non-commercial project for free and is available here.

Features

  • callbacks-os: Check if RTOS supports tracing callbacks from SystemView.
  • callbacks-os-time: Check if RTOS supports timestamp callback from SystemView.
  • callbacks-app: Check if your application supports callback from SystemView.
  • log: Activates global log over RTT.
  • cortex-m: Enables Arm Cortex-M support.

Usage

If you are using an RTOS which supports rtos-trace add the following dependencies:

# Cargo.toml
[dependencies]
rtos-trace = "0.1"
systemview-target = { version = "0.1", features = ["log", "callbacks-app", "callbacks-os", "callbacks-os-time", "cortex-m"] }
log = { version = "0.4", features = ["max_level_trace", "release_max_level_warn"] }

and add to your code

// for tracing
use systemview_target::SystemView;
rtos_trace::global_trace!{SystemView}

static LOGGER: systemview_target::SystemView = systemview_target::SystemView::new();

fn main() -> ! {
    LOGGER.init();
    // for logs
    log::set_logger(&LOGGER).ok();
    log::set_max_level(log::LevelFilter::Trace);
    /*..*/
}

Dependencies

~0–2.7MB
~42K SLoC