diff --git a/beginner/apps/src/bin/radio-puzzle-3.rs b/beginner/apps/src/bin/radio-puzzle-3.rs index 845f0e9..ef9336f 100644 --- a/beginner/apps/src/bin/radio-puzzle-3.rs +++ b/beginner/apps/src/bin/radio-puzzle-3.rs @@ -5,7 +5,8 @@ use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, LinearMap}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -36,16 +37,18 @@ fn main() -> ! { // TODO insert the key-value pair // dict.insert(/* ? */, /* ? */).expect("dictionary full"); } else { - log::error!("response packet was not a single byte"); + defmt::error!("response packet was not a single byte"); dk::exit() } } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } } - log::info!("{:?}", dict); + defmt::info!("{:?}", defmt::Debug2Format(&dict)); + // ^^^^^^^^^^^^^^^^^^^ this adapter iscurrently needed to log `heapless` + // data structures (like `LinearMap` here) with `defmt` dk::exit() } diff --git a/beginner/apps/src/bin/radio-puzzle-4.rs b/beginner/apps/src/bin/radio-puzzle-4.rs index 585b481..afce214 100644 --- a/beginner/apps/src/bin/radio-puzzle-4.rs +++ b/beginner/apps/src/bin/radio-puzzle-4.rs @@ -6,7 +6,8 @@ use core::str; use cortex_m_rt::entry; use heapless::{consts, Vec}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; #[entry] fn main() -> ! { @@ -21,10 +22,13 @@ fn main() -> ! { buffer.push(b'i').expect("buffer full"); // look into the contents so far - log::info!("{:?}", buffer); + defmt::info!("{:?}", defmt::Debug2Format(&buffer)); + // ^^^^^^^^^^^^^^^^^^^ this adapter iscurrently needed to log `heapless` + // data structures (like `Vec` here) with `defmt` + // or more readable - // NOTE as long as you only push bytes in the ASCII range (0..=127) the conversion should work - log::info!( + // NOTE utf-8 conversion works as long as you only push bytes in the ASCII range (0..=127) + defmt::info!( "{}", str::from_utf8(&buffer).expect("content was not UTF-8") ); diff --git a/beginner/apps/src/bin/radio-puzzle-5.rs b/beginner/apps/src/bin/radio-puzzle-5.rs index 50dc9da..80be341 100644 --- a/beginner/apps/src/bin/radio-puzzle-5.rs +++ b/beginner/apps/src/bin/radio-puzzle-5.rs @@ -7,7 +7,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, Vec}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -27,11 +28,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "ciphertext: {}", str::from_utf8(&packet).expect("packet was not valid UTF-8") ); @@ -47,7 +48,7 @@ fn main() -> ! { buf.push(output).expect("buffer full"); } - log::info!( + defmt::info!( "plaintext: {}", str::from_utf8(&buf).expect("buffer contains non-UTF-8 data") ); diff --git a/beginner/apps/src/bin/radio-puzzle-6.rs b/beginner/apps/src/bin/radio-puzzle-6.rs index 4d9ca39..9ff925b 100644 --- a/beginner/apps/src/bin/radio-puzzle-6.rs +++ b/beginner/apps/src/bin/radio-puzzle-6.rs @@ -7,7 +7,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, LinearMap, Vec}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -37,11 +38,11 @@ fn main() -> ! { // TODO insert the key-value pair // dict.insert(/* ? */, /* ? */).expect("dictionary full"); } else { - log::error!("response packet was not a single byte"); + defmt::error!("response packet was not a single byte"); dk::exit() } } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } } @@ -51,11 +52,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "ciphertext: {}", str::from_utf8(&packet).expect("packet was not valid UTF-8") ); @@ -71,7 +72,7 @@ fn main() -> ! { buffer.push(value).expect("buffer full"); } - log::info!( + defmt::info!( "plaintext: {}", str::from_utf8(&buffer).expect("buffer contains non-UTF-8 data") ); diff --git a/beginner/apps/src/bin/radio-puzzle-7.rs b/beginner/apps/src/bin/radio-puzzle-7.rs index 933f0d9..be25024 100644 --- a/beginner/apps/src/bin/radio-puzzle-7.rs +++ b/beginner/apps/src/bin/radio-puzzle-7.rs @@ -7,7 +7,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, LinearMap, Vec}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -37,11 +38,11 @@ fn main() -> ! { // TODO insert the key-value pair // dict.insert(/* ? */, /* ? */).expect("dictionary full"); } else { - log::error!("response packet was not a single byte"); + defmt::error!("response packet was not a single byte"); dk::exit() } } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } } @@ -51,11 +52,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "ciphertext: {}", str::from_utf8(&packet).expect("packet was not valid UTF-8") ); @@ -71,7 +72,7 @@ fn main() -> ! { buffer.push(value).expect("buffer full"); } - log::info!( + defmt::info!( "plaintext: {}", str::from_utf8(&buffer).expect("buffer contains non-UTF-8 data") ); @@ -82,11 +83,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "Dongle response: {}", str::from_utf8(&packet).expect("response was not UTF-8") ); diff --git a/beginner/apps/src/bin/radio-puzzle-solution-2.rs b/beginner/apps/src/bin/radio-puzzle-solution-2.rs index 5683bc9..75205d0 100644 --- a/beginner/apps/src/bin/radio-puzzle-solution-2.rs +++ b/beginner/apps/src/bin/radio-puzzle-solution-2.rs @@ -7,7 +7,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, LinearMap}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -38,11 +39,11 @@ fn main() -> ! { dict.insert(cipherletter, plainletter) .expect("dictionary full"); } else { - log::error!("response packet was not a single byte"); + defmt::error!("response packet was not a single byte"); dk::exit() } } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } } @@ -52,11 +53,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "ciphertext: {}", str::from_utf8(&packet).expect("packet was not valid UTF-8") ); @@ -74,7 +75,7 @@ fn main() -> ! { *spot = plainletter; } - log::info!( + defmt::info!( "plaintext: {}", str::from_utf8(&packet).expect("buffer contains non-UTF-8 data") ); @@ -83,11 +84,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "Dongle response: {}", str::from_utf8(&packet).expect("response was not UTF-8") ); diff --git a/beginner/apps/src/bin/radio-puzzle-solution.rs b/beginner/apps/src/bin/radio-puzzle-solution.rs index cb12287..4988ddd 100644 --- a/beginner/apps/src/bin/radio-puzzle-solution.rs +++ b/beginner/apps/src/bin/radio-puzzle-solution.rs @@ -7,7 +7,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; use heapless::{consts, LinearMap, Vec}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -41,11 +42,11 @@ fn main() -> ! { dict.insert(cipherletter, plainletter) .expect("dictionary full"); } else { - log::error!("response packet was not a single byte"); + defmt::error!("response packet was not a single byte"); dk::exit() } } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } } @@ -55,11 +56,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "ciphertext: {}", str::from_utf8(&packet).expect("packet was not valid UTF-8") ); @@ -76,7 +77,7 @@ fn main() -> ! { buffer.push(plainletter).expect("buffer full"); } - log::info!( + defmt::info!( "plaintext: {}", str::from_utf8(&buffer).expect("buffer contains non-UTF-8 data") ); @@ -87,11 +88,11 @@ fn main() -> ! { radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_err() { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); dk::exit() } - log::info!( + defmt::info!( "Dongle response: {}", str::from_utf8(&packet).expect("response was not UTF-8") ); diff --git a/beginner/apps/src/bin/radio-puzzle.rs b/beginner/apps/src/bin/radio-puzzle.rs index 619905f..522cb99 100644 --- a/beginner/apps/src/bin/radio-puzzle.rs +++ b/beginner/apps/src/bin/radio-puzzle.rs @@ -6,7 +6,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -33,19 +34,19 @@ fn main() -> ! { // let msg = b"Hello?"; packet.copy_from_slice(msg); - log::info!( + defmt::info!( "sending: {}", str::from_utf8(msg).expect("msg was not valid UTF-8 data") ); radio.send(&mut packet); if radio.recv_timeout(&mut packet, &mut timer, TEN_MS).is_ok() { - log::info!( + defmt::info!( "received: {}", str::from_utf8(&packet).expect("response was not valid UTF-8 data") ); } else { - log::error!("no response or response packet was corrupted"); + defmt::error!("no response or response packet was corrupted"); } dk::exit() } diff --git a/beginner/apps/src/bin/radio-recv.rs b/beginner/apps/src/bin/radio-recv.rs index 732f311..d1f4fe3 100644 --- a/beginner/apps/src/bin/radio-recv.rs +++ b/beginner/apps/src/bin/radio-recv.rs @@ -6,7 +6,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Error, Packet}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; const TEN_MS: u32 = 10_000; @@ -24,7 +25,7 @@ fn main() -> ! { let msg = b"olleh"; packet.copy_from_slice(msg); - log::info!( + defmt::info!( "sending: {}", str::from_utf8(msg).expect("message is not valid UTF-8") ); @@ -37,14 +38,15 @@ fn main() -> ! { match res { Ok(crc) => { - log::info!( - "received: {} (CRC={})", + defmt::info!( + "received: {} (CRC = {:X})", + // ^^ print as uppercase hexadecimal str::from_utf8(&*packet).expect("response is not valid UTF-8"), crc ); } - Err(Error::Crc(crc)) => log::error!("invalid CRC: {:06x}", crc), - Err(Error::Timeout) => log::error!("no response within {} ms", TEN_MS / 1_000), + Err(Error::Crc(crc)) => defmt::error!("invalid CRC: {=u16:x}", crc), + Err(Error::Timeout) => defmt::error!("no response within {} ms", TEN_MS / 1_000), } dk::exit() diff --git a/beginner/apps/src/bin/radio-send.rs b/beginner/apps/src/bin/radio-send.rs index 4f411df..4d09180 100644 --- a/beginner/apps/src/bin/radio-send.rs +++ b/beginner/apps/src/bin/radio-send.rs @@ -6,7 +6,8 @@ use core::str; use cortex_m_rt::entry; use dk::ieee802154::{Channel, Packet, TxPower}; -use panic_log as _; // the panicking behavior +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; #[entry] fn main() -> ! { @@ -25,7 +26,7 @@ fn main() -> ! { // let msg: &[u8; 5] = &[b'H', b'e', b'l', b'l', b'o']; // let msg: &[u8; 5] = b"Hello"; - log::info!( + defmt::info!( "sending: {}", str::from_utf8(msg).expect("msg is not valid UTF-8 data") ); diff --git a/beginner/apps/src/bin/stack_overflow.rs b/beginner/apps/src/bin/stack_overflow.rs index e5930e8..b06cb53 100644 --- a/beginner/apps/src/bin/stack_overflow.rs +++ b/beginner/apps/src/bin/stack_overflow.rs @@ -3,14 +3,15 @@ use cortex_m::asm; use cortex_m_rt::entry; -use panic_log as _; // panic handler +// this imports `beginner/apps/lib.rs` to retrieve our global logger + panicking-behavior +use apps as _; #[entry] fn main() -> ! { // board initialization dk::init().unwrap(); - log::info!("fib(100) = {:?}", fib(100)); + defmt::info!("fib(100) = {:?}", fib(100)); loop { asm::bkpt();