Module kernel::debug [] [src]

Support for in-kernel debugging.

For printing, this module uses an internal buffer to write the strings into. If you are writing and the buffer fills up, you can make the size of output_buffer larger.

Before debug interfaces can be used, the board file must assign them hardware:

kernel::debug::assign_gpios(
    Some(&sam4l::gpio::PA[13]),
    Some(&sam4l::gpio::PA[15]),
    None,
    );

let kc = static_init!(
    capsules::console::App,
    capsules::console::App::default());
kernel::debug::assign_console_driver(Some(hail.console), kc);

Example

debug!("Yes the code gets here with value {}", i);
debug_verbose!("got here"); // includes message count, file, and line
debug_gpio!(0, toggle); // Toggles the first debug GPIO
Yes the code gets here with value 42
TOCK_DEBUG(0): /tock/capsules/src/sensys.rs:24: got here

Reexports

use callback::AppId;
use callback::Callback;
use core::slice;
use core::str;
use core::cmp::min;
use core::fmt::write;
use core::fmt::Arguments;
use core::fmt::Result;
use core::fmt::Write;
use core::ptr::read_volatile;
use core::ptr::write_volatile;
use driver::Driver;
use hil;
use mem::AppSlice;
use process;
use returncode::ReturnCode;

Structs

DebugWriter

Constants

APPID_IDX
BUF_SIZE

Statics

DEBUG_GPIOS
DEBUG_WRITER
KERNEL_CONSOLE_CALLBACK

Traits

Debug

Functions

assign_console_driver
assign_gpios
begin_debug_fmt
begin_debug_verbose_fmt
flush
get_grant
panic

Tock default panic routine.

panic_banner

Lightweight prints about the current panic and kernel version.

panic_begin

Generic panic entry.

panic_blink_forever

Blinks a recognizable pattern forever.

panic_process_info

More detailed prints about all processes.