aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-06-12 22:15:44 +0200
committerDario Nieuwenhuis <[email protected]>2022-06-12 22:22:31 +0200
commita8703b75988e1e700af701116464025679d2feb8 (patch)
treef4ec5de70ec05e793a774049e010935ac45853ed /examples
parent6199bdea710cde33e5d5381b6d6abfc8af46df19 (diff)
Run rustfmt.
Diffstat (limited to 'examples')
-rw-r--r--examples/boot/nrf/src/bin/a.rs14
-rw-r--r--examples/boot/nrf/src/bin/b.rs7
-rw-r--r--examples/boot/stm32f3/src/bin/a.rs10
-rw-r--r--examples/boot/stm32f3/src/bin/b.rs5
-rw-r--r--examples/boot/stm32f7/src/bin/a.rs10
-rw-r--r--examples/boot/stm32f7/src/bin/b.rs5
-rw-r--r--examples/boot/stm32h7/src/bin/a.rs10
-rw-r--r--examples/boot/stm32h7/src/bin/b.rs5
-rw-r--r--examples/boot/stm32l0/src/bin/a.rs10
-rw-r--r--examples/boot/stm32l0/src/bin/b.rs5
-rw-r--r--examples/boot/stm32l1/src/bin/a.rs10
-rw-r--r--examples/boot/stm32l1/src/bin/b.rs5
-rw-r--r--examples/boot/stm32l4/src/bin/a.rs10
-rw-r--r--examples/boot/stm32l4/src/bin/b.rs5
-rw-r--r--examples/boot/stm32wl/src/bin/a.rs10
-rw-r--r--examples/boot/stm32wl/src/bin/b.rs5
-rw-r--r--examples/nrf/src/bin/awaitable_timer.rs7
-rw-r--r--examples/nrf/src/bin/blinky.rs4
-rw-r--r--examples/nrf/src/bin/buffered_uart.rs8
-rw-r--r--examples/nrf/src/bin/channel.rs4
-rw-r--r--examples/nrf/src/bin/channel_sender_receiver.rs4
-rw-r--r--examples/nrf/src/bin/executor_fairness_test.rs5
-rw-r--r--examples/nrf/src/bin/gpiote_channel.rs4
-rw-r--r--examples/nrf/src/bin/gpiote_port.rs4
-rw-r--r--examples/nrf/src/bin/multiprio.rs4
-rw-r--r--examples/nrf/src/bin/mutex.rs4
-rw-r--r--examples/nrf/src/bin/nvmc.rs4
-rw-r--r--examples/nrf/src/bin/ppi.rs12
-rw-r--r--examples/nrf/src/bin/pwm.rs130
-rw-r--r--examples/nrf/src/bin/pwm_double_sequence.rs7
-rw-r--r--examples/nrf/src/bin/pwm_sequence.rs8
-rw-r--r--examples/nrf/src/bin/pwm_sequence_ppi.rs9
-rw-r--r--examples/nrf/src/bin/pwm_sequence_ws2812b.rs7
-rw-r--r--examples/nrf/src/bin/pwm_servo.rs4
-rw-r--r--examples/nrf/src/bin/qdec.rs11
-rw-r--r--examples/nrf/src/bin/qspi.rs7
-rw-r--r--examples/nrf/src/bin/qspi_lowpower.rs8
-rw-r--r--examples/nrf/src/bin/raw_spawn.rs5
-rw-r--r--examples/nrf/src/bin/rng.rs17
-rw-r--r--examples/nrf/src/bin/saadc.rs4
-rw-r--r--examples/nrf/src/bin/saadc_continuous.rs4
-rw-r--r--examples/nrf/src/bin/self_spawn.rs4
-rw-r--r--examples/nrf/src/bin/self_spawn_current_executor.rs4
-rw-r--r--examples/nrf/src/bin/spim.rs7
-rw-r--r--examples/nrf/src/bin/temp.rs7
-rw-r--r--examples/nrf/src/bin/timer.rs4
-rw-r--r--examples/nrf/src/bin/twim.rs4
-rw-r--r--examples/nrf/src/bin/twim_lowpower.rs5
-rw-r--r--examples/nrf/src/bin/uart.rs4
-rw-r--r--examples/nrf/src/bin/uart_idle.rs8
-rw-r--r--examples/nrf/src/bin/uart_split.rs4
-rw-r--r--examples/nrf/src/bin/usb_ethernet.rs14
-rw-r--r--examples/nrf/src/bin/usb_hid_keyboard.rs21
-rw-r--r--examples/nrf/src/bin/usb_hid_mouse.rs9
-rw-r--r--examples/nrf/src/bin/usb_serial.rs13
-rw-r--r--examples/nrf/src/bin/usb_serial_multitask.rs9
-rw-r--r--examples/nrf/src/bin/wdt.rs4
-rw-r--r--examples/rp/src/bin/blinky.rs4
-rw-r--r--examples/rp/src/bin/button.rs4
-rw-r--r--examples/rp/src/bin/spi.rs7
-rw-r--r--examples/rp/src/bin/spi_display.rs12
-rw-r--r--examples/rp/src/bin/uart.rs4
-rw-r--r--examples/std/src/serial_port.rs10
-rw-r--r--examples/std/src/tuntap.rs16
-rw-r--r--examples/stm32f0/src/bin/hello.rs4
-rw-r--r--examples/stm32f1/src/bin/adc.rs4
-rw-r--r--examples/stm32f1/src/bin/blinky.rs4
-rw-r--r--examples/stm32f1/src/bin/hello.rs7
-rw-r--r--examples/stm32f1/src/bin/usb_serial.rs20
-rw-r--r--examples/stm32f2/src/bin/blinky.rs4
-rw-r--r--examples/stm32f2/src/bin/pll.rs16
-rw-r--r--examples/stm32f3/src/bin/blinky.rs4
-rw-r--r--examples/stm32f3/src/bin/button.rs3
-rw-r--r--examples/stm32f3/src/bin/button_events.rs25
-rw-r--r--examples/stm32f3/src/bin/button_exti.rs3
-rw-r--r--examples/stm32f3/src/bin/flash.rs4
-rw-r--r--examples/stm32f3/src/bin/hello.rs7
-rw-r--r--examples/stm32f3/src/bin/multiprio.rs6
-rw-r--r--examples/stm32f3/src/bin/spi_dma.rs8
-rw-r--r--examples/stm32f3/src/bin/usart_dma.rs4
-rw-r--r--examples/stm32f3/src/bin/usb_serial.rs20
-rw-r--r--examples/stm32f4/src/bin/adc.rs4
-rw-r--r--examples/stm32f4/src/bin/blinky.rs3
-rw-r--r--examples/stm32f4/src/bin/button.rs3
-rw-r--r--examples/stm32f4/src/bin/button_exti.rs3
-rw-r--r--examples/stm32f4/src/bin/can.rs4
-rw-r--r--examples/stm32f4/src/bin/hello.rs7
-rw-r--r--examples/stm32f4/src/bin/multiprio.rs6
-rw-r--r--examples/stm32f4/src/bin/sdmmc.rs4
-rw-r--r--examples/stm32f4/src/bin/spi.rs4
-rw-r--r--examples/stm32f4/src/bin/spi_dma.rs8
-rw-r--r--examples/stm32f4/src/bin/usart.rs3
-rw-r--r--examples/stm32f4/src/bin/usart_buffered.rs3
-rw-r--r--examples/stm32f4/src/bin/usart_dma.rs4
-rw-r--r--examples/stm32f7/build.rs3
-rw-r--r--examples/stm32f7/src/bin/adc.rs4
-rw-r--r--examples/stm32f7/src/bin/blinky.rs3
-rw-r--r--examples/stm32f7/src/bin/button.rs3
-rw-r--r--examples/stm32f7/src/bin/button_exti.rs3
-rw-r--r--examples/stm32f7/src/bin/eth.rs7
-rw-r--r--examples/stm32f7/src/bin/flash.rs12
-rw-r--r--examples/stm32f7/src/bin/hello.rs7
-rw-r--r--examples/stm32f7/src/bin/sdmmc.rs4
-rw-r--r--examples/stm32f7/src/bin/usart_dma.rs5
-rw-r--r--examples/stm32g0/src/bin/blinky.rs3
-rw-r--r--examples/stm32g0/src/bin/button.rs3
-rw-r--r--examples/stm32g0/src/bin/button_exti.rs3
-rw-r--r--examples/stm32g4/src/bin/blinky.rs3
-rw-r--r--examples/stm32g4/src/bin/button.rs3
-rw-r--r--examples/stm32g4/src/bin/button_exti.rs3
-rw-r--r--examples/stm32g4/src/bin/pwm.rs6
-rw-r--r--examples/stm32h7/src/bin/adc.rs6
-rw-r--r--examples/stm32h7/src/bin/blinky.rs3
-rw-r--r--examples/stm32h7/src/bin/button_exti.rs3
-rw-r--r--examples/stm32h7/src/bin/camera.rs40
-rw-r--r--examples/stm32h7/src/bin/dac.rs4
-rw-r--r--examples/stm32h7/src/bin/eth.rs7
-rw-r--r--examples/stm32h7/src/bin/flash.rs11
-rw-r--r--examples/stm32h7/src/bin/fmc.rs21
-rw-r--r--examples/stm32h7/src/bin/low_level_timer_api.rs26
-rw-r--r--examples/stm32h7/src/bin/mco.rs3
-rw-r--r--examples/stm32h7/src/bin/pwm.rs6
-rw-r--r--examples/stm32h7/src/bin/rng.rs3
-rw-r--r--examples/stm32h7/src/bin/sdmmc.rs4
-rw-r--r--examples/stm32h7/src/bin/signal.rs7
-rw-r--r--examples/stm32h7/src/bin/spi.rs8
-rw-r--r--examples/stm32h7/src/bin/spi_dma.rs8
-rw-r--r--examples/stm32h7/src/bin/usart.rs6
-rw-r--r--examples/stm32h7/src/bin/usart_dma.rs7
-rw-r--r--examples/stm32h7/src/bin/usart_split.rs11
-rw-r--r--examples/stm32l0/src/bin/blinky.rs4
-rw-r--r--examples/stm32l0/src/bin/button.rs3
-rw-r--r--examples/stm32l0/src/bin/button_exti.rs4
-rw-r--r--examples/stm32l0/src/bin/flash.rs4
-rw-r--r--examples/stm32l0/src/bin/lorawan.rs27
-rw-r--r--examples/stm32l0/src/bin/raw_spawn.rs8
-rw-r--r--examples/stm32l0/src/bin/spi.rs7
-rw-r--r--examples/stm32l0/src/bin/usart_dma.rs14
-rw-r--r--examples/stm32l0/src/bin/usart_irq.rs11
-rw-r--r--examples/stm32l1/src/bin/blinky.rs4
-rw-r--r--examples/stm32l1/src/bin/flash.rs4
-rw-r--r--examples/stm32l1/src/bin/spi.rs7
-rw-r--r--examples/stm32l4/src/bin/adc.rs4
-rw-r--r--examples/stm32l4/src/bin/blinky.rs3
-rw-r--r--examples/stm32l4/src/bin/button.rs3
-rw-r--r--examples/stm32l4/src/bin/button_exti.rs3
-rw-r--r--examples/stm32l4/src/bin/dac.rs4
-rw-r--r--examples/stm32l4/src/bin/i2c.rs7
-rw-r--r--examples/stm32l4/src/bin/i2c_blocking_async.rs7
-rw-r--r--examples/stm32l4/src/bin/i2c_dma.rs17
-rw-r--r--examples/stm32l4/src/bin/rng.rs3
-rw-r--r--examples/stm32l4/src/bin/spi.rs4
-rw-r--r--examples/stm32l4/src/bin/spi_blocking_async.rs4
-rw-r--r--examples/stm32l4/src/bin/spi_dma.rs4
-rw-r--r--examples/stm32l4/src/bin/usart.rs4
-rw-r--r--examples/stm32l4/src/bin/usart_dma.rs4
-rw-r--r--examples/stm32l5/src/bin/button_exti.rs3
-rw-r--r--examples/stm32l5/src/bin/rng.rs3
-rw-r--r--examples/stm32l5/src/bin/usb_ethernet.rs23
-rw-r--r--examples/stm32l5/src/bin/usb_hid_mouse.rs15
-rw-r--r--examples/stm32l5/src/bin/usb_serial.rs21
-rw-r--r--examples/stm32u5/src/bin/blinky.rs4
-rw-r--r--examples/stm32u5/src/bin/boot.rs5
-rw-r--r--examples/stm32wb/src/bin/blinky.rs3
-rw-r--r--examples/stm32wb/src/bin/button_exti.rs3
-rw-r--r--examples/stm32wl/src/bin/blinky.rs3
-rw-r--r--examples/stm32wl/src/bin/button.rs6
-rw-r--r--examples/stm32wl/src/bin/button_exti.rs3
-rw-r--r--examples/stm32wl/src/bin/flash.rs4
-rw-r--r--examples/stm32wl/src/bin/lorawan.rs23
-rw-r--r--examples/stm32wl/src/bin/subghz.rs20
-rw-r--r--examples/wasm/src/lib.rs14
172 files changed, 431 insertions, 937 deletions
diff --git a/examples/boot/nrf/src/bin/a.rs b/examples/boot/nrf/src/bin/a.rs
index d45d0ff34..0b9715e49 100644
--- a/examples/boot/nrf/src/bin/a.rs
+++ b/examples/boot/nrf/src/bin/a.rs
@@ -6,12 +6,9 @@
6 6
7use embassy_boot_nrf::FirmwareUpdater; 7use embassy_boot_nrf::FirmwareUpdater;
8use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
9use embassy_nrf::{ 9use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull};
10 gpio::{Input, Pull}, 10use embassy_nrf::nvmc::Nvmc;
11 gpio::{Level, Output, OutputDrive}, 11use embassy_nrf::Peripherals;
12 nvmc::Nvmc,
13 Peripherals,
14};
15use panic_reset as _; 12use panic_reset as _;
16 13
17static APP_B: &[u8] = include_bytes!("../../b.bin"); 14static APP_B: &[u8] = include_bytes!("../../b.bin");
@@ -35,10 +32,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
35 for chunk in APP_B.chunks(4096) { 32 for chunk in APP_B.chunks(4096) {
36 let mut buf: [u8; 4096] = [0; 4096]; 33 let mut buf: [u8; 4096] = [0; 4096];
37 buf[..chunk.len()].copy_from_slice(chunk); 34 buf[..chunk.len()].copy_from_slice(chunk);
38 updater 35 updater.write_firmware(offset, &buf, &mut nvmc, 4096).await.unwrap();
39 .write_firmware(offset, &buf, &mut nvmc, 4096)
40 .await
41 .unwrap();
42 offset += chunk.len(); 36 offset += chunk.len();
43 } 37 }
44 updater.update(&mut nvmc).await.unwrap(); 38 updater.update(&mut nvmc).await.unwrap();
diff --git a/examples/boot/nrf/src/bin/b.rs b/examples/boot/nrf/src/bin/b.rs
index 18bb6330c..a06c20f8b 100644
--- a/examples/boot/nrf/src/bin/b.rs
+++ b/examples/boot/nrf/src/bin/b.rs
@@ -5,11 +5,8 @@
5#![feature(type_alias_impl_trait)] 5#![feature(type_alias_impl_trait)]
6 6
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::{ 8use embassy_nrf::gpio::{Level, Output, OutputDrive};
9 gpio::{Level, Output, OutputDrive}, 9use embassy_nrf::Peripherals;
10 Peripherals,
11};
12
13use panic_reset as _; 10use panic_reset as _;
14 11
15#[embassy::main] 12#[embassy::main]
diff --git a/examples/boot/stm32f3/src/bin/a.rs b/examples/boot/stm32f3/src/bin/a.rs
index 9ad798389..4ff18d7c7 100644
--- a/examples/boot/stm32f3/src/bin/a.rs
+++ b/examples/boot/stm32f3/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy_boot_stm32::FirmwareUpdater; 7use embassy_boot_stm32::FirmwareUpdater;
6use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
7use embassy_stm32::exti::ExtiInput; 9use embassy_stm32::exti::ExtiInput;
@@ -10,9 +12,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
11use panic_reset as _; 13use panic_reset as _;
12 14
13#[cfg(feature = "defmt-rtt")]
14use defmt_rtt::*;
15
16static APP_B: &[u8] = include_bytes!("../../b.bin"); 15static APP_B: &[u8] = include_bytes!("../../b.bin");
17 16
18#[embassy::main] 17#[embassy::main]
@@ -32,10 +31,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
32 for chunk in APP_B.chunks(2048) { 31 for chunk in APP_B.chunks(2048) {
33 let mut buf: [u8; 2048] = [0; 2048]; 32 let mut buf: [u8; 2048] = [0; 2048];
34 buf[..chunk.len()].copy_from_slice(chunk); 33 buf[..chunk.len()].copy_from_slice(chunk);
35 updater 34 updater.write_firmware(offset, &buf, &mut flash, 2048).await.unwrap();
36 .write_firmware(offset, &buf, &mut flash, 2048)
37 .await
38 .unwrap();
39 offset += chunk.len(); 35 offset += chunk.len();
40 } 36 }
41 updater.update(&mut flash).await.unwrap(); 37 updater.update(&mut flash).await.unwrap();
diff --git a/examples/boot/stm32f3/src/bin/b.rs b/examples/boot/stm32f3/src/bin/b.rs
index 814275988..4487e586e 100644
--- a/examples/boot/stm32f3/src/bin/b.rs
+++ b/examples/boot/stm32f3/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut led = Output::new(p.PA5, Level::High, Speed::Low); 15 let mut led = Output::new(p.PA5, Level::High, Speed::Low);
diff --git a/examples/boot/stm32f7/src/bin/a.rs b/examples/boot/stm32f7/src/bin/a.rs
index b4f49d579..9c7921a1a 100644
--- a/examples/boot/stm32f7/src/bin/a.rs
+++ b/examples/boot/stm32f7/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy_boot_stm32::FirmwareUpdater; 7use embassy_boot_stm32::FirmwareUpdater;
6use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
7use embassy_stm32::exti::ExtiInput; 9use embassy_stm32::exti::ExtiInput;
@@ -10,9 +12,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
11use panic_reset as _; 13use panic_reset as _;
12 14
13#[cfg(feature = "defmt-rtt")]
14use defmt_rtt::*;
15
16static APP_B: &[u8] = include_bytes!("../../b.bin"); 15static APP_B: &[u8] = include_bytes!("../../b.bin");
17 16
18#[embassy::main] 17#[embassy::main]
@@ -32,10 +31,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
32 let mut buf: [u8; 256 * 1024] = [0; 256 * 1024]; 31 let mut buf: [u8; 256 * 1024] = [0; 256 * 1024];
33 for chunk in APP_B.chunks(256 * 1024) { 32 for chunk in APP_B.chunks(256 * 1024) {
34 buf[..chunk.len()].copy_from_slice(chunk); 33 buf[..chunk.len()].copy_from_slice(chunk);
35 updater 34 updater.write_firmware(offset, &buf, &mut flash, 2048).await.unwrap();
36 .write_firmware(offset, &buf, &mut flash, 2048)
37 .await
38 .unwrap();
39 offset += chunk.len(); 35 offset += chunk.len();
40 } 36 }
41 updater.update(&mut flash).await.unwrap(); 37 updater.update(&mut flash).await.unwrap();
diff --git a/examples/boot/stm32f7/src/bin/b.rs b/examples/boot/stm32f7/src/bin/b.rs
index ed37137f5..aa05bbcdd 100644
--- a/examples/boot/stm32f7/src/bin/b.rs
+++ b/examples/boot/stm32f7/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 Timer::after(Duration::from_millis(300)).await; 15 Timer::after(Duration::from_millis(300)).await;
diff --git a/examples/boot/stm32h7/src/bin/a.rs b/examples/boot/stm32h7/src/bin/a.rs
index 1d196e8a5..704979dba 100644
--- a/examples/boot/stm32h7/src/bin/a.rs
+++ b/examples/boot/stm32h7/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy_boot_stm32::FirmwareUpdater; 7use embassy_boot_stm32::FirmwareUpdater;
6use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
7use embassy_stm32::exti::ExtiInput; 9use embassy_stm32::exti::ExtiInput;
@@ -10,9 +12,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
11use panic_reset as _; 13use panic_reset as _;
12 14
13#[cfg(feature = "defmt-rtt")]
14use defmt_rtt::*;
15
16static APP_B: &[u8] = include_bytes!("../../b.bin"); 15static APP_B: &[u8] = include_bytes!("../../b.bin");
17 16
18#[embassy::main] 17#[embassy::main]
@@ -32,10 +31,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
32 let mut buf: [u8; 128 * 1024] = [0; 128 * 1024]; 31 let mut buf: [u8; 128 * 1024] = [0; 128 * 1024];
33 for chunk in APP_B.chunks(128 * 1024) { 32 for chunk in APP_B.chunks(128 * 1024) {
34 buf[..chunk.len()].copy_from_slice(chunk); 33 buf[..chunk.len()].copy_from_slice(chunk);
35 updater 34 updater.write_firmware(offset, &buf, &mut flash, 2048).await.unwrap();
36 .write_firmware(offset, &buf, &mut flash, 2048)
37 .await
38 .unwrap();
39 offset += chunk.len(); 35 offset += chunk.len();
40 } 36 }
41 updater.update(&mut flash).await.unwrap(); 37 updater.update(&mut flash).await.unwrap();
diff --git a/examples/boot/stm32h7/src/bin/b.rs b/examples/boot/stm32h7/src/bin/b.rs
index 233b93e1a..ea0140253 100644
--- a/examples/boot/stm32h7/src/bin/b.rs
+++ b/examples/boot/stm32h7/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 Timer::after(Duration::from_millis(300)).await; 15 Timer::after(Duration::from_millis(300)).await;
diff --git a/examples/boot/stm32l0/src/bin/a.rs b/examples/boot/stm32l0/src/bin/a.rs
index d4b252bf0..ce620347b 100644
--- a/examples/boot/stm32l0/src/bin/a.rs
+++ b/examples/boot/stm32l0/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
6use embassy_boot_stm32::FirmwareUpdater; 8use embassy_boot_stm32::FirmwareUpdater;
7use embassy_embedded_hal::adapter::BlockingAsync; 9use embassy_embedded_hal::adapter::BlockingAsync;
@@ -11,9 +13,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
11use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
12use panic_reset as _; 14use panic_reset as _;
13 15
14#[cfg(feature = "defmt-rtt")]
15use defmt_rtt::*;
16
17static APP_B: &[u8] = include_bytes!("../../b.bin"); 16static APP_B: &[u8] = include_bytes!("../../b.bin");
18 17
19#[embassy::main] 18#[embassy::main]
@@ -34,10 +33,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
34 for chunk in APP_B.chunks(128) { 33 for chunk in APP_B.chunks(128) {
35 let mut buf: [u8; 128] = [0; 128]; 34 let mut buf: [u8; 128] = [0; 128];
36 buf[..chunk.len()].copy_from_slice(chunk); 35 buf[..chunk.len()].copy_from_slice(chunk);
37 updater 36 updater.write_firmware(offset, &buf, &mut flash, 128).await.unwrap();
38 .write_firmware(offset, &buf, &mut flash, 128)
39 .await
40 .unwrap();
41 offset += chunk.len(); 37 offset += chunk.len();
42 } 38 }
43 39
diff --git a/examples/boot/stm32l0/src/bin/b.rs b/examples/boot/stm32l0/src/bin/b.rs
index ed774fd70..0b585a14c 100644
--- a/examples/boot/stm32l0/src/bin/b.rs
+++ b/examples/boot/stm32l0/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut led = Output::new(p.PB6, Level::High, Speed::Low); 15 let mut led = Output::new(p.PB6, Level::High, Speed::Low);
diff --git a/examples/boot/stm32l1/src/bin/a.rs b/examples/boot/stm32l1/src/bin/a.rs
index d4b252bf0..ce620347b 100644
--- a/examples/boot/stm32l1/src/bin/a.rs
+++ b/examples/boot/stm32l1/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
6use embassy_boot_stm32::FirmwareUpdater; 8use embassy_boot_stm32::FirmwareUpdater;
7use embassy_embedded_hal::adapter::BlockingAsync; 9use embassy_embedded_hal::adapter::BlockingAsync;
@@ -11,9 +13,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
11use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
12use panic_reset as _; 14use panic_reset as _;
13 15
14#[cfg(feature = "defmt-rtt")]
15use defmt_rtt::*;
16
17static APP_B: &[u8] = include_bytes!("../../b.bin"); 16static APP_B: &[u8] = include_bytes!("../../b.bin");
18 17
19#[embassy::main] 18#[embassy::main]
@@ -34,10 +33,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
34 for chunk in APP_B.chunks(128) { 33 for chunk in APP_B.chunks(128) {
35 let mut buf: [u8; 128] = [0; 128]; 34 let mut buf: [u8; 128] = [0; 128];
36 buf[..chunk.len()].copy_from_slice(chunk); 35 buf[..chunk.len()].copy_from_slice(chunk);
37 updater 36 updater.write_firmware(offset, &buf, &mut flash, 128).await.unwrap();
38 .write_firmware(offset, &buf, &mut flash, 128)
39 .await
40 .unwrap();
41 offset += chunk.len(); 37 offset += chunk.len();
42 } 38 }
43 39
diff --git a/examples/boot/stm32l1/src/bin/b.rs b/examples/boot/stm32l1/src/bin/b.rs
index ed774fd70..0b585a14c 100644
--- a/examples/boot/stm32l1/src/bin/b.rs
+++ b/examples/boot/stm32l1/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut led = Output::new(p.PB6, Level::High, Speed::Low); 15 let mut led = Output::new(p.PB6, Level::High, Speed::Low);
diff --git a/examples/boot/stm32l4/src/bin/a.rs b/examples/boot/stm32l4/src/bin/a.rs
index 23b1d98bb..bf6099355 100644
--- a/examples/boot/stm32l4/src/bin/a.rs
+++ b/examples/boot/stm32l4/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy_boot_stm32::FirmwareUpdater; 7use embassy_boot_stm32::FirmwareUpdater;
6use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
7use embassy_stm32::exti::ExtiInput; 9use embassy_stm32::exti::ExtiInput;
@@ -10,9 +12,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
11use panic_reset as _; 13use panic_reset as _;
12 14
13#[cfg(feature = "defmt-rtt")]
14use defmt_rtt::*;
15
16static APP_B: &[u8] = include_bytes!("../../b.bin"); 15static APP_B: &[u8] = include_bytes!("../../b.bin");
17 16
18#[embassy::main] 17#[embassy::main]
@@ -32,10 +31,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
32 for chunk in APP_B.chunks(2048) { 31 for chunk in APP_B.chunks(2048) {
33 let mut buf: [u8; 2048] = [0; 2048]; 32 let mut buf: [u8; 2048] = [0; 2048];
34 buf[..chunk.len()].copy_from_slice(chunk); 33 buf[..chunk.len()].copy_from_slice(chunk);
35 updater 34 updater.write_firmware(offset, &buf, &mut flash, 2048).await.unwrap();
36 .write_firmware(offset, &buf, &mut flash, 2048)
37 .await
38 .unwrap();
39 offset += chunk.len(); 35 offset += chunk.len();
40 } 36 }
41 updater.update(&mut flash).await.unwrap(); 37 updater.update(&mut flash).await.unwrap();
diff --git a/examples/boot/stm32l4/src/bin/b.rs b/examples/boot/stm32l4/src/bin/b.rs
index 814275988..4487e586e 100644
--- a/examples/boot/stm32l4/src/bin/b.rs
+++ b/examples/boot/stm32l4/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut led = Output::new(p.PA5, Level::High, Speed::Low); 15 let mut led = Output::new(p.PA5, Level::High, Speed::Low);
diff --git a/examples/boot/stm32wl/src/bin/a.rs b/examples/boot/stm32wl/src/bin/a.rs
index 1089eff1e..dc1eb9bed 100644
--- a/examples/boot/stm32wl/src/bin/a.rs
+++ b/examples/boot/stm32wl/src/bin/a.rs
@@ -2,6 +2,8 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy_boot_stm32::FirmwareUpdater; 7use embassy_boot_stm32::FirmwareUpdater;
6use embassy_embedded_hal::adapter::BlockingAsync; 8use embassy_embedded_hal::adapter::BlockingAsync;
7use embassy_stm32::exti::ExtiInput; 9use embassy_stm32::exti::ExtiInput;
@@ -10,9 +12,6 @@ use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
11use panic_reset as _; 13use panic_reset as _;
12 14
13#[cfg(feature = "defmt-rtt")]
14use defmt_rtt::*;
15
16static APP_B: &[u8] = include_bytes!("../../b.bin"); 15static APP_B: &[u8] = include_bytes!("../../b.bin");
17 16
18#[embassy::main] 17#[embassy::main]
@@ -34,10 +33,7 @@ async fn main(_s: embassy::executor::Spawner, p: Peripherals) {
34 let mut buf: [u8; 2048] = [0; 2048]; 33 let mut buf: [u8; 2048] = [0; 2048];
35 buf[..chunk.len()].copy_from_slice(chunk); 34 buf[..chunk.len()].copy_from_slice(chunk);
36 // defmt::info!("Writing chunk at 0x{:x}", offset); 35 // defmt::info!("Writing chunk at 0x{:x}", offset);
37 updater 36 updater.write_firmware(offset, &buf, &mut flash, 2048).await.unwrap();
38 .write_firmware(offset, &buf, &mut flash, 2048)
39 .await
40 .unwrap();
41 offset += chunk.len(); 37 offset += chunk.len();
42 } 38 }
43 updater.update(&mut flash).await.unwrap(); 39 updater.update(&mut flash).await.unwrap();
diff --git a/examples/boot/stm32wl/src/bin/b.rs b/examples/boot/stm32wl/src/bin/b.rs
index ffe15b661..f2344bd53 100644
--- a/examples/boot/stm32wl/src/bin/b.rs
+++ b/examples/boot/stm32wl/src/bin/b.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5#[cfg(feature = "defmt-rtt")]
6use defmt_rtt::*;
5use embassy::executor::Spawner; 7use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
7use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
9use panic_reset as _; 11use panic_reset as _;
10 12
11#[cfg(feature = "defmt-rtt")]
12use defmt_rtt::*;
13
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut led = Output::new(p.PB15, Level::High, Speed::Low); 15 let mut led = Output::new(p.PB15, Level::High, Speed::Low);
diff --git a/examples/nrf/src/bin/awaitable_timer.rs b/examples/nrf/src/bin/awaitable_timer.rs
index 810b4bd6a..34a657cb9 100644
--- a/examples/nrf/src/bin/awaitable_timer.rs
+++ b/examples/nrf/src/bin/awaitable_timer.rs
@@ -4,12 +4,9 @@
4 4
5use defmt::info; 5use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::interrupt;
8use embassy_nrf::timer::Timer; 7use embassy_nrf::timer::Timer;
9use embassy_nrf::Peripherals; 8use embassy_nrf::{interrupt, Peripherals};
10 9use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 10
14#[embassy::main] 11#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/blinky.rs b/examples/nrf/src/bin/blinky.rs
index 4828b08fb..23d16f796 100644
--- a/examples/nrf/src/bin/blinky.rs
+++ b/examples/nrf/src/bin/blinky.rs
@@ -6,9 +6,7 @@ use embassy::executor::Spawner;
6use embassy::time::{Duration, Timer}; 6use embassy::time::{Duration, Timer};
7use embassy_nrf::gpio::{Level, Output, OutputDrive}; 7use embassy_nrf::gpio::{Level, Output, OutputDrive};
8use embassy_nrf::Peripherals; 8use embassy_nrf::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::main] 11#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/buffered_uart.rs b/examples/nrf/src/bin/buffered_uart.rs
index 782c39499..18dd698bf 100644
--- a/examples/nrf/src/bin/buffered_uart.rs
+++ b/examples/nrf/src/bin/buffered_uart.rs
@@ -4,13 +4,11 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::buffered_uarte::State; 7use embassy_nrf::buffered_uarte::{BufferedUarte, State};
8use embassy_nrf::{buffered_uarte::BufferedUarte, interrupt, uarte, Peripherals}; 8use embassy_nrf::{interrupt, uarte, Peripherals};
9use embedded_io::asynch::{BufRead, Write}; 9use embedded_io::asynch::{BufRead, Write};
10use futures::pin_mut; 10use futures::pin_mut;
11 11use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15#[embassy::main] 13#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/channel.rs b/examples/nrf/src/bin/channel.rs
index 12b463581..c57b91a42 100644
--- a/examples/nrf/src/bin/channel.rs
+++ b/examples/nrf/src/bin/channel.rs
@@ -9,9 +9,7 @@ use embassy::executor::Spawner;
9use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
10use embassy_nrf::gpio::{Level, Output, OutputDrive}; 10use embassy_nrf::gpio::{Level, Output, OutputDrive};
11use embassy_nrf::Peripherals; 11use embassy_nrf::Peripherals;
12 12use {defmt_rtt as _, panic_probe as _};
13use defmt_rtt as _; // global logger
14use panic_probe as _;
15 13
16enum LedState { 14enum LedState {
17 On, 15 On,
diff --git a/examples/nrf/src/bin/channel_sender_receiver.rs b/examples/nrf/src/bin/channel_sender_receiver.rs
index 1742dcc9e..847ce2382 100644
--- a/examples/nrf/src/bin/channel_sender_receiver.rs
+++ b/examples/nrf/src/bin/channel_sender_receiver.rs
@@ -10,9 +10,7 @@ use embassy::time::{Duration, Timer};
10use embassy::util::Forever; 10use embassy::util::Forever;
11use embassy_nrf::gpio::{AnyPin, Level, Output, OutputDrive, Pin}; 11use embassy_nrf::gpio::{AnyPin, Level, Output, OutputDrive, Pin};
12use embassy_nrf::Peripherals; 12use embassy_nrf::Peripherals;
13 13use {defmt_rtt as _, panic_probe as _};
14use defmt_rtt as _; // global logger
15use panic_probe as _;
16 14
17enum LedState { 15enum LedState {
18 On, 16 On,
diff --git a/examples/nrf/src/bin/executor_fairness_test.rs b/examples/nrf/src/bin/executor_fairness_test.rs
index 7a356d14b..5a4221519 100644
--- a/examples/nrf/src/bin/executor_fairness_test.rs
+++ b/examples/nrf/src/bin/executor_fairness_test.rs
@@ -3,13 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::task::Poll; 5use core::task::Poll;
6
6use defmt::{info, unwrap}; 7use defmt::{info, unwrap};
7use embassy::executor::Spawner; 8use embassy::executor::Spawner;
8use embassy::time::{Duration, Instant, Timer}; 9use embassy::time::{Duration, Instant, Timer};
9use embassy_nrf::Peripherals; 10use embassy_nrf::Peripherals;
10 11use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 12
14#[embassy::task] 13#[embassy::task]
15async fn run1() { 14async fn run1() {
diff --git a/examples/nrf/src/bin/gpiote_channel.rs b/examples/nrf/src/bin/gpiote_channel.rs
index 339f779f8..ad8f37c6e 100644
--- a/examples/nrf/src/bin/gpiote_channel.rs
+++ b/examples/nrf/src/bin/gpiote_channel.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_nrf::gpio::{Input, Pull}; 7use embassy_nrf::gpio::{Input, Pull};
8use embassy_nrf::gpiote::{InputChannel, InputChannelPolarity}; 8use embassy_nrf::gpiote::{InputChannel, InputChannelPolarity};
9use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/gpiote_port.rs b/examples/nrf/src/bin/gpiote_port.rs
index dc6bd301f..30b87b3a7 100644
--- a/examples/nrf/src/bin/gpiote_port.rs
+++ b/examples/nrf/src/bin/gpiote_port.rs
@@ -6,9 +6,7 @@ use defmt::{info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::gpio::{AnyPin, Input, Pin as _, Pull}; 7use embassy_nrf::gpio::{AnyPin, Input, Pin as _, Pull};
8use embassy_nrf::Peripherals; 8use embassy_nrf::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::task(pool_size = 4)] 11#[embassy::task(pool_size = 4)]
14async fn button_task(n: usize, mut pin: Input<'static, AnyPin>) { 12async fn button_task(n: usize, mut pin: Input<'static, AnyPin>) {
diff --git a/examples/nrf/src/bin/multiprio.rs b/examples/nrf/src/bin/multiprio.rs
index abda18aa5..1a4598e21 100644
--- a/examples/nrf/src/bin/multiprio.rs
+++ b/examples/nrf/src/bin/multiprio.rs
@@ -64,9 +64,7 @@ use embassy::util::Forever;
64use embassy_nrf::executor::{Executor, InterruptExecutor}; 64use embassy_nrf::executor::{Executor, InterruptExecutor};
65use embassy_nrf::interrupt; 65use embassy_nrf::interrupt;
66use embassy_nrf::interrupt::InterruptExt; 66use embassy_nrf::interrupt::InterruptExt;
67 67use {defmt_rtt as _, panic_probe as _};
68use defmt_rtt as _; // global logger
69use panic_probe as _;
70 68
71#[embassy::task] 69#[embassy::task]
72async fn run_high() { 70async fn run_high() {
diff --git a/examples/nrf/src/bin/mutex.rs b/examples/nrf/src/bin/mutex.rs
index db1b72f6d..92e01976c 100644
--- a/examples/nrf/src/bin/mutex.rs
+++ b/examples/nrf/src/bin/mutex.rs
@@ -8,9 +8,7 @@ use embassy::executor::Spawner;
8use embassy::mutex::Mutex; 8use embassy::mutex::Mutex;
9use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
10use embassy_nrf::Peripherals; 10use embassy_nrf::Peripherals;
11 11use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15static MUTEX: Mutex<ThreadModeRawMutex, u32> = Mutex::new(0); 13static MUTEX: Mutex<ThreadModeRawMutex, u32> = Mutex::new(0);
16 14
diff --git a/examples/nrf/src/bin/nvmc.rs b/examples/nrf/src/bin/nvmc.rs
index 7a57399f8..b55ef1f6c 100644
--- a/examples/nrf/src/bin/nvmc.rs
+++ b/examples/nrf/src/bin/nvmc.rs
@@ -8,9 +8,7 @@ use embassy::time::{Duration, Timer};
8use embassy_nrf::nvmc::Nvmc; 8use embassy_nrf::nvmc::Nvmc;
9use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
10use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 10use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
11 11use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15#[embassy::main] 13#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/ppi.rs b/examples/nrf/src/bin/ppi.rs
index 3c9a8148a..004a1bfa4 100644
--- a/examples/nrf/src/bin/ppi.rs
+++ b/examples/nrf/src/bin/ppi.rs
@@ -3,6 +3,7 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::future::pending; 5use core::future::pending;
6
6use defmt::info; 7use defmt::info;
7use embassy::executor::Spawner; 8use embassy::executor::Spawner;
8use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; 9use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull};
@@ -10,9 +11,7 @@ use embassy_nrf::gpiote::{self, InputChannel, InputChannelPolarity};
10use embassy_nrf::ppi::Ppi; 11use embassy_nrf::ppi::Ppi;
11use embassy_nrf::Peripherals; 12use embassy_nrf::Peripherals;
12use gpiote::{OutputChannel, OutputChannelPolarity}; 13use gpiote::{OutputChannel, OutputChannelPolarity};
13 14use {defmt_rtt as _, panic_probe as _};
14use defmt_rtt as _; // global logger
15use panic_probe as _;
16 15
17#[embassy::main] 16#[embassy::main]
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
@@ -60,12 +59,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
60 let mut ppi = Ppi::new_one_to_one(p.PPI_CH2, button3.event_in(), led1.task_set()); 59 let mut ppi = Ppi::new_one_to_one(p.PPI_CH2, button3.event_in(), led1.task_set());
61 ppi.enable(); 60 ppi.enable();
62 61
63 let mut ppi = Ppi::new_one_to_two( 62 let mut ppi = Ppi::new_one_to_two(p.PPI_CH3, button4.event_in(), led1.task_out(), led2.task_out());
64 p.PPI_CH3,
65 button4.event_in(),
66 led1.task_out(),
67 led2.task_out(),
68 );
69 ppi.enable(); 63 ppi.enable();
70 64
71 info!("PPI setup!"); 65 info!("PPI setup!");
diff --git a/examples/nrf/src/bin/pwm.rs b/examples/nrf/src/bin/pwm.rs
index 7939e79e4..aec5dd73a 100644
--- a/examples/nrf/src/bin/pwm.rs
+++ b/examples/nrf/src/bin/pwm.rs
@@ -7,81 +7,67 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::pwm::{Prescaler, SimplePwm}; 8use embassy_nrf::pwm::{Prescaler, SimplePwm};
9use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14// for i in range(1024): print(int((math.sin(i/512*math.pi)*0.4+0.5)**2*32767), ', ', end='') 12// for i in range(1024): print(int((math.sin(i/512*math.pi)*0.4+0.5)**2*32767), ', ', end='')
15static DUTY: [u16; 1024] = [ 13static DUTY: [u16; 1024] = [
16 8191, 8272, 8353, 8434, 8516, 8598, 8681, 8764, 8847, 8931, 9015, 9099, 9184, 9269, 9354, 9440, 14 8191, 8272, 8353, 8434, 8516, 8598, 8681, 8764, 8847, 8931, 9015, 9099, 9184, 9269, 9354, 9440, 9526, 9613, 9700,
17 9526, 9613, 9700, 9787, 9874, 9962, 10050, 10139, 10227, 10316, 10406, 10495, 10585, 10675, 15 9787, 9874, 9962, 10050, 10139, 10227, 10316, 10406, 10495, 10585, 10675, 10766, 10857, 10948, 11039, 11131, 11223,
18 10766, 10857, 10948, 11039, 11131, 11223, 11315, 11407, 11500, 11592, 11685, 11779, 11872, 16 11315, 11407, 11500, 11592, 11685, 11779, 11872, 11966, 12060, 12154, 12248, 12343, 12438, 12533, 12628, 12723,
19 11966, 12060, 12154, 12248, 12343, 12438, 12533, 12628, 12723, 12818, 12914, 13010, 13106, 17 12818, 12914, 13010, 13106, 13202, 13298, 13394, 13491, 13587, 13684, 13781, 13878, 13975, 14072, 14169, 14266,
20 13202, 13298, 13394, 13491, 13587, 13684, 13781, 13878, 13975, 14072, 14169, 14266, 14364, 18 14364, 14461, 14558, 14656, 14754, 14851, 14949, 15046, 15144, 15242, 15339, 15437, 15535, 15632, 15730, 15828,
21 14461, 14558, 14656, 14754, 14851, 14949, 15046, 15144, 15242, 15339, 15437, 15535, 15632, 19 15925, 16023, 16120, 16218, 16315, 16412, 16510, 16607, 16704, 16801, 16898, 16995, 17091, 17188, 17284, 17380,
22 15730, 15828, 15925, 16023, 16120, 16218, 16315, 16412, 16510, 16607, 16704, 16801, 16898, 20 17477, 17572, 17668, 17764, 17859, 17955, 18050, 18145, 18239, 18334, 18428, 18522, 18616, 18710, 18803, 18896,
23 16995, 17091, 17188, 17284, 17380, 17477, 17572, 17668, 17764, 17859, 17955, 18050, 18145, 21 18989, 19082, 19174, 19266, 19358, 19449, 19540, 19631, 19722, 19812, 19902, 19991, 20081, 20169, 20258, 20346,
24 18239, 18334, 18428, 18522, 18616, 18710, 18803, 18896, 18989, 19082, 19174, 19266, 19358, 22 20434, 20521, 20608, 20695, 20781, 20867, 20952, 21037, 21122, 21206, 21290, 21373, 21456, 21538, 21620, 21701,
25 19449, 19540, 19631, 19722, 19812, 19902, 19991, 20081, 20169, 20258, 20346, 20434, 20521, 23 21782, 21863, 21943, 22022, 22101, 22179, 22257, 22335, 22412, 22488, 22564, 22639, 22714, 22788, 22861, 22934,
26 20608, 20695, 20781, 20867, 20952, 21037, 21122, 21206, 21290, 21373, 21456, 21538, 21620, 24 23007, 23079, 23150, 23220, 23290, 23360, 23429, 23497, 23564, 23631, 23698, 23763, 23828, 23892, 23956, 24019,
27 21701, 21782, 21863, 21943, 22022, 22101, 22179, 22257, 22335, 22412, 22488, 22564, 22639, 25 24081, 24143, 24204, 24264, 24324, 24383, 24441, 24499, 24555, 24611, 24667, 24721, 24775, 24828, 24881, 24933,
28 22714, 22788, 22861, 22934, 23007, 23079, 23150, 23220, 23290, 23360, 23429, 23497, 23564, 26 24983, 25034, 25083, 25132, 25180, 25227, 25273, 25319, 25363, 25407, 25451, 25493, 25535, 25575, 25615, 25655,
29 23631, 23698, 23763, 23828, 23892, 23956, 24019, 24081, 24143, 24204, 24264, 24324, 24383, 27 25693, 25731, 25767, 25803, 25838, 25873, 25906, 25939, 25971, 26002, 26032, 26061, 26089, 26117, 26144, 26170,
30 24441, 24499, 24555, 24611, 24667, 24721, 24775, 24828, 24881, 24933, 24983, 25034, 25083, 28 26195, 26219, 26242, 26264, 26286, 26307, 26327, 26346, 26364, 26381, 26397, 26413, 26427, 26441, 26454, 26466,
31 25132, 25180, 25227, 25273, 25319, 25363, 25407, 25451, 25493, 25535, 25575, 25615, 25655, 29 26477, 26487, 26496, 26505, 26512, 26519, 26525, 26530, 26534, 26537, 26539, 26540, 26541, 26540, 26539, 26537,
32 25693, 25731, 25767, 25803, 25838, 25873, 25906, 25939, 25971, 26002, 26032, 26061, 26089, 30 26534, 26530, 26525, 26519, 26512, 26505, 26496, 26487, 26477, 26466, 26454, 26441, 26427, 26413, 26397, 26381,
33 26117, 26144, 26170, 26195, 26219, 26242, 26264, 26286, 26307, 26327, 26346, 26364, 26381, 31 26364, 26346, 26327, 26307, 26286, 26264, 26242, 26219, 26195, 26170, 26144, 26117, 26089, 26061, 26032, 26002,
34 26397, 26413, 26427, 26441, 26454, 26466, 26477, 26487, 26496, 26505, 26512, 26519, 26525, 32 25971, 25939, 25906, 25873, 25838, 25803, 25767, 25731, 25693, 25655, 25615, 25575, 25535, 25493, 25451, 25407,
35 26530, 26534, 26537, 26539, 26540, 26541, 26540, 26539, 26537, 26534, 26530, 26525, 26519, 33 25363, 25319, 25273, 25227, 25180, 25132, 25083, 25034, 24983, 24933, 24881, 24828, 24775, 24721, 24667, 24611,
36 26512, 26505, 26496, 26487, 26477, 26466, 26454, 26441, 26427, 26413, 26397, 26381, 26364, 34 24555, 24499, 24441, 24383, 24324, 24264, 24204, 24143, 24081, 24019, 23956, 23892, 23828, 23763, 23698, 23631,
37 26346, 26327, 26307, 26286, 26264, 26242, 26219, 26195, 26170, 26144, 26117, 26089, 26061, 35 23564, 23497, 23429, 23360, 23290, 23220, 23150, 23079, 23007, 22934, 22861, 22788, 22714, 22639, 22564, 22488,
38 26032, 26002, 25971, 25939, 25906, 25873, 25838, 25803, 25767, 25731, 25693, 25655, 25615, 36 22412, 22335, 22257, 22179, 22101, 22022, 21943, 21863, 21782, 21701, 21620, 21538, 21456, 21373, 21290, 21206,
39 25575, 25535, 25493, 25451, 25407, 25363, 25319, 25273, 25227, 25180, 25132, 25083, 25034, 37 21122, 21037, 20952, 20867, 20781, 20695, 20608, 20521, 20434, 20346, 20258, 20169, 20081, 19991, 19902, 19812,
40 24983, 24933, 24881, 24828, 24775, 24721, 24667, 24611, 24555, 24499, 24441, 24383, 24324, 38 19722, 19631, 19540, 19449, 19358, 19266, 19174, 19082, 18989, 18896, 18803, 18710, 18616, 18522, 18428, 18334,
41 24264, 24204, 24143, 24081, 24019, 23956, 23892, 23828, 23763, 23698, 23631, 23564, 23497, 39 18239, 18145, 18050, 17955, 17859, 17764, 17668, 17572, 17477, 17380, 17284, 17188, 17091, 16995, 16898, 16801,
42 23429, 23360, 23290, 23220, 23150, 23079, 23007, 22934, 22861, 22788, 22714, 22639, 22564, 40 16704, 16607, 16510, 16412, 16315, 16218, 16120, 16023, 15925, 15828, 15730, 15632, 15535, 15437, 15339, 15242,
43 22488, 22412, 22335, 22257, 22179, 22101, 22022, 21943, 21863, 21782, 21701, 21620, 21538, 41 15144, 15046, 14949, 14851, 14754, 14656, 14558, 14461, 14364, 14266, 14169, 14072, 13975, 13878, 13781, 13684,
44 21456, 21373, 21290, 21206, 21122, 21037, 20952, 20867, 20781, 20695, 20608, 20521, 20434, 42 13587, 13491, 13394, 13298, 13202, 13106, 13010, 12914, 12818, 12723, 12628, 12533, 12438, 12343, 12248, 12154,
45 20346, 20258, 20169, 20081, 19991, 19902, 19812, 19722, 19631, 19540, 19449, 19358, 19266, 43 12060, 11966, 11872, 11779, 11685, 11592, 11500, 11407, 11315, 11223, 11131, 11039, 10948, 10857, 10766, 10675,
46 19174, 19082, 18989, 18896, 18803, 18710, 18616, 18522, 18428, 18334, 18239, 18145, 18050, 44 10585, 10495, 10406, 10316, 10227, 10139, 10050, 9962, 9874, 9787, 9700, 9613, 9526, 9440, 9354, 9269, 9184, 9099,
47 17955, 17859, 17764, 17668, 17572, 17477, 17380, 17284, 17188, 17091, 16995, 16898, 16801, 45 9015, 8931, 8847, 8764, 8681, 8598, 8516, 8434, 8353, 8272, 8191, 8111, 8031, 7952, 7873, 7794, 7716, 7638, 7561,
48 16704, 16607, 16510, 16412, 16315, 16218, 16120, 16023, 15925, 15828, 15730, 15632, 15535, 46 7484, 7407, 7331, 7255, 7180, 7105, 7031, 6957, 6883, 6810, 6738, 6665, 6594, 6522, 6451, 6381, 6311, 6241, 6172,
49 15437, 15339, 15242, 15144, 15046, 14949, 14851, 14754, 14656, 14558, 14461, 14364, 14266, 47 6104, 6036, 5968, 5901, 5834, 5767, 5702, 5636, 5571, 5507, 5443, 5379, 5316, 5253, 5191, 5130, 5068, 5008, 4947,
50 14169, 14072, 13975, 13878, 13781, 13684, 13587, 13491, 13394, 13298, 13202, 13106, 13010, 48 4888, 4828, 4769, 4711, 4653, 4596, 4539, 4482, 4426, 4371, 4316, 4261, 4207, 4153, 4100, 4047, 3995, 3943, 3892,
51 12914, 12818, 12723, 12628, 12533, 12438, 12343, 12248, 12154, 12060, 11966, 11872, 11779, 49 3841, 3791, 3741, 3691, 3642, 3594, 3546, 3498, 3451, 3404, 3358, 3312, 3267, 3222, 3178, 3134, 3090, 3047, 3005,
52 11685, 11592, 11500, 11407, 11315, 11223, 11131, 11039, 10948, 10857, 10766, 10675, 10585, 50 2962, 2921, 2879, 2839, 2798, 2758, 2719, 2680, 2641, 2603, 2565, 2528, 2491, 2454, 2418, 2382, 2347, 2312, 2278,
53 10495, 10406, 10316, 10227, 10139, 10050, 9962, 9874, 9787, 9700, 9613, 9526, 9440, 9354, 9269, 51 2244, 2210, 2177, 2144, 2112, 2080, 2048, 2017, 1986, 1956, 1926, 1896, 1867, 1838, 1810, 1781, 1754, 1726, 1699,
54 9184, 9099, 9015, 8931, 8847, 8764, 8681, 8598, 8516, 8434, 8353, 8272, 8191, 8111, 8031, 7952, 52 1673, 1646, 1620, 1595, 1570, 1545, 1520, 1496, 1472, 1449, 1426, 1403, 1380, 1358, 1336, 1315, 1294, 1273, 1252,
55 7873, 7794, 7716, 7638, 7561, 7484, 7407, 7331, 7255, 7180, 7105, 7031, 6957, 6883, 6810, 6738, 53 1232, 1212, 1192, 1173, 1154, 1135, 1117, 1099, 1081, 1063, 1046, 1029, 1012, 996, 980, 964, 948, 933, 918, 903,
56 6665, 6594, 6522, 6451, 6381, 6311, 6241, 6172, 6104, 6036, 5968, 5901, 5834, 5767, 5702, 5636, 54 888, 874, 860, 846, 833, 819, 806, 793, 781, 768, 756, 744, 733, 721, 710, 699, 688, 677, 667, 657, 647, 637, 627,
57 5571, 5507, 5443, 5379, 5316, 5253, 5191, 5130, 5068, 5008, 4947, 4888, 4828, 4769, 4711, 4653, 55 618, 609, 599, 591, 582, 574, 565, 557, 549, 541, 534, 526, 519, 512, 505, 498, 492, 485, 479, 473, 467, 461, 455,
58 4596, 4539, 4482, 4426, 4371, 4316, 4261, 4207, 4153, 4100, 4047, 3995, 3943, 3892, 3841, 3791, 56 450, 444, 439, 434, 429, 424, 419, 415, 410, 406, 402, 398, 394, 390, 386, 383, 379, 376, 373, 370, 367, 364, 361,
59 3741, 3691, 3642, 3594, 3546, 3498, 3451, 3404, 3358, 3312, 3267, 3222, 3178, 3134, 3090, 3047, 57 359, 356, 354, 351, 349, 347, 345, 343, 342, 340, 338, 337, 336, 334, 333, 332, 331, 330, 330, 329, 328, 328, 328,
60 3005, 2962, 2921, 2879, 2839, 2798, 2758, 2719, 2680, 2641, 2603, 2565, 2528, 2491, 2454, 2418, 58 327, 327, 327, 327, 327, 328, 328, 328, 329, 330, 330, 331, 332, 333, 334, 336, 337, 338, 340, 342, 343, 345, 347,
61 2382, 2347, 2312, 2278, 2244, 2210, 2177, 2144, 2112, 2080, 2048, 2017, 1986, 1956, 1926, 1896, 59 349, 351, 354, 356, 359, 361, 364, 367, 370, 373, 376, 379, 383, 386, 390, 394, 398, 402, 406, 410, 415, 419, 424,
62 1867, 1838, 1810, 1781, 1754, 1726, 1699, 1673, 1646, 1620, 1595, 1570, 1545, 1520, 1496, 1472, 60 429, 434, 439, 444, 450, 455, 461, 467, 473, 479, 485, 492, 498, 505, 512, 519, 526, 534, 541, 549, 557, 565, 574,
63 1449, 1426, 1403, 1380, 1358, 1336, 1315, 1294, 1273, 1252, 1232, 1212, 1192, 1173, 1154, 1135, 61 582, 591, 599, 609, 618, 627, 637, 647, 657, 667, 677, 688, 699, 710, 721, 733, 744, 756, 768, 781, 793, 806, 819,
64 1117, 1099, 1081, 1063, 1046, 1029, 1012, 996, 980, 964, 948, 933, 918, 903, 888, 874, 860, 62 833, 846, 860, 874, 888, 903, 918, 933, 948, 964, 980, 996, 1012, 1029, 1046, 1063, 1081, 1099, 1117, 1135, 1154,
65 846, 833, 819, 806, 793, 781, 768, 756, 744, 733, 721, 710, 699, 688, 677, 667, 657, 647, 637, 63 1173, 1192, 1212, 1232, 1252, 1273, 1294, 1315, 1336, 1358, 1380, 1403, 1426, 1449, 1472, 1496, 1520, 1545, 1570,
66 627, 618, 609, 599, 591, 582, 574, 565, 557, 549, 541, 534, 526, 519, 512, 505, 498, 492, 485, 64 1595, 1620, 1646, 1673, 1699, 1726, 1754, 1781, 1810, 1838, 1867, 1896, 1926, 1956, 1986, 2017, 2048, 2080, 2112,
67 479, 473, 467, 461, 455, 450, 444, 439, 434, 429, 424, 419, 415, 410, 406, 402, 398, 394, 390, 65 2144, 2177, 2210, 2244, 2278, 2312, 2347, 2382, 2418, 2454, 2491, 2528, 2565, 2603, 2641, 2680, 2719, 2758, 2798,
68 386, 383, 379, 376, 373, 370, 367, 364, 361, 359, 356, 354, 351, 349, 347, 345, 343, 342, 340, 66 2839, 2879, 2921, 2962, 3005, 3047, 3090, 3134, 3178, 3222, 3267, 3312, 3358, 3404, 3451, 3498, 3546, 3594, 3642,
69 338, 337, 336, 334, 333, 332, 331, 330, 330, 329, 328, 328, 328, 327, 327, 327, 327, 327, 328, 67 3691, 3741, 3791, 3841, 3892, 3943, 3995, 4047, 4100, 4153, 4207, 4261, 4316, 4371, 4426, 4482, 4539, 4596, 4653,
70 328, 328, 329, 330, 330, 331, 332, 333, 334, 336, 337, 338, 340, 342, 343, 345, 347, 349, 351, 68 4711, 4769, 4828, 4888, 4947, 5008, 5068, 5130, 5191, 5253, 5316, 5379, 5443, 5507, 5571, 5636, 5702, 5767, 5834,
71 354, 356, 359, 361, 364, 367, 370, 373, 376, 379, 383, 386, 390, 394, 398, 402, 406, 410, 415, 69 5901, 5968, 6036, 6104, 6172, 6241, 6311, 6381, 6451, 6522, 6594, 6665, 6738, 6810, 6883, 6957, 7031, 7105, 7180,
72 419, 424, 429, 434, 439, 444, 450, 455, 461, 467, 473, 479, 485, 492, 498, 505, 512, 519, 526, 70 7255, 7331, 7407, 7484, 7561, 7638, 7716, 7794, 7873, 7952, 8031, 8111,
73 534, 541, 549, 557, 565, 574, 582, 591, 599, 609, 618, 627, 637, 647, 657, 667, 677, 688, 699,
74 710, 721, 733, 744, 756, 768, 781, 793, 806, 819, 833, 846, 860, 874, 888, 903, 918, 933, 948,
75 964, 980, 996, 1012, 1029, 1046, 1063, 1081, 1099, 1117, 1135, 1154, 1173, 1192, 1212, 1232,
76 1252, 1273, 1294, 1315, 1336, 1358, 1380, 1403, 1426, 1449, 1472, 1496, 1520, 1545, 1570, 1595,
77 1620, 1646, 1673, 1699, 1726, 1754, 1781, 1810, 1838, 1867, 1896, 1926, 1956, 1986, 2017, 2048,
78 2080, 2112, 2144, 2177, 2210, 2244, 2278, 2312, 2347, 2382, 2418, 2454, 2491, 2528, 2565, 2603,
79 2641, 2680, 2719, 2758, 2798, 2839, 2879, 2921, 2962, 3005, 3047, 3090, 3134, 3178, 3222, 3267,
80 3312, 3358, 3404, 3451, 3498, 3546, 3594, 3642, 3691, 3741, 3791, 3841, 3892, 3943, 3995, 4047,
81 4100, 4153, 4207, 4261, 4316, 4371, 4426, 4482, 4539, 4596, 4653, 4711, 4769, 4828, 4888, 4947,
82 5008, 5068, 5130, 5191, 5253, 5316, 5379, 5443, 5507, 5571, 5636, 5702, 5767, 5834, 5901, 5968,
83 6036, 6104, 6172, 6241, 6311, 6381, 6451, 6522, 6594, 6665, 6738, 6810, 6883, 6957, 7031, 7105,
84 7180, 7255, 7331, 7407, 7484, 7561, 7638, 7716, 7794, 7873, 7952, 8031, 8111,
85]; 71];
86 72
87#[embassy::main] 73#[embassy::main]
diff --git a/examples/nrf/src/bin/pwm_double_sequence.rs b/examples/nrf/src/bin/pwm_double_sequence.rs
index 6fc429214..facafa775 100644
--- a/examples/nrf/src/bin/pwm_double_sequence.rs
+++ b/examples/nrf/src/bin/pwm_double_sequence.rs
@@ -6,13 +6,10 @@ use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::pwm::{ 8use embassy_nrf::pwm::{
9 Config, Prescaler, Sequence, SequenceConfig, SequenceMode, SequencePwm, Sequencer, 9 Config, Prescaler, Sequence, SequenceConfig, SequenceMode, SequencePwm, Sequencer, StartSequence,
10 StartSequence,
11}; 10};
12use embassy_nrf::Peripherals; 11use embassy_nrf::Peripherals;
13 12use {defmt_rtt as _, panic_probe as _};
14use defmt_rtt as _; // global logger
15use panic_probe as _;
16 13
17#[embassy::main] 14#[embassy::main]
18async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/pwm_sequence.rs b/examples/nrf/src/bin/pwm_sequence.rs
index 3b2919ba5..b7cb385c7 100644
--- a/examples/nrf/src/bin/pwm_sequence.rs
+++ b/examples/nrf/src/bin/pwm_sequence.rs
@@ -5,13 +5,9 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::pwm::{ 8use embassy_nrf::pwm::{Config, Prescaler, SequenceConfig, SequencePwm, SingleSequenceMode, SingleSequencer};
9 Config, Prescaler, SequenceConfig, SequencePwm, SingleSequenceMode, SingleSequencer,
10};
11use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
12 10use {defmt_rtt as _, panic_probe as _};
13use defmt_rtt as _; // global logger
14use panic_probe as _;
15 11
16#[embassy::main] 12#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/pwm_sequence_ppi.rs b/examples/nrf/src/bin/pwm_sequence_ppi.rs
index 1f3662c60..7d020e48d 100644
--- a/examples/nrf/src/bin/pwm_sequence_ppi.rs
+++ b/examples/nrf/src/bin/pwm_sequence_ppi.rs
@@ -4,18 +4,15 @@
4#![feature(array_from_fn)] 4#![feature(array_from_fn)]
5 5
6use core::future::pending; 6use core::future::pending;
7
7use defmt::*; 8use defmt::*;
8use embassy::executor::Spawner; 9use embassy::executor::Spawner;
9use embassy_nrf::gpio::{Input, Pull}; 10use embassy_nrf::gpio::{Input, Pull};
10use embassy_nrf::gpiote::{InputChannel, InputChannelPolarity}; 11use embassy_nrf::gpiote::{InputChannel, InputChannelPolarity};
11use embassy_nrf::ppi::Ppi; 12use embassy_nrf::ppi::Ppi;
12use embassy_nrf::pwm::{ 13use embassy_nrf::pwm::{Config, Prescaler, SequenceConfig, SequencePwm, SingleSequenceMode, SingleSequencer};
13 Config, Prescaler, SequenceConfig, SequencePwm, SingleSequenceMode, SingleSequencer,
14};
15use embassy_nrf::Peripherals; 14use embassy_nrf::Peripherals;
16 15use {defmt_rtt as _, panic_probe as _};
17use defmt_rtt as _; // global logger
18use panic_probe as _;
19 16
20#[embassy::main] 17#[embassy::main]
21async fn main(_spawner: Spawner, p: Peripherals) { 18async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/pwm_sequence_ws2812b.rs b/examples/nrf/src/bin/pwm_sequence_ws2812b.rs
index 8bfe1d50f..0dee8c949 100644
--- a/examples/nrf/src/bin/pwm_sequence_ws2812b.rs
+++ b/examples/nrf/src/bin/pwm_sequence_ws2812b.rs
@@ -6,13 +6,10 @@ use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::pwm::{ 8use embassy_nrf::pwm::{
9 Config, Prescaler, SequenceConfig, SequenceLoad, SequencePwm, SingleSequenceMode, 9 Config, Prescaler, SequenceConfig, SequenceLoad, SequencePwm, SingleSequenceMode, SingleSequencer,
10 SingleSequencer,
11}; 10};
12use embassy_nrf::Peripherals; 11use embassy_nrf::Peripherals;
13 12use {defmt_rtt as _, panic_probe as _};
14use defmt_rtt as _; // global logger
15use panic_probe as _;
16 13
17// WS2812B LED light demonstration. Drives just one light. 14// WS2812B LED light demonstration. Drives just one light.
18// The following reference on WS2812B may be of use: 15// The following reference on WS2812B may be of use:
diff --git a/examples/nrf/src/bin/pwm_servo.rs b/examples/nrf/src/bin/pwm_servo.rs
index 40863bf3c..71a90a948 100644
--- a/examples/nrf/src/bin/pwm_servo.rs
+++ b/examples/nrf/src/bin/pwm_servo.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::pwm::{Prescaler, SimplePwm}; 8use embassy_nrf::pwm::{Prescaler, SimplePwm};
9use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/qdec.rs b/examples/nrf/src/bin/qdec.rs
index bf5b11468..9529c7bb6 100644
--- a/examples/nrf/src/bin/qdec.rs
+++ b/examples/nrf/src/bin/qdec.rs
@@ -4,14 +4,9 @@
4 4
5use defmt::info; 5use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::{ 7use embassy_nrf::qdec::{self, Qdec};
8 interrupt, 8use embassy_nrf::{interrupt, Peripherals};
9 qdec::{self, Qdec}, 9use {defmt_rtt as _, panic_probe as _};
10 Peripherals,
11};
12
13use defmt_rtt as _; // global logger
14use panic_probe as _;
15 10
16#[embassy::main] 11#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/qspi.rs b/examples/nrf/src/bin/qspi.rs
index 8673b7961..96c90f9c8 100644
--- a/examples/nrf/src/bin/qspi.rs
+++ b/examples/nrf/src/bin/qspi.rs
@@ -4,11 +4,8 @@
4 4
5use defmt::{assert_eq, info, unwrap}; 5use defmt::{assert_eq, info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::Peripherals; 7use embassy_nrf::{interrupt, qspi, Peripherals};
8use embassy_nrf::{interrupt, qspi}; 8use {defmt_rtt as _, panic_probe as _};
9
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 9
13const PAGE_SIZE: usize = 4096; 10const PAGE_SIZE: usize = 4096;
14 11
diff --git a/examples/nrf/src/bin/qspi_lowpower.rs b/examples/nrf/src/bin/qspi_lowpower.rs
index 255ce5d5e..ce2e40b23 100644
--- a/examples/nrf/src/bin/qspi_lowpower.rs
+++ b/examples/nrf/src/bin/qspi_lowpower.rs
@@ -3,14 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::mem; 5use core::mem;
6
6use defmt::{info, unwrap}; 7use defmt::{info, unwrap};
7use embassy::executor::Spawner; 8use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
9use embassy_nrf::Peripherals; 10use embassy_nrf::{interrupt, qspi, Peripherals};
10use embassy_nrf::{interrupt, qspi}; 11use {defmt_rtt as _, panic_probe as _};
11
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15// Workaround for alignment requirements. 13// Workaround for alignment requirements.
16// Nicer API will probably come in the future. 14// Nicer API will probably come in the future.
diff --git a/examples/nrf/src/bin/raw_spawn.rs b/examples/nrf/src/bin/raw_spawn.rs
index 1d9d3ed51..d564b6b26 100644
--- a/examples/nrf/src/bin/raw_spawn.rs
+++ b/examples/nrf/src/bin/raw_spawn.rs
@@ -2,15 +2,14 @@
2#![no_main] 2#![no_main]
3 3
4use core::mem; 4use core::mem;
5
5use cortex_m_rt::entry; 6use cortex_m_rt::entry;
6use defmt::{info, unwrap}; 7use defmt::{info, unwrap};
7use embassy::executor::raw::TaskStorage; 8use embassy::executor::raw::TaskStorage;
8use embassy::executor::Executor; 9use embassy::executor::Executor;
9use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
10use embassy::util::Forever; 11use embassy::util::Forever;
11 12use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 13
15async fn run1() { 14async fn run1() {
16 loop { 15 loop {
diff --git a/examples/nrf/src/bin/rng.rs b/examples/nrf/src/bin/rng.rs
index 4b4b3a19b..08d3abe10 100644
--- a/examples/nrf/src/bin/rng.rs
+++ b/examples/nrf/src/bin/rng.rs
@@ -3,13 +3,10 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use embassy::executor::Spawner; 5use embassy::executor::Spawner;
6use embassy_nrf::interrupt;
7use embassy_nrf::rng::Rng; 6use embassy_nrf::rng::Rng;
8use embassy_nrf::Peripherals; 7use embassy_nrf::{interrupt, Peripherals};
9use rand::Rng as _; 8use rand::Rng as _;
10 9use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 10
14#[embassy::main] 11#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
@@ -27,12 +24,6 @@ async fn main(_spawner: Spawner, p: Peripherals) {
27 rng.fill_bytes(&mut bytes).await; 24 rng.fill_bytes(&mut bytes).await;
28 let zero_count: u32 = bytes.iter().fold(0, |acc, val| acc + val.count_zeros()); 25 let zero_count: u32 = bytes.iter().fold(0, |acc, val| acc + val.count_zeros());
29 let one_count: u32 = bytes.iter().fold(0, |acc, val| acc + val.count_ones()); 26 let one_count: u32 = bytes.iter().fold(0, |acc, val| acc + val.count_ones());
30 defmt::info!( 27 defmt::info!("Chance of zero: {}%", zero_count * 100 / (bytes.len() as u32 * 8));
31 "Chance of zero: {}%", 28 defmt::info!("Chance of one: {}%", one_count * 100 / (bytes.len() as u32 * 8));
32 zero_count * 100 / (bytes.len() as u32 * 8)
33 );
34 defmt::info!(
35 "Chance of one: {}%",
36 one_count * 100 / (bytes.len() as u32 * 8)
37 );
38} 29}
diff --git a/examples/nrf/src/bin/saadc.rs b/examples/nrf/src/bin/saadc.rs
index 5835be31f..cb9289784 100644
--- a/examples/nrf/src/bin/saadc.rs
+++ b/examples/nrf/src/bin/saadc.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::saadc::{ChannelConfig, Config, Saadc}; 8use embassy_nrf::saadc::{ChannelConfig, Config, Saadc};
9use embassy_nrf::{interrupt, Peripherals}; 9use embassy_nrf::{interrupt, Peripherals};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, mut p: Peripherals) { 13async fn main(_spawner: Spawner, mut p: Peripherals) {
diff --git a/examples/nrf/src/bin/saadc_continuous.rs b/examples/nrf/src/bin/saadc_continuous.rs
index 5e357f79b..234294eae 100644
--- a/examples/nrf/src/bin/saadc_continuous.rs
+++ b/examples/nrf/src/bin/saadc_continuous.rs
@@ -8,9 +8,7 @@ use embassy::time::Duration;
8use embassy_nrf::saadc::{ChannelConfig, Config, Saadc, SamplerState}; 8use embassy_nrf::saadc::{ChannelConfig, Config, Saadc, SamplerState};
9use embassy_nrf::timer::Frequency; 9use embassy_nrf::timer::Frequency;
10use embassy_nrf::{interrupt, Peripherals}; 10use embassy_nrf::{interrupt, Peripherals};
11 11use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15// Demonstrates both continuous sampling and scanning multiple channels driven by a PPI linked timer 13// Demonstrates both continuous sampling and scanning multiple channels driven by a PPI linked timer
16 14
diff --git a/examples/nrf/src/bin/self_spawn.rs b/examples/nrf/src/bin/self_spawn.rs
index 35e73a8dd..4b8ac04bc 100644
--- a/examples/nrf/src/bin/self_spawn.rs
+++ b/examples/nrf/src/bin/self_spawn.rs
@@ -6,9 +6,7 @@ use defmt::{info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::Peripherals; 8use embassy_nrf::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::task(pool_size = 2)] 11#[embassy::task(pool_size = 2)]
14async fn my_task(spawner: Spawner, n: u32) { 12async fn my_task(spawner: Spawner, n: u32) {
diff --git a/examples/nrf/src/bin/self_spawn_current_executor.rs b/examples/nrf/src/bin/self_spawn_current_executor.rs
index 4850d295d..3c3379ce6 100644
--- a/examples/nrf/src/bin/self_spawn_current_executor.rs
+++ b/examples/nrf/src/bin/self_spawn_current_executor.rs
@@ -6,9 +6,7 @@ use defmt::{info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::Peripherals; 8use embassy_nrf::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::task(pool_size = 2)] 11#[embassy::task(pool_size = 2)]
14async fn my_task(n: u32) { 12async fn my_task(n: u32) {
diff --git a/examples/nrf/src/bin/spim.rs b/examples/nrf/src/bin/spim.rs
index f2a4ab388..62040168a 100644
--- a/examples/nrf/src/bin/spim.rs
+++ b/examples/nrf/src/bin/spim.rs
@@ -5,11 +5,8 @@
5use defmt::{info, unwrap}; 5use defmt::{info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::gpio::{Level, Output, OutputDrive}; 7use embassy_nrf::gpio::{Level, Output, OutputDrive};
8use embassy_nrf::Peripherals; 8use embassy_nrf::{interrupt, spim, Peripherals};
9use embassy_nrf::{interrupt, spim}; 9use {defmt_rtt as _, panic_probe as _};
10
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 10
14#[embassy::main] 11#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/temp.rs b/examples/nrf/src/bin/temp.rs
index aa807910f..939cb39e7 100644
--- a/examples/nrf/src/bin/temp.rs
+++ b/examples/nrf/src/bin/temp.rs
@@ -5,10 +5,9 @@
5use defmt::info; 5use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::{interrupt, temp::Temp, Peripherals}; 8use embassy_nrf::temp::Temp;
9 9use embassy_nrf::{interrupt, Peripherals};
10use defmt_rtt as _; // global logger 10use {defmt_rtt as _, panic_probe as _};
11use panic_probe as _;
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/timer.rs b/examples/nrf/src/bin/timer.rs
index ff8ee9a86..64376dd78 100644
--- a/examples/nrf/src/bin/timer.rs
+++ b/examples/nrf/src/bin/timer.rs
@@ -6,9 +6,7 @@ use defmt::{info, unwrap};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_nrf::Peripherals; 8use embassy_nrf::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::task] 11#[embassy::task]
14async fn run1() { 12async fn run1() {
diff --git a/examples/nrf/src/bin/twim.rs b/examples/nrf/src/bin/twim.rs
index 08c614157..fb8372a12 100644
--- a/examples/nrf/src/bin/twim.rs
+++ b/examples/nrf/src/bin/twim.rs
@@ -10,9 +10,7 @@ use defmt::*;
10use embassy::executor::Spawner; 10use embassy::executor::Spawner;
11use embassy_nrf::twim::{self, Twim}; 11use embassy_nrf::twim::{self, Twim};
12use embassy_nrf::{interrupt, Peripherals}; 12use embassy_nrf::{interrupt, Peripherals};
13 13use {defmt_rtt as _, panic_probe as _};
14use defmt_rtt as _; // global logger
15use panic_probe as _;
16 14
17const ADDRESS: u8 = 0x50; 15const ADDRESS: u8 = 0x50;
18 16
diff --git a/examples/nrf/src/bin/twim_lowpower.rs b/examples/nrf/src/bin/twim_lowpower.rs
index 45b347ea0..c9c2d503e 100644
--- a/examples/nrf/src/bin/twim_lowpower.rs
+++ b/examples/nrf/src/bin/twim_lowpower.rs
@@ -9,14 +9,13 @@
9#![feature(type_alias_impl_trait)] 9#![feature(type_alias_impl_trait)]
10 10
11use core::mem; 11use core::mem;
12
12use defmt::*; 13use defmt::*;
13use embassy::executor::Spawner; 14use embassy::executor::Spawner;
14use embassy::time::{Duration, Timer}; 15use embassy::time::{Duration, Timer};
15use embassy_nrf::twim::{self, Twim}; 16use embassy_nrf::twim::{self, Twim};
16use embassy_nrf::{interrupt, Peripherals}; 17use embassy_nrf::{interrupt, Peripherals};
17 18use {defmt_rtt as _, panic_probe as _};
18use defmt_rtt as _; // global logger
19use panic_probe as _;
20 19
21const ADDRESS: u8 = 0x50; 20const ADDRESS: u8 = 0x50;
22 21
diff --git a/examples/nrf/src/bin/uart.rs b/examples/nrf/src/bin/uart.rs
index 91f7f4fdd..c8c4a67a5 100644
--- a/examples/nrf/src/bin/uart.rs
+++ b/examples/nrf/src/bin/uart.rs
@@ -5,9 +5,7 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::{interrupt, uarte, Peripherals}; 7use embassy_nrf::{interrupt, uarte, Peripherals};
8 8use {defmt_rtt as _, panic_probe as _};
9use defmt_rtt as _; // global logger
10use panic_probe as _;
11 9
12#[embassy::main] 10#[embassy::main]
13async fn main(_spawner: Spawner, p: Peripherals) { 11async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/uart_idle.rs b/examples/nrf/src/bin/uart_idle.rs
index 89336faaf..6679b28da 100644
--- a/examples/nrf/src/bin/uart_idle.rs
+++ b/examples/nrf/src/bin/uart_idle.rs
@@ -5,9 +5,7 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_nrf::{interrupt, uarte, Peripherals}; 7use embassy_nrf::{interrupt, uarte, Peripherals};
8 8use {defmt_rtt as _, panic_probe as _};
9use defmt_rtt as _; // global logger
10use panic_probe as _;
11 9
12#[embassy::main] 10#[embassy::main]
13async fn main(_spawner: Spawner, p: Peripherals) { 11async fn main(_spawner: Spawner, p: Peripherals) {
@@ -16,9 +14,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
16 config.baudrate = uarte::Baudrate::BAUD115200; 14 config.baudrate = uarte::Baudrate::BAUD115200;
17 15
18 let irq = interrupt::take!(UARTE0_UART0); 16 let irq = interrupt::take!(UARTE0_UART0);
19 let mut uart = uarte::UarteWithIdle::new( 17 let mut uart = uarte::UarteWithIdle::new(p.UARTE0, p.TIMER0, p.PPI_CH0, p.PPI_CH1, irq, p.P0_08, p.P0_06, config);
20 p.UARTE0, p.TIMER0, p.PPI_CH0, p.PPI_CH1, irq, p.P0_08, p.P0_06, config,
21 );
22 18
23 info!("uarte initialized!"); 19 info!("uarte initialized!");
24 20
diff --git a/examples/nrf/src/bin/uart_split.rs b/examples/nrf/src/bin/uart_split.rs
index 958cfeba0..1ffb63706 100644
--- a/examples/nrf/src/bin/uart_split.rs
+++ b/examples/nrf/src/bin/uart_split.rs
@@ -9,9 +9,7 @@ use embassy::executor::Spawner;
9use embassy_nrf::peripherals::UARTE0; 9use embassy_nrf::peripherals::UARTE0;
10use embassy_nrf::uarte::UarteRx; 10use embassy_nrf::uarte::UarteRx;
11use embassy_nrf::{interrupt, uarte, Peripherals}; 11use embassy_nrf::{interrupt, uarte, Peripherals};
12 12use {defmt_rtt as _, panic_probe as _};
13use defmt_rtt as _; // global logger
14use panic_probe as _;
15 13
16static CHANNEL: Channel<ThreadModeRawMutex, [u8; 8], 1> = Channel::new(); 14static CHANNEL: Channel<ThreadModeRawMutex, [u8; 8], 1> = Channel::new();
17 15
diff --git a/examples/nrf/src/bin/usb_ethernet.rs b/examples/nrf/src/bin/usb_ethernet.rs
index 3d85d22bb..a20321fe8 100644
--- a/examples/nrf/src/bin/usb_ethernet.rs
+++ b/examples/nrf/src/bin/usb_ethernet.rs
@@ -6,6 +6,7 @@
6use core::mem; 6use core::mem;
7use core::sync::atomic::{AtomicBool, Ordering}; 7use core::sync::atomic::{AtomicBool, Ordering};
8use core::task::Waker; 8use core::task::Waker;
9
9use defmt::*; 10use defmt::*;
10use embassy::blocking_mutex::raw::ThreadModeRawMutex; 11use embassy::blocking_mutex::raw::ThreadModeRawMutex;
11use embassy::channel::mpmc::Channel; 12use embassy::channel::mpmc::Channel;
@@ -13,18 +14,13 @@ use embassy::executor::Spawner;
13use embassy::util::Forever; 14use embassy::util::Forever;
14use embassy_net::tcp::TcpSocket; 15use embassy_net::tcp::TcpSocket;
15use embassy_net::{PacketBox, PacketBoxExt, PacketBuf, Stack, StackResources}; 16use embassy_net::{PacketBox, PacketBoxExt, PacketBuf, Stack, StackResources};
16use embassy_nrf::pac;
17use embassy_nrf::rng::Rng; 17use embassy_nrf::rng::Rng;
18use embassy_nrf::usb::Driver; 18use embassy_nrf::usb::Driver;
19use embassy_nrf::Peripherals; 19use embassy_nrf::{interrupt, pac, peripherals, Peripherals};
20use embassy_nrf::{interrupt, peripherals};
21use embassy_usb::{Builder, Config, UsbDevice}; 20use embassy_usb::{Builder, Config, UsbDevice};
22use embassy_usb_ncm::{CdcNcmClass, Receiver, Sender, State}; 21use embassy_usb_ncm::{CdcNcmClass, Receiver, Sender, State};
23
24use defmt_rtt as _;
25use embedded_io::asynch::{Read, Write}; 22use embedded_io::asynch::{Read, Write};
26// global logger 23use {defmt_rtt as _, panic_probe as _};
27use panic_probe as _;
28 24
29type MyDriver = Driver<'static, peripherals::USBD>; 25type MyDriver = Driver<'static, peripherals::USBD>;
30 26
@@ -180,9 +176,7 @@ async fn main(spawner: Spawner, p: Peripherals) {
180 let seed = u64::from_le_bytes(seed); 176 let seed = u64::from_le_bytes(seed);
181 177
182 // Init network stack 178 // Init network stack
183 let device = Device { 179 let device = Device { mac_addr: our_mac_addr };
184 mac_addr: our_mac_addr,
185 };
186 let stack = &*forever!(Stack::new( 180 let stack = &*forever!(Stack::new(
187 device, 181 device,
188 config, 182 config,
diff --git a/examples/nrf/src/bin/usb_hid_keyboard.rs b/examples/nrf/src/bin/usb_hid_keyboard.rs
index 98e7dd696..97ec861d8 100644
--- a/examples/nrf/src/bin/usb_hid_keyboard.rs
+++ b/examples/nrf/src/bin/usb_hid_keyboard.rs
@@ -5,25 +5,22 @@
5 5
6use core::mem; 6use core::mem;
7use core::sync::atomic::{AtomicBool, Ordering}; 7use core::sync::atomic::{AtomicBool, Ordering};
8
8use defmt::*; 9use defmt::*;
9use embassy::channel::signal::Signal; 10use embassy::channel::signal::Signal;
10use embassy::executor::Spawner; 11use embassy::executor::Spawner;
11use embassy::time::Duration; 12use embassy::time::Duration;
12use embassy::util::{select, select3, Either, Either3}; 13use embassy::util::{select, select3, Either, Either3};
13use embassy_nrf::gpio::{Input, Pin, Pull}; 14use embassy_nrf::gpio::{Input, Pin, Pull};
14use embassy_nrf::interrupt;
15use embassy_nrf::interrupt::InterruptExt; 15use embassy_nrf::interrupt::InterruptExt;
16use embassy_nrf::pac;
17use embassy_nrf::usb::Driver; 16use embassy_nrf::usb::Driver;
18use embassy_nrf::Peripherals; 17use embassy_nrf::{interrupt, pac, Peripherals};
19use embassy_usb::control::OutResponse; 18use embassy_usb::control::OutResponse;
20use embassy_usb::{Builder, Config, DeviceStateHandler}; 19use embassy_usb::{Builder, Config, DeviceStateHandler};
21use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; 20use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State};
22use futures::future::join; 21use futures::future::join;
23use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; 22use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor};
24 23use {defmt_rtt as _, panic_probe as _};
25use defmt_rtt as _; // global logger
26use panic_probe as _;
27 24
28static ENABLE_USB: Signal<bool> = Signal::new(); 25static ENABLE_USB: Signal<bool> = Signal::new();
29static SUSPENDED: AtomicBool = AtomicBool::new(false); 26static SUSPENDED: AtomicBool = AtomicBool::new(false);
@@ -182,9 +179,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
182 power_irq.unpend(); 179 power_irq.unpend();
183 power_irq.enable(); 180 power_irq.enable();
184 181
185 power 182 power.intenset.write(|w| w.usbdetected().set().usbremoved().set());
186 .intenset
187 .write(|w| w.usbdetected().set().usbremoved().set());
188 183
189 // Run everything concurrently. 184 // Run everything concurrently.
190 // If we had made everything `'static` above instead, we could do this using separate tasks instead. 185 // If we had made everything `'static` above instead, we could do this using separate tasks instead.
@@ -260,9 +255,7 @@ impl DeviceStateHandler for MyDeviceStateHandler {
260 fn configured(&self, configured: bool) { 255 fn configured(&self, configured: bool) {
261 self.configured.store(configured, Ordering::Relaxed); 256 self.configured.store(configured, Ordering::Relaxed);
262 if configured { 257 if configured {
263 info!( 258 info!("Device configured, it may now draw up to the configured current limit from Vbus.")
264 "Device configured, it may now draw up to the configured current limit from Vbus."
265 )
266 } else { 259 } else {
267 info!("Device is no longer configured, the Vbus current limit is 100mA."); 260 info!("Device is no longer configured, the Vbus current limit is 100mA.");
268 } 261 }
@@ -275,9 +268,7 @@ impl DeviceStateHandler for MyDeviceStateHandler {
275 } else { 268 } else {
276 SUSPENDED.store(false, Ordering::Release); 269 SUSPENDED.store(false, Ordering::Release);
277 if self.configured.load(Ordering::Relaxed) { 270 if self.configured.load(Ordering::Relaxed) {
278 info!( 271 info!("Device resumed, it may now draw up to the configured current limit from Vbus");
279 "Device resumed, it may now draw up to the configured current limit from Vbus"
280 );
281 } else { 272 } else {
282 info!("Device resumed, the Vbus current limit is 100mA"); 273 info!("Device resumed, the Vbus current limit is 100mA");
283 } 274 }
diff --git a/examples/nrf/src/bin/usb_hid_mouse.rs b/examples/nrf/src/bin/usb_hid_mouse.rs
index c526c1c6f..9c44e5cc8 100644
--- a/examples/nrf/src/bin/usb_hid_mouse.rs
+++ b/examples/nrf/src/bin/usb_hid_mouse.rs
@@ -4,21 +4,18 @@
4#![feature(type_alias_impl_trait)] 4#![feature(type_alias_impl_trait)]
5 5
6use core::mem; 6use core::mem;
7
7use defmt::*; 8use defmt::*;
8use embassy::executor::Spawner; 9use embassy::executor::Spawner;
9use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
10use embassy_nrf::interrupt;
11use embassy_nrf::pac;
12use embassy_nrf::usb::Driver; 11use embassy_nrf::usb::Driver;
13use embassy_nrf::Peripherals; 12use embassy_nrf::{interrupt, pac, Peripherals};
14use embassy_usb::control::OutResponse; 13use embassy_usb::control::OutResponse;
15use embassy_usb::{Builder, Config}; 14use embassy_usb::{Builder, Config};
16use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; 15use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State};
17use futures::future::join; 16use futures::future::join;
18use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; 17use usbd_hid::descriptor::{MouseReport, SerializedDescriptor};
19 18use {defmt_rtt as _, panic_probe as _};
20use defmt_rtt as _; // global logger
21use panic_probe as _;
22 19
23#[embassy::main] 20#[embassy::main]
24async fn main(_spawner: Spawner, p: Peripherals) { 21async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/nrf/src/bin/usb_serial.rs b/examples/nrf/src/bin/usb_serial.rs
index 2551c4ba1..f108db46d 100644
--- a/examples/nrf/src/bin/usb_serial.rs
+++ b/examples/nrf/src/bin/usb_serial.rs
@@ -4,19 +4,16 @@
4#![feature(type_alias_impl_trait)] 4#![feature(type_alias_impl_trait)]
5 5
6use core::mem; 6use core::mem;
7
7use defmt::{info, panic}; 8use defmt::{info, panic};
8use embassy::executor::Spawner; 9use embassy::executor::Spawner;
9use embassy_nrf::interrupt;
10use embassy_nrf::pac;
11use embassy_nrf::usb::{Driver, Instance}; 10use embassy_nrf::usb::{Driver, Instance};
12use embassy_nrf::Peripherals; 11use embassy_nrf::{interrupt, pac, Peripherals};
13use embassy_usb::driver::EndpointError; 12use embassy_usb::driver::EndpointError;
14use embassy_usb::{Builder, Config}; 13use embassy_usb::{Builder, Config};
15use embassy_usb_serial::{CdcAcmClass, State}; 14use embassy_usb_serial::{CdcAcmClass, State};
16use futures::future::join; 15use futures::future::join;
17 16use {defmt_rtt as _, panic_probe as _};
18use defmt_rtt as _; // global logger
19use panic_probe as _;
20 17
21#[embassy::main] 18#[embassy::main]
22async fn main(_spawner: Spawner, p: Peripherals) { 19async fn main(_spawner: Spawner, p: Peripherals) {
@@ -104,9 +101,7 @@ impl From<EndpointError> for Disconnected {
104 } 101 }
105} 102}
106 103
107async fn echo<'d, T: Instance + 'd>( 104async fn echo<'d, T: Instance + 'd>(class: &mut CdcAcmClass<'d, Driver<'d, T>>) -> Result<(), Disconnected> {
108 class: &mut CdcAcmClass<'d, Driver<'d, T>>,
109) -> Result<(), Disconnected> {
110 let mut buf = [0; 64]; 105 let mut buf = [0; 64];
111 loop { 106 loop {
112 let n = class.read_packet(&mut buf).await?; 107 let n = class.read_packet(&mut buf).await?;
diff --git a/examples/nrf/src/bin/usb_serial_multitask.rs b/examples/nrf/src/bin/usb_serial_multitask.rs
index 0e82ba313..dc503e67c 100644
--- a/examples/nrf/src/bin/usb_serial_multitask.rs
+++ b/examples/nrf/src/bin/usb_serial_multitask.rs
@@ -4,19 +4,16 @@
4#![feature(type_alias_impl_trait)] 4#![feature(type_alias_impl_trait)]
5 5
6use core::mem; 6use core::mem;
7
7use defmt::{info, panic, unwrap}; 8use defmt::{info, panic, unwrap};
8use embassy::executor::Spawner; 9use embassy::executor::Spawner;
9use embassy::util::Forever; 10use embassy::util::Forever;
10use embassy_nrf::pac;
11use embassy_nrf::usb::Driver; 11use embassy_nrf::usb::Driver;
12use embassy_nrf::Peripherals; 12use embassy_nrf::{interrupt, pac, peripherals, Peripherals};
13use embassy_nrf::{interrupt, peripherals};
14use embassy_usb::driver::EndpointError; 13use embassy_usb::driver::EndpointError;
15use embassy_usb::{Builder, Config, UsbDevice}; 14use embassy_usb::{Builder, Config, UsbDevice};
16use embassy_usb_serial::{CdcAcmClass, State}; 15use embassy_usb_serial::{CdcAcmClass, State};
17 16use {defmt_rtt as _, panic_probe as _};
18use defmt_rtt as _; // global logger
19use panic_probe as _;
20 17
21type MyDriver = Driver<'static, peripherals::USBD>; 18type MyDriver = Driver<'static, peripherals::USBD>;
22 19
diff --git a/examples/nrf/src/bin/wdt.rs b/examples/nrf/src/bin/wdt.rs
index 431ccca8b..280e23bcf 100644
--- a/examples/nrf/src/bin/wdt.rs
+++ b/examples/nrf/src/bin/wdt.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_nrf::gpio::{Input, Pull}; 7use embassy_nrf::gpio::{Input, Pull};
8use embassy_nrf::wdt::{Config, Watchdog}; 8use embassy_nrf::wdt::{Config, Watchdog};
9use embassy_nrf::Peripherals; 9use embassy_nrf::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/rp/src/bin/blinky.rs b/examples/rp/src/bin/blinky.rs
index 6f199d07e..35612a4cf 100644
--- a/examples/rp/src/bin/blinky.rs
+++ b/examples/rp/src/bin/blinky.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_rp::{gpio, Peripherals}; 8use embassy_rp::{gpio, Peripherals};
9use gpio::{Level, Output}; 9use gpio::{Level, Output};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/rp/src/bin/button.rs b/examples/rp/src/bin/button.rs
index 2418ad012..980e54ea1 100644
--- a/examples/rp/src/bin/button.rs
+++ b/examples/rp/src/bin/button.rs
@@ -5,9 +5,7 @@
5use embassy::executor::Spawner; 5use embassy::executor::Spawner;
6use embassy_rp::gpio::{Input, Level, Output, Pull}; 6use embassy_rp::gpio::{Input, Level, Output, Pull};
7use embassy_rp::Peripherals; 7use embassy_rp::Peripherals;
8 8use {defmt_rtt as _, panic_probe as _};
9use defmt_rtt as _; // global logger
10use panic_probe as _;
11 9
12#[embassy::main] 10#[embassy::main]
13async fn main(_spawner: Spawner, p: Peripherals) { 11async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/rp/src/bin/spi.rs b/examples/rp/src/bin/spi.rs
index b38424363..d97aa94b3 100644
--- a/examples/rp/src/bin/spi.rs
+++ b/examples/rp/src/bin/spi.rs
@@ -4,13 +4,10 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_rp::spi;
8use embassy_rp::spi::Spi; 7use embassy_rp::spi::Spi;
9use embassy_rp::{gpio, Peripherals}; 8use embassy_rp::{gpio, spi, Peripherals};
10use gpio::{Level, Output}; 9use gpio::{Level, Output};
11 10use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 11
15#[embassy::main] 12#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/rp/src/bin/spi_display.rs b/examples/rp/src/bin/spi_display.rs
index 5c3c4c4c5..f4a411ba6 100644
--- a/examples/rp/src/bin/spi_display.rs
+++ b/examples/rp/src/bin/spi_display.rs
@@ -3,13 +3,13 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::cell::RefCell; 5use core::cell::RefCell;
6
6use defmt::*; 7use defmt::*;
7use embassy::executor::Spawner; 8use embassy::executor::Spawner;
8use embassy::time::Delay; 9use embassy::time::Delay;
9use embassy_rp::gpio::{Level, Output}; 10use embassy_rp::gpio::{Level, Output};
10use embassy_rp::spi;
11use embassy_rp::spi::Spi; 11use embassy_rp::spi::Spi;
12use embassy_rp::Peripherals; 12use embassy_rp::{spi, Peripherals};
13use embedded_graphics::image::{Image, ImageRawLE}; 13use embedded_graphics::image::{Image, ImageRawLE};
14use embedded_graphics::mono_font::ascii::FONT_10X20; 14use embedded_graphics::mono_font::ascii::FONT_10X20;
15use embedded_graphics::mono_font::MonoTextStyle; 15use embedded_graphics::mono_font::MonoTextStyle;
@@ -18,14 +18,12 @@ use embedded_graphics::prelude::*;
18use embedded_graphics::primitives::{PrimitiveStyleBuilder, Rectangle}; 18use embedded_graphics::primitives::{PrimitiveStyleBuilder, Rectangle};
19use embedded_graphics::text::Text; 19use embedded_graphics::text::Text;
20use st7789::{Orientation, ST7789}; 20use st7789::{Orientation, ST7789};
21use {defmt_rtt as _, panic_probe as _};
21 22
22use crate::my_display_interface::SPIDeviceInterface; 23use crate::my_display_interface::SPIDeviceInterface;
23use crate::shared_spi::SpiDeviceWithCs; 24use crate::shared_spi::SpiDeviceWithCs;
24use crate::touch::Touch; 25use crate::touch::Touch;
25 26
26use defmt_rtt as _; // global logger
27use panic_probe as _;
28
29//const DISPLAY_FREQ: u32 = 64_000_000; 27//const DISPLAY_FREQ: u32 = 64_000_000;
30const TOUCH_FREQ: u32 = 200_000; 28const TOUCH_FREQ: u32 = 200_000;
31 29
@@ -94,9 +92,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
94 92
95 loop { 93 loop {
96 if let Some((x, y)) = touch.read() { 94 if let Some((x, y)) = touch.read() {
97 let style = PrimitiveStyleBuilder::new() 95 let style = PrimitiveStyleBuilder::new().fill_color(Rgb565::BLUE).build();
98 .fill_color(Rgb565::BLUE)
99 .build();
100 96
101 Rectangle::new(Point::new(x - 1, y - 1), Size::new(3, 3)) 97 Rectangle::new(Point::new(x - 1, y - 1), Size::new(3, 3))
102 .into_styled(style) 98 .into_styled(style)
diff --git a/examples/rp/src/bin/uart.rs b/examples/rp/src/bin/uart.rs
index bc941dd8b..99072253a 100644
--- a/examples/rp/src/bin/uart.rs
+++ b/examples/rp/src/bin/uart.rs
@@ -4,9 +4,7 @@
4 4
5use embassy::executor::Spawner; 5use embassy::executor::Spawner;
6use embassy_rp::{uart, Peripherals}; 6use embassy_rp::{uart, Peripherals};
7 7use {defmt_rtt as _, panic_probe as _};
8use defmt_rtt as _; // global logger
9use panic_probe as _;
10 8
11#[embassy::main] 9#[embassy::main]
12async fn main(_spawner: Spawner, p: Peripherals) { 10async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/std/src/serial_port.rs b/examples/std/src/serial_port.rs
index 6825cbebc..c41abd4d0 100644
--- a/examples/std/src/serial_port.rs
+++ b/examples/std/src/serial_port.rs
@@ -1,18 +1,16 @@
1use std::io;
2use std::os::unix::io::{AsRawFd, RawFd};
3
1use nix::errno::Errno; 4use nix::errno::Errno;
2use nix::fcntl::OFlag; 5use nix::fcntl::OFlag;
3use nix::sys::termios; 6use nix::sys::termios;
4use std::io;
5use std::os::unix::io::{AsRawFd, RawFd};
6 7
7pub struct SerialPort { 8pub struct SerialPort {
8 fd: RawFd, 9 fd: RawFd,
9} 10}
10 11
11impl SerialPort { 12impl SerialPort {
12 pub fn new<P: ?Sized + nix::NixPath>( 13 pub fn new<P: ?Sized + nix::NixPath>(path: &P, baudrate: termios::BaudRate) -> io::Result<Self> {
13 path: &P,
14 baudrate: termios::BaudRate,
15 ) -> io::Result<Self> {
16 let fd = nix::fcntl::open( 14 let fd = nix::fcntl::open(
17 path, 15 path,
18 OFlag::O_RDWR | OFlag::O_NOCTTY | OFlag::O_NONBLOCK, 16 OFlag::O_RDWR | OFlag::O_NOCTTY | OFlag::O_NONBLOCK,
diff --git a/examples/std/src/tuntap.rs b/examples/std/src/tuntap.rs
index b70767a3a..a0cace7f7 100644
--- a/examples/std/src/tuntap.rs
+++ b/examples/std/src/tuntap.rs
@@ -1,9 +1,10 @@
1use async_io::Async;
2use log::*;
3use std::io; 1use std::io;
4use std::io::{Read, Write}; 2use std::io::{Read, Write};
5use std::os::unix::io::{AsRawFd, RawFd}; 3use std::os::unix::io::{AsRawFd, RawFd};
6 4
5use async_io::Async;
6use log::*;
7
7pub const SIOCGIFMTU: libc::c_ulong = 0x8921; 8pub const SIOCGIFMTU: libc::c_ulong = 0x8921;
8pub const _SIOCGIFINDEX: libc::c_ulong = 0x8933; 9pub const _SIOCGIFINDEX: libc::c_ulong = 0x8933;
9pub const _ETH_P_ALL: libc::c_short = 0x0003; 10pub const _ETH_P_ALL: libc::c_short = 0x0003;
@@ -32,11 +33,7 @@ fn ifreq_for(name: &str) -> ifreq {
32 ifreq 33 ifreq
33} 34}
34 35
35fn ifreq_ioctl( 36fn ifreq_ioctl(lower: libc::c_int, ifreq: &mut ifreq, cmd: libc::c_ulong) -> io::Result<libc::c_int> {
36 lower: libc::c_int,
37 ifreq: &mut ifreq,
38 cmd: libc::c_ulong,
39) -> io::Result<libc::c_int> {
40 unsafe { 37 unsafe {
41 let res = libc::ioctl(lower, cmd as _, ifreq as *mut ifreq); 38 let res = libc::ioctl(lower, cmd as _, ifreq as *mut ifreq);
42 if res == -1 { 39 if res == -1 {
@@ -141,11 +138,10 @@ impl TunTapDevice {
141} 138}
142 139
143use core::task::Waker; 140use core::task::Waker;
144use embassy_net::{
145 Device, DeviceCapabilities, LinkState, Packet, PacketBox, PacketBoxExt, PacketBuf,
146};
147use std::task::Context; 141use std::task::Context;
148 142
143use embassy_net::{Device, DeviceCapabilities, LinkState, Packet, PacketBox, PacketBoxExt, PacketBuf};
144
149impl Device for TunTapDevice { 145impl Device for TunTapDevice {
150 fn is_transmit_ready(&mut self) -> bool { 146 fn is_transmit_ready(&mut self) -> bool {
151 true 147 true
diff --git a/examples/stm32f0/src/bin/hello.rs b/examples/stm32f0/src/bin/hello.rs
index 975e94f34..225f1c3ae 100644
--- a/examples/stm32f0/src/bin/hello.rs
+++ b/examples/stm32f0/src/bin/hello.rs
@@ -6,9 +6,7 @@ use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9 9use {defmt_rtt as _, panic_probe as _};
10use defmt_rtt as _; // global logger
11use panic_probe as _;
12 10
13#[embassy::main] 11#[embassy::main]
14async fn main(_spawner: Spawner, _p: Peripherals) -> ! { 12async fn main(_spawner: Spawner, _p: Peripherals) -> ! {
diff --git a/examples/stm32f1/src/bin/adc.rs b/examples/stm32f1/src/bin/adc.rs
index af403423d..09904d4cc 100644
--- a/examples/stm32f1/src/bin/adc.rs
+++ b/examples/stm32f1/src/bin/adc.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
8use embassy_stm32::adc::Adc; 8use embassy_stm32::adc::Adc;
9use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f1/src/bin/blinky.rs b/examples/stm32f1/src/bin/blinky.rs
index 657bcdd1d..c98d0cdad 100644
--- a/examples/stm32f1/src/bin/blinky.rs
+++ b/examples/stm32f1/src/bin/blinky.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f1/src/bin/hello.rs b/examples/stm32f1/src/bin/hello.rs
index 8054a8993..82f11bc28 100644
--- a/examples/stm32f1/src/bin/hello.rs
+++ b/examples/stm32f1/src/bin/hello.rs
@@ -6,11 +6,8 @@ use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::{Config, Peripherals};
10use embassy_stm32::Peripherals; 10use {defmt_rtt as _, panic_probe as _};
11
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 11
15fn config() -> Config { 12fn config() -> Config {
16 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f1/src/bin/usb_serial.rs b/examples/stm32f1/src/bin/usb_serial.rs
index fe4aa4cc9..d06315d76 100644
--- a/examples/stm32f1/src/bin/usb_serial.rs
+++ b/examples/stm32f1/src/bin/usb_serial.rs
@@ -2,24 +2,18 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::panic; 5use defmt::{panic, *};
6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 6use embassy::executor::Spawner;
9use embassy::time::Duration; 7use embassy::time::{Duration, Timer};
10use embassy::time::Timer; 8use embassy_stm32::gpio::{Level, Output, Speed};
11use embassy_stm32::gpio::Level;
12use embassy_stm32::gpio::Output;
13use embassy_stm32::gpio::Speed;
14use embassy_stm32::interrupt;
15use embassy_stm32::time::Hertz; 9use embassy_stm32::time::Hertz;
16use embassy_stm32::usb::{Driver, Instance}; 10use embassy_stm32::usb::{Driver, Instance};
17use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{interrupt, Config, Peripherals};
18use embassy_usb::driver::EndpointError; 12use embassy_usb::driver::EndpointError;
19use embassy_usb::Builder; 13use embassy_usb::Builder;
20use embassy_usb_serial::{CdcAcmClass, State}; 14use embassy_usb_serial::{CdcAcmClass, State};
21use futures::future::join; 15use futures::future::join;
22use panic_probe as _; 16use {defmt_rtt as _, panic_probe as _};
23 17
24fn config() -> Config { 18fn config() -> Config {
25 let mut config = Config::default(); 19 let mut config = Config::default();
@@ -104,9 +98,7 @@ impl From<EndpointError> for Disconnected {
104 } 98 }
105} 99}
106 100
107async fn echo<'d, T: Instance + 'd>( 101async fn echo<'d, T: Instance + 'd>(class: &mut CdcAcmClass<'d, Driver<'d, T>>) -> Result<(), Disconnected> {
108 class: &mut CdcAcmClass<'d, Driver<'d, T>>,
109) -> Result<(), Disconnected> {
110 let mut buf = [0; 64]; 102 let mut buf = [0; 64];
111 loop { 103 loop {
112 let n = class.read_packet(&mut buf).await?; 104 let n = class.read_packet(&mut buf).await?;
diff --git a/examples/stm32f2/src/bin/blinky.rs b/examples/stm32f2/src/bin/blinky.rs
index 395f4df51..dd20ba85a 100644
--- a/examples/stm32f2/src/bin/blinky.rs
+++ b/examples/stm32f2/src/bin/blinky.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f2/src/bin/pll.rs b/examples/stm32f2/src/bin/pll.rs
index 4bd74f0bd..b09d64b0b 100644
--- a/examples/stm32f2/src/bin/pll.rs
+++ b/examples/stm32f2/src/bin/pll.rs
@@ -3,20 +3,16 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::convert::TryFrom; 5use core::convert::TryFrom;
6
6use defmt::*; 7use defmt::*;
7use embassy::executor::Spawner; 8use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
9use embassy_stm32::{ 10use embassy_stm32::rcc::{
10 rcc::{ 11 APBPrescaler, ClockSrc, HSEConfig, HSESrc, PLL48Div, PLLConfig, PLLMainDiv, PLLMul, PLLPreDiv, PLLSrc,
11 APBPrescaler, ClockSrc, HSEConfig, HSESrc, PLL48Div, PLLConfig, PLLMainDiv, PLLMul,
12 PLLPreDiv, PLLSrc,
13 },
14 time::Hertz,
15 Config, Peripherals,
16}; 12};
17 13use embassy_stm32::time::Hertz;
18use defmt_rtt as _; // global logger 14use embassy_stm32::{Config, Peripherals};
19use panic_probe as _; 15use {defmt_rtt as _, panic_probe as _};
20 16
21// Example config for maximum performance on a NUCLEO-F207ZG board 17// Example config for maximum performance on a NUCLEO-F207ZG board
22fn config() -> Config { 18fn config() -> Config {
diff --git a/examples/stm32f3/src/bin/blinky.rs b/examples/stm32f3/src/bin/blinky.rs
index 4b181a784..4d0b33f61 100644
--- a/examples/stm32f3/src/bin/blinky.rs
+++ b/examples/stm32f3/src/bin/blinky.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f3/src/bin/button.rs b/examples/stm32f3/src/bin/button.rs
index 207381bdd..b55bf3901 100644
--- a/examples/stm32f3/src/bin/button.rs
+++ b/examples/stm32f3/src/bin/button.rs
@@ -4,9 +4,8 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
9use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
10 9
11#[entry] 10#[entry]
12fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32f3/src/bin/button_events.rs b/examples/stm32f3/src/bin/button_events.rs
index 593701799..45862ddc6 100644
--- a/examples/stm32f3/src/bin/button_events.rs
+++ b/examples/stm32f3/src/bin/button_events.rs
@@ -19,9 +19,7 @@ use embassy_stm32::exti::ExtiInput;
19use embassy_stm32::gpio::{AnyPin, Input, Level, Output, Pin, Pull, Speed}; 19use embassy_stm32::gpio::{AnyPin, Input, Level, Output, Pin, Pull, Speed};
20use embassy_stm32::peripherals::PA0; 20use embassy_stm32::peripherals::PA0;
21use embassy_stm32::Peripherals; 21use embassy_stm32::Peripherals;
22 22use {defmt_rtt as _, panic_probe as _};
23use defmt_rtt as _; // global logger
24use panic_probe as _;
25 23
26struct Leds<'a> { 24struct Leds<'a> {
27 leds: [Output<'a, AnyPin>; 8], 25 leds: [Output<'a, AnyPin>; 8],
@@ -57,8 +55,7 @@ impl<'a> Leds<'a> {
57 self.process_event(new_message).await; 55 self.process_event(new_message).await;
58 } else { 56 } else {
59 self.leds[self.current_led].set_low(); 57 self.leds[self.current_led].set_low();
60 if let Ok(new_message) = with_timeout(Duration::from_millis(200), CHANNEL.recv()).await 58 if let Ok(new_message) = with_timeout(Duration::from_millis(200), CHANNEL.recv()).await {
61 {
62 self.process_event(new_message).await; 59 self.process_event(new_message).await;
63 } 60 }
64 } 61 }
@@ -137,22 +134,16 @@ async fn button_waiter(mut button: ExtiInput<'static, PA0>) {
137 134
138 button.wait_for_rising_edge().await; 135 button.wait_for_rising_edge().await;
139 loop { 136 loop {
140 if with_timeout( 137 if with_timeout(Duration::from_millis(HOLD_DELAY), button.wait_for_falling_edge())
141 Duration::from_millis(HOLD_DELAY), 138 .await
142 button.wait_for_falling_edge(), 139 .is_err()
143 )
144 .await
145 .is_err()
146 { 140 {
147 info!("Hold"); 141 info!("Hold");
148 CHANNEL.send(ButtonEvent::Hold).await; 142 CHANNEL.send(ButtonEvent::Hold).await;
149 button.wait_for_falling_edge().await; 143 button.wait_for_falling_edge().await;
150 } else if with_timeout( 144 } else if with_timeout(Duration::from_millis(DOUBLE_CLICK_DELAY), button.wait_for_rising_edge())
151 Duration::from_millis(DOUBLE_CLICK_DELAY), 145 .await
152 button.wait_for_rising_edge(), 146 .is_err()
153 )
154 .await
155 .is_err()
156 { 147 {
157 info!("Single click"); 148 info!("Single click");
158 CHANNEL.send(ButtonEvent::SingleClick).await; 149 CHANNEL.send(ButtonEvent::SingleClick).await;
diff --git a/examples/stm32f3/src/bin/button_exti.rs b/examples/stm32f3/src/bin/button_exti.rs
index 68d166367..add6712b4 100644
--- a/examples/stm32f3/src/bin/button_exti.rs
+++ b/examples/stm32f3/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f3/src/bin/flash.rs b/examples/stm32f3/src/bin/flash.rs
index 3890f0514..ce16f6de7 100644
--- a/examples/stm32f3/src/bin/flash.rs
+++ b/examples/stm32f3/src/bin/flash.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_stm32::flash::Flash; 7use embassy_stm32::flash::Flash;
8use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f3/src/bin/hello.rs b/examples/stm32f3/src/bin/hello.rs
index a79d6838c..3b89f1c72 100644
--- a/examples/stm32f3/src/bin/hello.rs
+++ b/examples/stm32f3/src/bin/hello.rs
@@ -6,11 +6,8 @@ use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::{Config, Peripherals};
10use embassy_stm32::Peripherals; 10use {defmt_rtt as _, panic_probe as _};
11
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 11
15fn config() -> Config { 12fn config() -> Config {
16 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f3/src/bin/multiprio.rs b/examples/stm32f3/src/bin/multiprio.rs
index 684295609..4f2cf9a6f 100644
--- a/examples/stm32f3/src/bin/multiprio.rs
+++ b/examples/stm32f3/src/bin/multiprio.rs
@@ -57,16 +57,14 @@
57#![no_main] 57#![no_main]
58#![feature(type_alias_impl_trait)] 58#![feature(type_alias_impl_trait)]
59 59
60use defmt::*;
61use defmt_rtt as _; // global logger
62use panic_probe as _;
63
64use cortex_m_rt::entry; 60use cortex_m_rt::entry;
61use defmt::*;
65use embassy::time::{Duration, Instant, Timer}; 62use embassy::time::{Duration, Instant, Timer};
66use embassy::util::Forever; 63use embassy::util::Forever;
67use embassy_stm32::executor::{Executor, InterruptExecutor}; 64use embassy_stm32::executor::{Executor, InterruptExecutor};
68use embassy_stm32::interrupt; 65use embassy_stm32::interrupt;
69use embassy_stm32::interrupt::InterruptExt; 66use embassy_stm32::interrupt::InterruptExt;
67use {defmt_rtt as _, panic_probe as _};
70 68
71#[embassy::task] 69#[embassy::task]
72async fn run_high() { 70async fn run_high() {
diff --git a/examples/stm32f3/src/bin/spi_dma.rs b/examples/stm32f3/src/bin/spi_dma.rs
index 6d80c4087..ece1ae6fe 100644
--- a/examples/stm32f3/src/bin/spi_dma.rs
+++ b/examples/stm32f3/src/bin/spi_dma.rs
@@ -4,14 +4,14 @@
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6use core::str::from_utf8; 6use core::str::from_utf8;
7
7use defmt::*; 8use defmt::*;
8use defmt_rtt as _; // global logger
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::spi::{Config, Spi}; 10use embassy_stm32::spi::{Config, Spi};
11use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
12use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
13use heapless::String; 13use heapless::String;
14use panic_probe as _; 14use {defmt_rtt as _, panic_probe as _};
15 15
16#[embassy::main] 16#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
@@ -32,9 +32,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
32 let mut write: String<128> = String::new(); 32 let mut write: String<128> = String::new();
33 let mut read = [0; 128]; 33 let mut read = [0; 128];
34 core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap(); 34 core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap();
35 spi.transfer(&mut read[0..write.len()], write.as_bytes()) 35 spi.transfer(&mut read[0..write.len()], write.as_bytes()).await.ok();
36 .await
37 .ok();
38 info!("read via spi+dma: {}", from_utf8(&read).unwrap()); 36 info!("read via spi+dma: {}", from_utf8(&read).unwrap());
39 } 37 }
40} 38}
diff --git a/examples/stm32f3/src/bin/usart_dma.rs b/examples/stm32f3/src/bin/usart_dma.rs
index 859749eb7..4660f812e 100644
--- a/examples/stm32f3/src/bin/usart_dma.rs
+++ b/examples/stm32f3/src/bin/usart_dma.rs
@@ -3,14 +3,14 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6
6use defmt::*; 7use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use heapless::String; 12use heapless::String;
13use panic_probe as _; 13use {defmt_rtt as _, panic_probe as _};
14 14
15#[embassy::main] 15#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 16async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f3/src/bin/usb_serial.rs b/examples/stm32f3/src/bin/usb_serial.rs
index fc33d0bc7..8a76d4546 100644
--- a/examples/stm32f3/src/bin/usb_serial.rs
+++ b/examples/stm32f3/src/bin/usb_serial.rs
@@ -2,24 +2,18 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::panic; 5use defmt::{panic, *};
6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 6use embassy::executor::Spawner;
9use embassy::time::Duration; 7use embassy::time::{Duration, Timer};
10use embassy::time::Timer; 8use embassy_stm32::gpio::{Level, Output, Speed};
11use embassy_stm32::gpio::Level;
12use embassy_stm32::gpio::Output;
13use embassy_stm32::gpio::Speed;
14use embassy_stm32::interrupt;
15use embassy_stm32::time::U32Ext; 9use embassy_stm32::time::U32Ext;
16use embassy_stm32::usb::{Driver, Instance}; 10use embassy_stm32::usb::{Driver, Instance};
17use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{interrupt, Config, Peripherals};
18use embassy_usb::driver::EndpointError; 12use embassy_usb::driver::EndpointError;
19use embassy_usb::Builder; 13use embassy_usb::Builder;
20use embassy_usb_serial::{CdcAcmClass, State}; 14use embassy_usb_serial::{CdcAcmClass, State};
21use futures::future::join; 15use futures::future::join;
22use panic_probe as _; 16use {defmt_rtt as _, panic_probe as _};
23 17
24fn config() -> Config { 18fn config() -> Config {
25 let mut config = Config::default(); 19 let mut config = Config::default();
@@ -103,9 +97,7 @@ impl From<EndpointError> for Disconnected {
103 } 97 }
104} 98}
105 99
106async fn echo<'d, T: Instance + 'd>( 100async fn echo<'d, T: Instance + 'd>(class: &mut CdcAcmClass<'d, Driver<'d, T>>) -> Result<(), Disconnected> {
107 class: &mut CdcAcmClass<'d, Driver<'d, T>>,
108) -> Result<(), Disconnected> {
109 let mut buf = [0; 64]; 101 let mut buf = [0; 64];
110 loop { 102 loop {
111 let n = class.read_packet(&mut buf).await?; 103 let n = class.read_packet(&mut buf).await?;
diff --git a/examples/stm32f4/src/bin/adc.rs b/examples/stm32f4/src/bin/adc.rs
index f0b1ad232..84ddbfd3c 100644
--- a/examples/stm32f4/src/bin/adc.rs
+++ b/examples/stm32f4/src/bin/adc.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
11use embassy_stm32::adc::Adc; 8use embassy_stm32::adc::Adc;
12use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f4/src/bin/blinky.rs b/examples/stm32f4/src/bin/blinky.rs
index 8b85ca96d..907492b3d 100644
--- a/examples/stm32f4/src/bin/blinky.rs
+++ b/examples/stm32f4/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f4/src/bin/button.rs b/examples/stm32f4/src/bin/button.rs
index 4f9af7fbd..b13e64531 100644
--- a/examples/stm32f4/src/bin/button.rs
+++ b/examples/stm32f4/src/bin/button.rs
@@ -4,9 +4,8 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
9use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
10 9
11#[entry] 10#[entry]
12fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32f4/src/bin/button_exti.rs b/examples/stm32f4/src/bin/button_exti.rs
index 78f2e6ee2..24ece9927 100644
--- a/examples/stm32f4/src/bin/button_exti.rs
+++ b/examples/stm32f4/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f4/src/bin/can.rs b/examples/stm32f4/src/bin/can.rs
index 0f41d6860..8abce87a2 100644
--- a/examples/stm32f4/src/bin/can.rs
+++ b/examples/stm32f4/src/bin/can.rs
@@ -2,15 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use cortex_m_rt::entry; 5use cortex_m_rt::entry;
9use defmt::*; 6use defmt::*;
10use embassy_stm32::can::bxcan::filter::Mask32; 7use embassy_stm32::can::bxcan::filter::Mask32;
11use embassy_stm32::can::bxcan::{Frame, StandardId}; 8use embassy_stm32::can::bxcan::{Frame, StandardId};
12use embassy_stm32::can::Can; 9use embassy_stm32::can::Can;
13use embassy_stm32::gpio::{Input, Pull}; 10use embassy_stm32::gpio::{Input, Pull};
11use {defmt_rtt as _, panic_probe as _};
14 12
15#[entry] 13#[entry]
16fn main() -> ! { 14fn main() -> ! {
diff --git a/examples/stm32f4/src/bin/hello.rs b/examples/stm32f4/src/bin/hello.rs
index 92d87cedf..8e69e89d1 100644
--- a/examples/stm32f4/src/bin/hello.rs
+++ b/examples/stm32f4/src/bin/hello.rs
@@ -6,11 +6,8 @@ use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::{Config, Peripherals};
10use embassy_stm32::Peripherals; 10use {defmt_rtt as _, panic_probe as _};
11
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 11
15fn config() -> Config { 12fn config() -> Config {
16 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f4/src/bin/multiprio.rs b/examples/stm32f4/src/bin/multiprio.rs
index 684295609..4f2cf9a6f 100644
--- a/examples/stm32f4/src/bin/multiprio.rs
+++ b/examples/stm32f4/src/bin/multiprio.rs
@@ -57,16 +57,14 @@
57#![no_main] 57#![no_main]
58#![feature(type_alias_impl_trait)] 58#![feature(type_alias_impl_trait)]
59 59
60use defmt::*;
61use defmt_rtt as _; // global logger
62use panic_probe as _;
63
64use cortex_m_rt::entry; 60use cortex_m_rt::entry;
61use defmt::*;
65use embassy::time::{Duration, Instant, Timer}; 62use embassy::time::{Duration, Instant, Timer};
66use embassy::util::Forever; 63use embassy::util::Forever;
67use embassy_stm32::executor::{Executor, InterruptExecutor}; 64use embassy_stm32::executor::{Executor, InterruptExecutor};
68use embassy_stm32::interrupt; 65use embassy_stm32::interrupt;
69use embassy_stm32::interrupt::InterruptExt; 66use embassy_stm32::interrupt::InterruptExt;
67use {defmt_rtt as _, panic_probe as _};
70 68
71#[embassy::task] 69#[embassy::task]
72async fn run_high() { 70async fn run_high() {
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs
index eab0fad4a..b08d26f49 100644
--- a/examples/stm32f4/src/bin/sdmmc.rs
+++ b/examples/stm32f4/src/bin/sdmmc.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
11use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::U32Ext;
12use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _};
13 11
14fn config() -> Config { 12fn config() -> Config {
15 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f4/src/bin/spi.rs b/examples/stm32f4/src/bin/spi.rs
index 69be81432..05b48f478 100644
--- a/examples/stm32f4/src/bin/spi.rs
+++ b/examples/stm32f4/src/bin/spi.rs
@@ -2,15 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use cortex_m_rt::entry; 5use cortex_m_rt::entry;
9use defmt::*; 6use defmt::*;
10use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
11use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
12use embassy_stm32::spi::{Config, Spi}; 9use embassy_stm32::spi::{Config, Spi};
13use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
11use {defmt_rtt as _, panic_probe as _};
14 12
15#[entry] 13#[entry]
16fn main() -> ! { 14fn main() -> ! {
diff --git a/examples/stm32f4/src/bin/spi_dma.rs b/examples/stm32f4/src/bin/spi_dma.rs
index 1bf9b856d..f3c0f2cd5 100644
--- a/examples/stm32f4/src/bin/spi_dma.rs
+++ b/examples/stm32f4/src/bin/spi_dma.rs
@@ -4,14 +4,14 @@
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6use core::str::from_utf8; 6use core::str::from_utf8;
7
7use defmt::*; 8use defmt::*;
8use defmt_rtt as _; // global logger
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::spi::{Config, Spi}; 10use embassy_stm32::spi::{Config, Spi};
11use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
12use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
13use heapless::String; 13use heapless::String;
14use panic_probe as _; 14use {defmt_rtt as _, panic_probe as _};
15 15
16#[embassy::main] 16#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
@@ -32,9 +32,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
32 let mut write: String<128> = String::new(); 32 let mut write: String<128> = String::new();
33 let mut read = [0; 128]; 33 let mut read = [0; 128];
34 core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap(); 34 core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap();
35 spi.transfer(&mut read[0..write.len()], write.as_bytes()) 35 spi.transfer(&mut read[0..write.len()], write.as_bytes()).await.ok();
36 .await
37 .ok();
38 info!("read via spi+dma: {}", from_utf8(&read).unwrap()); 36 info!("read via spi+dma: {}", from_utf8(&read).unwrap());
39 } 37 }
40} 38}
diff --git a/examples/stm32f4/src/bin/usart.rs b/examples/stm32f4/src/bin/usart.rs
index a302667e2..90ad882b8 100644
--- a/examples/stm32f4/src/bin/usart.rs
+++ b/examples/stm32f4/src/bin/usart.rs
@@ -4,10 +4,9 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
9use embassy_stm32::usart::{Config, Uart}; 8use embassy_stm32::usart::{Config, Uart};
10use panic_probe as _; 9use {defmt_rtt as _, panic_probe as _};
11 10
12#[entry] 11#[entry]
13fn main() -> ! { 12fn main() -> ! {
diff --git a/examples/stm32f4/src/bin/usart_buffered.rs b/examples/stm32f4/src/bin/usart_buffered.rs
index 2a613ee4f..039e43bd2 100644
--- a/examples/stm32f4/src/bin/usart_buffered.rs
+++ b/examples/stm32f4/src/bin/usart_buffered.rs
@@ -3,13 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
9use embassy_stm32::usart::{BufferedUart, Config, State, Uart}; 8use embassy_stm32::usart::{BufferedUart, Config, State, Uart};
10use embassy_stm32::{interrupt, Peripherals}; 9use embassy_stm32::{interrupt, Peripherals};
11use embedded_io::asynch::BufRead; 10use embedded_io::asynch::BufRead;
12use panic_probe as _; 11use {defmt_rtt as _, panic_probe as _};
13 12
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f4/src/bin/usart_dma.rs b/examples/stm32f4/src/bin/usart_dma.rs
index cf45b71c5..8d06f8439 100644
--- a/examples/stm32f4/src/bin/usart_dma.rs
+++ b/examples/stm32f4/src/bin/usart_dma.rs
@@ -3,14 +3,14 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6
6use defmt::*; 7use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use heapless::String; 12use heapless::String;
13use panic_probe as _; 13use {defmt_rtt as _, panic_probe as _};
14 14
15#[embassy::main] 15#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 16async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f7/build.rs b/examples/stm32f7/build.rs
index b72dd55ec..c4e15f19c 100644
--- a/examples/stm32f7/build.rs
+++ b/examples/stm32f7/build.rs
@@ -1,7 +1,8 @@
1//! adapted from https://github.com/stm32-rs/stm32f7xx-hal/blob/master/build.rs 1//! adapted from https://github.com/stm32-rs/stm32f7xx-hal/blob/master/build.rs
2use std::env; 2use std::env;
3use std::fs::File; 3use std::fs::File;
4use std::io::{self, prelude::*}; 4use std::io::prelude::*;
5use std::io::{self};
5use std::path::PathBuf; 6use std::path::PathBuf;
6 7
7#[derive(Debug)] 8#[derive(Debug)]
diff --git a/examples/stm32f7/src/bin/adc.rs b/examples/stm32f7/src/bin/adc.rs
index 87f5d30dd..fc8359622 100644
--- a/examples/stm32f7/src/bin/adc.rs
+++ b/examples/stm32f7/src/bin/adc.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
11use embassy_stm32::adc::Adc; 8use embassy_stm32::adc::Adc;
12use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f7/src/bin/blinky.rs b/examples/stm32f7/src/bin/blinky.rs
index 8b85ca96d..907492b3d 100644
--- a/examples/stm32f7/src/bin/blinky.rs
+++ b/examples/stm32f7/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f7/src/bin/button.rs b/examples/stm32f7/src/bin/button.rs
index 4f9af7fbd..b13e64531 100644
--- a/examples/stm32f7/src/bin/button.rs
+++ b/examples/stm32f7/src/bin/button.rs
@@ -4,9 +4,8 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
9use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
10 9
11#[entry] 10#[entry]
12fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32f7/src/bin/button_exti.rs b/examples/stm32f7/src/bin/button_exti.rs
index 78f2e6ee2..24ece9927 100644
--- a/examples/stm32f7/src/bin/button_exti.rs
+++ b/examples/stm32f7/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index af012f826..dc0b3c605 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -13,13 +13,10 @@ use embassy_stm32::eth::{Ethernet, State};
13use embassy_stm32::peripherals::ETH; 13use embassy_stm32::peripherals::ETH;
14use embassy_stm32::rng::Rng; 14use embassy_stm32::rng::Rng;
15use embassy_stm32::time::U32Ext; 15use embassy_stm32::time::U32Ext;
16use embassy_stm32::Config; 16use embassy_stm32::{interrupt, Config, Peripherals};
17use embassy_stm32::{interrupt, Peripherals};
18use embedded_io::asynch::Write; 17use embedded_io::asynch::Write;
19
20use defmt_rtt as _; // global logger
21use panic_probe as _;
22use rand_core::RngCore; 18use rand_core::RngCore;
19use {defmt_rtt as _, panic_probe as _};
23 20
24macro_rules! forever { 21macro_rules! forever {
25 ($val:expr) => {{ 22 ($val:expr) => {{
diff --git a/examples/stm32f7/src/bin/flash.rs b/examples/stm32f7/src/bin/flash.rs
index 9eb8e4b94..af66275d4 100644
--- a/examples/stm32f7/src/bin/flash.rs
+++ b/examples/stm32f7/src/bin/flash.rs
@@ -8,9 +8,7 @@ use embassy::time::{Duration, Timer};
8use embassy_stm32::flash::Flash; 8use embassy_stm32::flash::Flash;
9use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 10use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
11 11use {defmt_rtt as _, panic_probe as _};
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 12
15#[embassy::main] 13#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
@@ -40,8 +38,8 @@ async fn main(_spawner: Spawner, p: Peripherals) {
40 unwrap!(f.write( 38 unwrap!(f.write(
41 ADDR, 39 ADDR,
42 &[ 40 &[
43 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 41 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
44 25, 26, 27, 28, 29, 30, 31, 32 42 30, 31, 32
45 ] 43 ]
46 )); 44 ));
47 45
@@ -52,8 +50,8 @@ async fn main(_spawner: Spawner, p: Peripherals) {
52 assert_eq!( 50 assert_eq!(
53 &buf[..], 51 &buf[..],
54 &[ 52 &[
55 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 53 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
56 25, 26, 27, 28, 29, 30, 31, 32 54 30, 31, 32
57 ] 55 ]
58 ); 56 );
59} 57}
diff --git a/examples/stm32f7/src/bin/hello.rs b/examples/stm32f7/src/bin/hello.rs
index 92d87cedf..8e69e89d1 100644
--- a/examples/stm32f7/src/bin/hello.rs
+++ b/examples/stm32f7/src/bin/hello.rs
@@ -6,11 +6,8 @@ use defmt::info;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::{Config, Peripherals};
10use embassy_stm32::Peripherals; 10use {defmt_rtt as _, panic_probe as _};
11
12use defmt_rtt as _; // global logger
13use panic_probe as _;
14 11
15fn config() -> Config { 12fn config() -> Config {
16 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f7/src/bin/sdmmc.rs b/examples/stm32f7/src/bin/sdmmc.rs
index dae07c303..1af1061ba 100644
--- a/examples/stm32f7/src/bin/sdmmc.rs
+++ b/examples/stm32f7/src/bin/sdmmc.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
11use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::U32Ext;
12use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _};
13 11
14fn config() -> Config { 12fn config() -> Config {
15 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32f7/src/bin/usart_dma.rs b/examples/stm32f7/src/bin/usart_dma.rs
index 69fa21a0d..d8551620c 100644
--- a/examples/stm32f7/src/bin/usart_dma.rs
+++ b/examples/stm32f7/src/bin/usart_dma.rs
@@ -3,15 +3,14 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6
6use defmt::*; 7use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use panic_probe as _;
13
14use heapless::String; 12use heapless::String;
13use {defmt_rtt as _, panic_probe as _};
15 14
16#[embassy::main] 15#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) { 16async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32g0/src/bin/blinky.rs b/examples/stm32g0/src/bin/blinky.rs
index 8b85ca96d..907492b3d 100644
--- a/examples/stm32g0/src/bin/blinky.rs
+++ b/examples/stm32g0/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32g0/src/bin/button.rs b/examples/stm32g0/src/bin/button.rs
index 78d7ba1f2..72a3f5cbf 100644
--- a/examples/stm32g0/src/bin/button.rs
+++ b/examples/stm32g0/src/bin/button.rs
@@ -4,9 +4,8 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::gpio::{Input, Pull}; 7use embassy_stm32::gpio::{Input, Pull};
9use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
10 9
11#[entry] 10#[entry]
12fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32g0/src/bin/button_exti.rs b/examples/stm32g0/src/bin/button_exti.rs
index 4b1cadcb5..924feeb33 100644
--- a/examples/stm32g0/src/bin/button_exti.rs
+++ b/examples/stm32g0/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32g4/src/bin/blinky.rs b/examples/stm32g4/src/bin/blinky.rs
index 92ec2b579..cd4883276 100644
--- a/examples/stm32g4/src/bin/blinky.rs
+++ b/examples/stm32g4/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32g4/src/bin/button.rs b/examples/stm32g4/src/bin/button.rs
index f6c981309..15abd86d9 100644
--- a/examples/stm32g4/src/bin/button.rs
+++ b/examples/stm32g4/src/bin/button.rs
@@ -4,9 +4,8 @@
4 4
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy_stm32::gpio::{Input, Pull}; 7use embassy_stm32::gpio::{Input, Pull};
9use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
10 9
11#[entry] 10#[entry]
12fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32g4/src/bin/button_exti.rs b/examples/stm32g4/src/bin/button_exti.rs
index 78f2e6ee2..24ece9927 100644
--- a/examples/stm32g4/src/bin/button_exti.rs
+++ b/examples/stm32g4/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32g4/src/bin/pwm.rs b/examples/stm32g4/src/bin/pwm.rs
index 3770f6f36..525b6001f 100644
--- a/examples/stm32g4/src/bin/pwm.rs
+++ b/examples/stm32g4/src/bin/pwm.rs
@@ -3,13 +3,13 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::pwm::{simple_pwm::SimplePwm, Channel}; 8use embassy_stm32::pwm::simple_pwm::SimplePwm;
9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::U32Ext;
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use panic_probe as _; 12use {defmt_rtt as _, panic_probe as _};
13 13
14#[embassy::main] 14#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32h7/src/bin/adc.rs b/examples/stm32h7/src/bin/adc.rs
index b12bca307..e24390741 100644
--- a/examples/stm32h7/src/bin/adc.rs
+++ b/examples/stm32h7/src/bin/adc.rs
@@ -2,16 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*;
5use embassy::executor::Spawner; 6use embassy::executor::Spawner;
6use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
7use embassy_stm32::adc::{Adc, SampleTime}; 8use embassy_stm32::adc::{Adc, SampleTime};
8use embassy_stm32::rcc::AdcClockSource; 9use embassy_stm32::rcc::AdcClockSource;
9use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::U32Ext;
10use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{Config, Peripherals};
11 12use {defmt_rtt as _, panic_probe as _};
12use defmt::*;
13use defmt_rtt as _; // global logger
14use panic_probe as _;
15 13
16pub fn config() -> Config { 14pub fn config() -> Config {
17 let mut config = Config::default(); 15 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/blinky.rs b/examples/stm32h7/src/bin/blinky.rs
index 2329125a6..7982f4a0b 100644
--- a/examples/stm32h7/src/bin/blinky.rs
+++ b/examples/stm32h7/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32h7/src/bin/button_exti.rs b/examples/stm32h7/src/bin/button_exti.rs
index 78f2e6ee2..24ece9927 100644
--- a/examples/stm32h7/src/bin/button_exti.rs
+++ b/examples/stm32h7/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32h7/src/bin/camera.rs b/examples/stm32h7/src/bin/camera.rs
index 3311ba858..918eab659 100644
--- a/examples/stm32h7/src/bin/camera.rs
+++ b/examples/stm32h7/src/bin/camera.rs
@@ -7,14 +7,10 @@ use embassy::time::{Duration, Timer};
7use embassy_stm32::dcmi::{self, *}; 7use embassy_stm32::dcmi::{self, *};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::i2c::I2c; 9use embassy_stm32::i2c::I2c;
10use embassy_stm32::interrupt;
11use embassy_stm32::rcc::{Mco, Mco1Source, McoClock}; 10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock};
12use embassy_stm32::time::U32Ext; 11use embassy_stm32::time::U32Ext;
13use embassy_stm32::Config; 12use embassy_stm32::{interrupt, Config, Peripherals};
14use embassy_stm32::Peripherals; 13use {defmt_rtt as _, panic_probe as _};
15
16use defmt_rtt as _; // global logger
17use panic_probe as _;
18 14
19#[allow(unused)] 15#[allow(unused)]
20pub fn config() -> Config { 16pub fn config() -> Config {
@@ -43,15 +39,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
43 39
44 let mut led = Output::new(p.PE3, Level::High, Speed::Low); 40 let mut led = Output::new(p.PE3, Level::High, Speed::Low);
45 let i2c_irq = interrupt::take!(I2C1_EV); 41 let i2c_irq = interrupt::take!(I2C1_EV);
46 let cam_i2c = I2c::new( 42 let cam_i2c = I2c::new(p.I2C1, p.PB8, p.PB9, i2c_irq, p.DMA1_CH1, p.DMA1_CH2, 100u32.khz());
47 p.I2C1,
48 p.PB8,
49 p.PB9,
50 i2c_irq,
51 p.DMA1_CH1,
52 p.DMA1_CH2,
53 100u32.khz(),
54 );
55 43
56 let mut camera = Ov7725::new(cam_i2c, mco); 44 let mut camera = Ov7725::new(cam_i2c, mco);
57 45
@@ -60,17 +48,13 @@ async fn main(_spawner: Spawner, p: Peripherals) {
60 let manufacturer_id = defmt::unwrap!(camera.read_manufacturer_id().await); 48 let manufacturer_id = defmt::unwrap!(camera.read_manufacturer_id().await);
61 let camera_id = defmt::unwrap!(camera.read_product_id().await); 49 let camera_id = defmt::unwrap!(camera.read_product_id().await);
62 50
63 defmt::info!( 51 defmt::info!("manufacturer: 0x{:x}, pid: 0x{:x}", manufacturer_id, camera_id);
64 "manufacturer: 0x{:x}, pid: 0x{:x}",
65 manufacturer_id,
66 camera_id
67 );
68 52
69 let dcmi_irq = interrupt::take!(DCMI); 53 let dcmi_irq = interrupt::take!(DCMI);
70 let config = dcmi::Config::default(); 54 let config = dcmi::Config::default();
71 let mut dcmi = Dcmi::new_8bit( 55 let mut dcmi = Dcmi::new_8bit(
72 p.DCMI, p.DMA1_CH0, dcmi_irq, p.PC6, p.PC7, p.PE0, p.PE1, p.PE4, p.PD3, p.PE5, p.PE6, 56 p.DCMI, p.DMA1_CH0, dcmi_irq, p.PC6, p.PC7, p.PE0, p.PE1, p.PE4, p.PD3, p.PE5, p.PE6, p.PB7, p.PA4, p.PA6,
73 p.PB7, p.PA4, p.PA6, config, 57 config,
74 ); 58 );
75 59
76 defmt::info!("attempting capture"); 60 defmt::info!("attempting capture");
@@ -258,10 +242,8 @@ mod ov7725 {
258 let com3 = self.read(Register::Com3).await?; 242 let com3 = self.read(Register::Com3).await?;
259 let vflip = com3 & 0x80 > 0; 243 let vflip = com3 & 0x80 > 0;
260 244
261 self.modify(Register::HRef, |reg| { 245 self.modify(Register::HRef, |reg| reg & 0xbf | if vflip { 0x40 } else { 0x40 })
262 reg & 0xbf | if vflip { 0x40 } else { 0x40 } 246 .await?;
263 })
264 .await?;
265 247
266 if horizontal <= 320 || vertical <= 240 { 248 if horizontal <= 320 || vertical <= 240 {
267 self.write(Register::HStart, 0x3f).await?; 249 self.write(Register::HStart, 0x3f).await?;
@@ -291,11 +273,7 @@ mod ov7725 {
291 .map_err(Error::I2c) 273 .map_err(Error::I2c)
292 } 274 }
293 275
294 async fn modify<F: FnOnce(u8) -> u8>( 276 async fn modify<F: FnOnce(u8) -> u8>(&mut self, register: Register, f: F) -> Result<(), Error<Bus::Error>> {
295 &mut self,
296 register: Register,
297 f: F,
298 ) -> Result<(), Error<Bus::Error>> {
299 let value = self.read(register).await?; 277 let value = self.read(register).await?;
300 let value = f(value); 278 let value = f(value);
301 self.write(register, value).await 279 self.write(register, value).await
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs
index 86c874a6a..8ed33350c 100644
--- a/examples/stm32h7/src/bin/dac.rs
+++ b/examples/stm32h7/src/bin/dac.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use cortex_m_rt::entry; 5use cortex_m_rt::entry;
9use defmt::*; 6use defmt::*;
10use embassy_stm32::dac::{Channel, Dac, Value}; 7use embassy_stm32::dac::{Channel, Dac, Value};
11use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::U32Ext;
12use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _};
13 11
14pub fn config() -> Config { 12pub fn config() -> Config {
15 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index 649ff2605..6dabadc4b 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -13,13 +13,10 @@ use embassy_stm32::eth::{Ethernet, State};
13use embassy_stm32::peripherals::ETH; 13use embassy_stm32::peripherals::ETH;
14use embassy_stm32::rng::Rng; 14use embassy_stm32::rng::Rng;
15use embassy_stm32::time::U32Ext; 15use embassy_stm32::time::U32Ext;
16use embassy_stm32::Config; 16use embassy_stm32::{interrupt, Config, Peripherals};
17use embassy_stm32::{interrupt, Peripherals};
18use embedded_io::asynch::Write; 17use embedded_io::asynch::Write;
19
20use defmt_rtt as _; // global logger
21use panic_probe as _;
22use rand_core::RngCore; 18use rand_core::RngCore;
19use {defmt_rtt as _, panic_probe as _};
23 20
24macro_rules! forever { 21macro_rules! forever {
25 ($val:expr) => {{ 22 ($val:expr) => {{
diff --git a/examples/stm32h7/src/bin/flash.rs b/examples/stm32h7/src/bin/flash.rs
index b008c0884..5f97d2b31 100644
--- a/examples/stm32h7/src/bin/flash.rs
+++ b/examples/stm32h7/src/bin/flash.rs
@@ -3,13 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::{info, unwrap}; 5use defmt::{info, unwrap};
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::flash::Flash; 8use embassy_stm32::flash::Flash;
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 10use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
12use panic_probe as _; 11use {defmt_rtt as _, panic_probe as _};
13 12
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
@@ -39,8 +38,8 @@ async fn main(_spawner: Spawner, p: Peripherals) {
39 unwrap!(f.write( 38 unwrap!(f.write(
40 ADDR, 39 ADDR,
41 &[ 40 &[
42 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 41 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
43 25, 26, 27, 28, 29, 30, 31, 32 42 30, 31, 32
44 ] 43 ]
45 )); 44 ));
46 45
@@ -51,8 +50,8 @@ async fn main(_spawner: Spawner, p: Peripherals) {
51 assert_eq!( 50 assert_eq!(
52 &buf[..], 51 &buf[..],
53 &[ 52 &[
54 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 53 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
55 25, 26, 27, 28, 29, 30, 31, 32 54 30, 31, 32
56 ] 55 ]
57 ); 56 );
58} 57}
diff --git a/examples/stm32h7/src/bin/fmc.rs b/examples/stm32h7/src/bin/fmc.rs
index ba8215d6a..2f55479c1 100644
--- a/examples/stm32h7/src/bin/fmc.rs
+++ b/examples/stm32h7/src/bin/fmc.rs
@@ -3,14 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
9use embassy_stm32::fmc::Fmc; 8use embassy_stm32::fmc::Fmc;
10use embassy_stm32::time::U32Ext; 9use embassy_stm32::time::U32Ext;
11use embassy_stm32::Config; 10use embassy_stm32::{Config, Peripherals};
12use embassy_stm32::Peripherals; 11use {defmt_rtt as _, panic_probe as _};
13use panic_probe as _;
14 12
15pub fn config() -> Config { 13pub fn config() -> Config {
16 let mut config = Config::default(); 14 let mut config = Config::default();
@@ -62,16 +60,8 @@ async fn main(_spawner: Spawner, p: Peripherals) {
62 const REGION_WRITE_BACK: u32 = 0x01; 60 const REGION_WRITE_BACK: u32 = 0x01;
63 const REGION_ENABLE: u32 = 0x01; 61 const REGION_ENABLE: u32 = 0x01;
64 62
65 crate::assert_eq!( 63 crate::assert_eq!(size & (size - 1), 0, "SDRAM memory region size must be a power of 2");
66 size & (size - 1), 64 crate::assert_eq!(size & 0x1F, 0, "SDRAM memory region size must be 32 bytes or more");
67 0,
68 "SDRAM memory region size must be a power of 2"
69 );
70 crate::assert_eq!(
71 size & 0x1F,
72 0,
73 "SDRAM memory region size must be 32 bytes or more"
74 );
75 fn log2minus1(sz: u32) -> u32 { 65 fn log2minus1(sz: u32) -> u32 {
76 for i in 5..=31 { 66 for i in 5..=31 {
77 if sz == (1 << i) { 67 if sz == (1 << i) {
@@ -104,8 +94,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
104 94
105 // Enable 95 // Enable
106 unsafe { 96 unsafe {
107 mpu.ctrl 97 mpu.ctrl.modify(|r| r | MPU_DEFAULT_MMAP_FOR_PRIVILEGED | MPU_ENABLE);
108 .modify(|r| r | MPU_DEFAULT_MMAP_FOR_PRIVILEGED | MPU_ENABLE);
109 98
110 scb.shcsr.modify(|r| r | MEMFAULTENA); 99 scb.shcsr.modify(|r| r | MEMFAULTENA);
111 100
diff --git a/examples/stm32h7/src/bin/low_level_timer_api.rs b/examples/stm32h7/src/bin/low_level_timer_api.rs
index 647c5a8fa..3a728a0dd 100644
--- a/examples/stm32h7/src/bin/low_level_timer_api.rs
+++ b/examples/stm32h7/src/bin/low_level_timer_api.rs
@@ -3,8 +3,6 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::marker::PhantomData; 5use core::marker::PhantomData;
6use defmt_rtt as _; // global logger
7use panic_probe as _;
8 6
9use defmt::*; 7use defmt::*;
10use embassy::executor::Spawner; 8use embassy::executor::Spawner;
@@ -13,9 +11,8 @@ use embassy_stm32::gpio::low_level::AFType;
13use embassy_stm32::gpio::Speed; 11use embassy_stm32::gpio::Speed;
14use embassy_stm32::pwm::*; 12use embassy_stm32::pwm::*;
15use embassy_stm32::time::{Hertz, U32Ext}; 13use embassy_stm32::time::{Hertz, U32Ext};
16use embassy_stm32::unborrow; 14use embassy_stm32::{unborrow, Config, Peripherals, Unborrow};
17use embassy_stm32::Unborrow; 15use {defmt_rtt as _, panic_probe as _};
18use embassy_stm32::{Config, Peripherals};
19 16
20pub fn config() -> Config { 17pub fn config() -> Config {
21 let mut config = Config::default(); 18 let mut config = Config::default();
@@ -108,25 +105,18 @@ impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> {
108 105
109 pub fn enable(&mut self, channel: Channel) { 106 pub fn enable(&mut self, channel: Channel) {
110 unsafe { 107 unsafe {
111 T::regs_gp32() 108 T::regs_gp32().ccer().modify(|w| w.set_cce(channel.raw(), true));
112 .ccer()
113 .modify(|w| w.set_cce(channel.raw(), true));
114 } 109 }
115 } 110 }
116 111
117 pub fn disable(&mut self, channel: Channel) { 112 pub fn disable(&mut self, channel: Channel) {
118 unsafe { 113 unsafe {
119 T::regs_gp32() 114 T::regs_gp32().ccer().modify(|w| w.set_cce(channel.raw(), false));
120 .ccer()
121 .modify(|w| w.set_cce(channel.raw(), false));
122 } 115 }
123 } 116 }
124 117
125 pub fn set_freq<F: Into<Hertz>>(&mut self, freq: F) { 118 pub fn set_freq<F: Into<Hertz>>(&mut self, freq: F) {
126 <T as embassy_stm32::timer::low_level::GeneralPurpose32bitInstance>::set_frequency( 119 <T as embassy_stm32::timer::low_level::GeneralPurpose32bitInstance>::set_frequency(&mut self.inner, freq);
127 &mut self.inner,
128 freq,
129 );
130 } 120 }
131 121
132 pub fn get_max_duty(&self) -> u32 { 122 pub fn get_max_duty(&self) -> u32 {
@@ -135,10 +125,6 @@ impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> {
135 125
136 pub fn set_duty(&mut self, channel: Channel, duty: u32) { 126 pub fn set_duty(&mut self, channel: Channel, duty: u32) {
137 defmt::assert!(duty < self.get_max_duty()); 127 defmt::assert!(duty < self.get_max_duty());
138 unsafe { 128 unsafe { T::regs_gp32().ccr(channel.raw()).modify(|w| w.set_ccr(duty)) }
139 T::regs_gp32()
140 .ccr(channel.raw())
141 .modify(|w| w.set_ccr(duty))
142 }
143 } 129 }
144} 130}
diff --git a/examples/stm32h7/src/bin/mco.rs b/examples/stm32h7/src/bin/mco.rs
index a6735036f..6f03b5479 100644
--- a/examples/stm32h7/src/bin/mco.rs
+++ b/examples/stm32h7/src/bin/mco.rs
@@ -3,13 +3,12 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock}; 9use embassy_stm32::rcc::{Mco, Mco1Source, McoClock};
11use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
12use panic_probe as _; 11use {defmt_rtt as _, panic_probe as _};
13 12
14#[embassy::main] 13#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32h7/src/bin/pwm.rs b/examples/stm32h7/src/bin/pwm.rs
index c33ba066e..0e85b8d80 100644
--- a/examples/stm32h7/src/bin/pwm.rs
+++ b/examples/stm32h7/src/bin/pwm.rs
@@ -3,13 +3,13 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::pwm::{simple_pwm::SimplePwm, Channel}; 8use embassy_stm32::pwm::simple_pwm::SimplePwm;
9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::U32Ext;
11use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{Config, Peripherals};
12use panic_probe as _; 12use {defmt_rtt as _, panic_probe as _};
13 13
14pub fn config() -> Config { 14pub fn config() -> Config {
15 let mut config = Config::default(); 15 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/rng.rs b/examples/stm32h7/src/bin/rng.rs
index b914fa709..2b42a6afd 100644
--- a/examples/stm32h7/src/bin/rng.rs
+++ b/examples/stm32h7/src/bin/rng.rs
@@ -3,11 +3,10 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::rng::Rng; 7use embassy_stm32::rng::Rng;
9use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
10use panic_probe as _; 9use {defmt_rtt as _, panic_probe as _};
11 10
12#[embassy::main] 11#[embassy::main]
13async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32h7/src/bin/sdmmc.rs b/examples/stm32h7/src/bin/sdmmc.rs
index c3b2ebcda..4a74780f4 100644
--- a/examples/stm32h7/src/bin/sdmmc.rs
+++ b/examples/stm32h7/src/bin/sdmmc.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
11use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::U32Ext;
12use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _};
13 11
14fn config() -> Config { 12fn config() -> Config {
15 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/signal.rs b/examples/stm32h7/src/bin/signal.rs
index c63b2836c..f798b1c92 100644
--- a/examples/stm32h7/src/bin/signal.rs
+++ b/examples/stm32h7/src/bin/signal.rs
@@ -2,17 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5// global logger
6use defmt::{info, unwrap}; 5use defmt::{info, unwrap};
7use defmt_rtt as _;
8
9use panic_probe as _;
10
11use embassy::channel::signal::Signal; 6use embassy::channel::signal::Signal;
12use embassy::executor::Spawner; 7use embassy::executor::Spawner;
13use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
14
15use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
16 11
17static SIGNAL: Signal<u32> = Signal::new(); 12static SIGNAL: Signal<u32> = Signal::new();
18 13
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs
index a0acb03db..d4ee44292 100644
--- a/examples/stm32h7/src/bin/spi.rs
+++ b/examples/stm32h7/src/bin/spi.rs
@@ -2,21 +2,19 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use core::fmt::Write; 5use core::fmt::Write;
9use core::str::from_utf8; 6use core::str::from_utf8;
7
10use cortex_m_rt::entry; 8use cortex_m_rt::entry;
11use defmt::*; 9use defmt::*;
12use embassy::executor::Executor; 10use embassy::executor::Executor;
13use embassy::util::Forever; 11use embassy::util::Forever;
14use embassy_stm32::dma::NoDma; 12use embassy_stm32::dma::NoDma;
15use embassy_stm32::peripherals::SPI3; 13use embassy_stm32::peripherals::SPI3;
16use embassy_stm32::spi;
17use embassy_stm32::time::U32Ext; 14use embassy_stm32::time::U32Ext;
18use embassy_stm32::Config; 15use embassy_stm32::{spi, Config};
19use heapless::String; 16use heapless::String;
17use {defmt_rtt as _, panic_probe as _};
20 18
21pub fn config() -> Config { 19pub fn config() -> Config {
22 let mut config = Config::default(); 20 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs
index 8f77b1d09..003bc7add 100644
--- a/examples/stm32h7/src/bin/spi_dma.rs
+++ b/examples/stm32h7/src/bin/spi_dma.rs
@@ -2,20 +2,18 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use core::fmt::Write; 5use core::fmt::Write;
9use core::str::from_utf8; 6use core::str::from_utf8;
7
10use cortex_m_rt::entry; 8use cortex_m_rt::entry;
11use defmt::*; 9use defmt::*;
12use embassy::executor::Executor; 10use embassy::executor::Executor;
13use embassy::util::Forever; 11use embassy::util::Forever;
14use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3}; 12use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3};
15use embassy_stm32::spi;
16use embassy_stm32::time::U32Ext; 13use embassy_stm32::time::U32Ext;
17use embassy_stm32::Config; 14use embassy_stm32::{spi, Config};
18use heapless::String; 15use heapless::String;
16use {defmt_rtt as _, panic_probe as _};
19 17
20pub fn config() -> Config { 18pub fn config() -> Config {
21 let mut config = Config::default(); 19 let mut config = Config::default();
diff --git a/examples/stm32h7/src/bin/usart.rs b/examples/stm32h7/src/bin/usart.rs
index 0982a6ac6..fc3db5a33 100644
--- a/examples/stm32h7/src/bin/usart.rs
+++ b/examples/stm32h7/src/bin/usart.rs
@@ -2,15 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use cortex_m_rt::entry;
5use defmt::*; 6use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Executor; 7use embassy::executor::Executor;
8use embassy::util::Forever; 8use embassy::util::Forever;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use panic_probe as _; 11use {defmt_rtt as _, panic_probe as _};
12
13use cortex_m_rt::entry;
14 12
15#[embassy::task] 13#[embassy::task]
16async fn main_task() { 14async fn main_task() {
diff --git a/examples/stm32h7/src/bin/usart_dma.rs b/examples/stm32h7/src/bin/usart_dma.rs
index 74de8b2a3..d3325b0c1 100644
--- a/examples/stm32h7/src/bin/usart_dma.rs
+++ b/examples/stm32h7/src/bin/usart_dma.rs
@@ -3,16 +3,15 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6
7use cortex_m_rt::entry;
6use defmt::*; 8use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Executor; 9use embassy::executor::Executor;
9use embassy::util::Forever; 10use embassy::util::Forever;
10use embassy_stm32::dma::NoDma; 11use embassy_stm32::dma::NoDma;
11use embassy_stm32::usart::{Config, Uart}; 12use embassy_stm32::usart::{Config, Uart};
12use panic_probe as _;
13
14use cortex_m_rt::entry;
15use heapless::String; 13use heapless::String;
14use {defmt_rtt as _, panic_probe as _};
16 15
17#[embassy::task] 16#[embassy::task]
18async fn main_task() { 17async fn main_task() {
diff --git a/examples/stm32h7/src/bin/usart_split.rs b/examples/stm32h7/src/bin/usart_split.rs
index eb3f9578c..678d8c911 100644
--- a/examples/stm32h7/src/bin/usart_split.rs
+++ b/examples/stm32h7/src/bin/usart_split.rs
@@ -3,17 +3,14 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::blocking_mutex::raw::ThreadModeRawMutex; 6use embassy::blocking_mutex::raw::ThreadModeRawMutex;
8use embassy::channel::mpmc::Channel; 7use embassy::channel::mpmc::Channel;
9use embassy::executor::Spawner; 8use embassy::executor::Spawner;
10use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
11use embassy_stm32::{ 10use embassy_stm32::peripherals::{DMA1_CH1, UART7};
12 peripherals::{DMA1_CH1, UART7}, 11use embassy_stm32::usart::{Config, Uart, UartRx};
13 usart::{Config, Uart, UartRx}, 12use embassy_stm32::Peripherals;
14 Peripherals, 13use {defmt_rtt as _, panic_probe as _};
15};
16use panic_probe as _;
17 14
18#[embassy::task] 15#[embassy::task]
19async fn writer(mut usart: Uart<'static, UART7, NoDma, NoDma>) { 16async fn writer(mut usart: Uart<'static, UART7, NoDma, NoDma>) {
diff --git a/examples/stm32l0/src/bin/blinky.rs b/examples/stm32l0/src/bin/blinky.rs
index 72f13f06d..e027192bc 100644
--- a/examples/stm32l0/src/bin/blinky.rs
+++ b/examples/stm32l0/src/bin/blinky.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
11use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
12use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l0/src/bin/button.rs b/examples/stm32l0/src/bin/button.rs
index dfa91259a..43ea8c2a5 100644
--- a/examples/stm32l0/src/bin/button.rs
+++ b/examples/stm32l0/src/bin/button.rs
@@ -3,11 +3,10 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
9use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
10use panic_probe as _; 9use {defmt_rtt as _, panic_probe as _};
11 10
12#[embassy::main] 11#[embassy::main]
13async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l0/src/bin/button_exti.rs b/examples/stm32l0/src/bin/button_exti.rs
index b1892e2c6..d87870a01 100644
--- a/examples/stm32l0/src/bin/button_exti.rs
+++ b/examples/stm32l0/src/bin/button_exti.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
11use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
12use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
13 11
14fn config() -> embassy_stm32::Config { 12fn config() -> embassy_stm32::Config {
15 let mut config = embassy_stm32::Config::default(); 13 let mut config = embassy_stm32::Config::default();
diff --git a/examples/stm32l0/src/bin/flash.rs b/examples/stm32l0/src/bin/flash.rs
index c2ccb5b69..a2fec9291 100644
--- a/examples/stm32l0/src/bin/flash.rs
+++ b/examples/stm32l0/src/bin/flash.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_stm32::flash::Flash; 7use embassy_stm32::flash::Flash;
8use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l0/src/bin/lorawan.rs b/examples/stm32l0/src/bin/lorawan.rs
index c3b97de53..8b7e8f824 100644
--- a/examples/stm32l0/src/bin/lorawan.rs
+++ b/examples/stm32l0/src/bin/lorawan.rs
@@ -6,20 +6,16 @@
6#![feature(generic_associated_types)] 6#![feature(generic_associated_types)]
7#![feature(type_alias_impl_trait)] 7#![feature(type_alias_impl_trait)]
8 8
9use defmt_rtt as _; // global logger 9use embassy_lora::sx127x::*;
10use panic_probe as _; 10use embassy_lora::LoraTimer;
11 11use embassy_stm32::exti::ExtiInput;
12use embassy_lora::{sx127x::*, LoraTimer}; 12use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
13use embassy_stm32::{ 13use embassy_stm32::rng::Rng;
14 exti::ExtiInput, 14use embassy_stm32::time::U32Ext;
15 gpio::{Input, Level, Output, Pull, Speed}, 15use embassy_stm32::{spi, Peripherals};
16 rng::Rng,
17 spi,
18 time::U32Ext,
19 Peripherals,
20};
21use lorawan::default_crypto::DefaultFactory as Crypto; 16use lorawan::default_crypto::DefaultFactory as Crypto;
22use lorawan_device::async_device::{region, Device, JoinMode}; 17use lorawan_device::async_device::{region, Device, JoinMode};
18use {defmt_rtt as _, panic_probe as _};
23 19
24fn config() -> embassy_stm32::Config { 20fn config() -> embassy_stm32::Config {
25 let mut config = embassy_stm32::Config::default(); 21 let mut config = embassy_stm32::Config::default();
@@ -49,13 +45,10 @@ async fn main(_spawner: embassy::executor::Spawner, p: Peripherals) {
49 let ready = Input::new(p.PB4, Pull::Up); 45 let ready = Input::new(p.PB4, Pull::Up);
50 let ready_pin = ExtiInput::new(ready, p.EXTI4); 46 let ready_pin = ExtiInput::new(ready, p.EXTI4);
51 47
52 let radio = Sx127xRadio::new(spi, cs, reset, ready_pin, DummySwitch) 48 let radio = Sx127xRadio::new(spi, cs, reset, ready_pin, DummySwitch).await.unwrap();
53 .await
54 .unwrap();
55 49
56 let region = region::EU868::default().into(); 50 let region = region::EU868::default().into();
57 let mut device: Device<_, Crypto, _, _> = 51 let mut device: Device<_, Crypto, _, _> = Device::new(region, radio, LoraTimer, Rng::new(p.RNG));
58 Device::new(region, radio, LoraTimer, Rng::new(p.RNG));
59 52
60 defmt::info!("Joining LoRaWAN network"); 53 defmt::info!("Joining LoRaWAN network");
61 54
diff --git a/examples/stm32l0/src/bin/raw_spawn.rs b/examples/stm32l0/src/bin/raw_spawn.rs
index 4601d85df..dfe2cddb6 100644
--- a/examples/stm32l0/src/bin/raw_spawn.rs
+++ b/examples/stm32l0/src/bin/raw_spawn.rs
@@ -1,17 +1,15 @@
1#![no_std] 1#![no_std]
2#![no_main] 2#![no_main]
3 3
4use defmt::*;
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use core::mem; 4use core::mem;
9use cortex_m_rt::entry;
10 5
6use cortex_m_rt::entry;
7use defmt::*;
11use embassy::executor::raw::TaskStorage; 8use embassy::executor::raw::TaskStorage;
12use embassy::executor::Executor; 9use embassy::executor::Executor;
13use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
14use embassy::util::Forever; 11use embassy::util::Forever;
12use {defmt_rtt as _, panic_probe as _};
15 13
16async fn run1() { 14async fn run1() {
17 loop { 15 loop {
diff --git a/examples/stm32l0/src/bin/spi.rs b/examples/stm32l0/src/bin/spi.rs
index 5ed783b10..dba0b281d 100644
--- a/examples/stm32l0/src/bin/spi.rs
+++ b/examples/stm32l0/src/bin/spi.rs
@@ -2,17 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::gpio::{Level, Output, Speed};
11
12use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
8use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::spi::{Config, Spi}; 9use embassy_stm32::spi::{Config, Spi};
14use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
15use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use {defmt_rtt as _, panic_probe as _};
16 13
17#[embassy::main] 14#[embassy::main]
18async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l0/src/bin/usart_dma.rs b/examples/stm32l0/src/bin/usart_dma.rs
index b3fdcacbe..861241639 100644
--- a/examples/stm32l0/src/bin/usart_dma.rs
+++ b/examples/stm32l0/src/bin/usart_dma.rs
@@ -2,25 +2,15 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9
10use embassy::executor::Spawner; 6use embassy::executor::Spawner;
11use embassy_stm32::usart::{Config, Uart}; 7use embassy_stm32::usart::{Config, Uart};
12use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9use {defmt_rtt as _, panic_probe as _};
13 10
14#[embassy::main] 11#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 12async fn main(_spawner: Spawner, p: Peripherals) {
16 let mut usart = Uart::new( 13 let mut usart = Uart::new(p.USART1, p.PB7, p.PB6, p.DMA1_CH2, p.DMA1_CH3, Config::default());
17 p.USART1,
18 p.PB7,
19 p.PB6,
20 p.DMA1_CH2,
21 p.DMA1_CH3,
22 Config::default(),
23 );
24 14
25 usart.write(b"Hello Embassy World!\r\n").await.unwrap(); 15 usart.write(b"Hello Embassy World!\r\n").await.unwrap();
26 info!("wrote Hello, starting echo"); 16 info!("wrote Hello, starting echo");
diff --git a/examples/stm32l0/src/bin/usart_irq.rs b/examples/stm32l0/src/bin/usart_irq.rs
index 4413a2945..09b1b0b03 100644
--- a/examples/stm32l0/src/bin/usart_irq.rs
+++ b/examples/stm32l0/src/bin/usart_irq.rs
@@ -2,18 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _;
6use embedded_io::asynch::{Read, Write};
7// global logger
8use panic_probe as _;
9
10use defmt::*; 5use defmt::*;
11
12use embassy::executor::Spawner; 6use embassy::executor::Spawner;
13use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
14use embassy_stm32::interrupt;
15use embassy_stm32::usart::{BufferedUart, Config, State, Uart}; 8use embassy_stm32::usart::{BufferedUart, Config, State, Uart};
16use embassy_stm32::Peripherals; 9use embassy_stm32::{interrupt, Peripherals};
10use embedded_io::asynch::{Read, Write};
11use {defmt_rtt as _, panic_probe as _};
17 12
18#[embassy::main] 13#[embassy::main]
19async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l1/src/bin/blinky.rs b/examples/stm32l1/src/bin/blinky.rs
index e81455524..bace53d91 100644
--- a/examples/stm32l1/src/bin/blinky.rs
+++ b/examples/stm32l1/src/bin/blinky.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
11use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
12use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
10use {defmt_rtt as _, panic_probe as _};
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l1/src/bin/flash.rs b/examples/stm32l1/src/bin/flash.rs
index eea838cba..fc519b079 100644
--- a/examples/stm32l1/src/bin/flash.rs
+++ b/examples/stm32l1/src/bin/flash.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_stm32::flash::Flash; 7use embassy_stm32::flash::Flash;
8use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l1/src/bin/spi.rs b/examples/stm32l1/src/bin/spi.rs
index bced0c54e..81ccba4e1 100644
--- a/examples/stm32l1/src/bin/spi.rs
+++ b/examples/stm32l1/src/bin/spi.rs
@@ -2,17 +2,14 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::gpio::{Level, Output, Speed};
11
12use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
8use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::spi::{Config, Spi}; 9use embassy_stm32::spi::{Config, Spi};
14use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
15use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use {defmt_rtt as _, panic_probe as _};
16 13
17#[embassy::main] 14#[embassy::main]
18async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l4/src/bin/adc.rs b/examples/stm32l4/src/bin/adc.rs
index 58ef6ebaa..499ea47dc 100644
--- a/examples/stm32l4/src/bin/adc.rs
+++ b/examples/stm32l4/src/bin/adc.rs
@@ -2,13 +2,11 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::time::Delay; 6use embassy::time::Delay;
10use embassy_stm32::adc::{Adc, Resolution}; 7use embassy_stm32::adc::{Adc, Resolution};
11use embassy_stm32::pac; 8use embassy_stm32::pac;
9use {defmt_rtt as _, panic_probe as _};
12 10
13#[cortex_m_rt::entry] 11#[cortex_m_rt::entry]
14fn main() -> ! { 12fn main() -> ! {
diff --git a/examples/stm32l4/src/bin/blinky.rs b/examples/stm32l4/src/bin/blinky.rs
index e24a5bd37..54f8e03b2 100644
--- a/examples/stm32l4/src/bin/blinky.rs
+++ b/examples/stm32l4/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l4/src/bin/button.rs b/examples/stm32l4/src/bin/button.rs
index ff270b519..73b1962e8 100644
--- a/examples/stm32l4/src/bin/button.rs
+++ b/examples/stm32l4/src/bin/button.rs
@@ -3,9 +3,8 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy_stm32::gpio::{Input, Pull}; 6use embassy_stm32::gpio::{Input, Pull};
8use panic_probe as _; 7use {defmt_rtt as _, panic_probe as _};
9 8
10#[cortex_m_rt::entry] 9#[cortex_m_rt::entry]
11fn main() -> ! { 10fn main() -> ! {
diff --git a/examples/stm32l4/src/bin/button_exti.rs b/examples/stm32l4/src/bin/button_exti.rs
index 4b1cadcb5..924feeb33 100644
--- a/examples/stm32l4/src/bin/button_exti.rs
+++ b/examples/stm32l4/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l4/src/bin/dac.rs b/examples/stm32l4/src/bin/dac.rs
index c26e7e709..d6e744aa6 100644
--- a/examples/stm32l4/src/bin/dac.rs
+++ b/examples/stm32l4/src/bin/dac.rs
@@ -2,12 +2,10 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy_stm32::dac::{Channel, Dac, Value}; 6use embassy_stm32::dac::{Channel, Dac, Value};
10use embassy_stm32::pac; 7use embassy_stm32::pac;
8use {defmt_rtt as _, panic_probe as _};
11 9
12#[cortex_m_rt::entry] 10#[cortex_m_rt::entry]
13fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32l4/src/bin/i2c.rs b/examples/stm32l4/src/bin/i2c.rs
index 467765642..a22b52184 100644
--- a/examples/stm32l4/src/bin/i2c.rs
+++ b/examples/stm32l4/src/bin/i2c.rs
@@ -2,16 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
11use embassy_stm32::i2c::I2c; 8use embassy_stm32::i2c::I2c;
12use embassy_stm32::interrupt;
13use embassy_stm32::time::Hertz; 9use embassy_stm32::time::Hertz;
14use embassy_stm32::Peripherals; 10use embassy_stm32::{interrupt, Peripherals};
11use {defmt_rtt as _, panic_probe as _};
15 12
16const ADDRESS: u8 = 0x5F; 13const ADDRESS: u8 = 0x5F;
17const WHOAMI: u8 = 0x0F; 14const WHOAMI: u8 = 0x0F;
diff --git a/examples/stm32l4/src/bin/i2c_blocking_async.rs b/examples/stm32l4/src/bin/i2c_blocking_async.rs
index eb74223b0..6c4a86703 100644
--- a/examples/stm32l4/src/bin/i2c_blocking_async.rs
+++ b/examples/stm32l4/src/bin/i2c_blocking_async.rs
@@ -2,18 +2,15 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_embedded_hal::adapter::BlockingAsync; 7use embassy_embedded_hal::adapter::BlockingAsync;
11use embassy_stm32::dma::NoDma; 8use embassy_stm32::dma::NoDma;
12use embassy_stm32::i2c::I2c; 9use embassy_stm32::i2c::I2c;
13use embassy_stm32::interrupt;
14use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
15use embassy_stm32::Peripherals; 11use embassy_stm32::{interrupt, Peripherals};
16use embedded_hal_async::i2c::I2c as I2cTrait; 12use embedded_hal_async::i2c::I2c as I2cTrait;
13use {defmt_rtt as _, panic_probe as _};
17 14
18const ADDRESS: u8 = 0x5F; 15const ADDRESS: u8 = 0x5F;
19const WHOAMI: u8 = 0x0F; 16const WHOAMI: u8 = 0x0F;
diff --git a/examples/stm32l4/src/bin/i2c_dma.rs b/examples/stm32l4/src/bin/i2c_dma.rs
index 886a0e09f..48d2e92cf 100644
--- a/examples/stm32l4/src/bin/i2c_dma.rs
+++ b/examples/stm32l4/src/bin/i2c_dma.rs
@@ -2,15 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::i2c::I2c; 7use embassy_stm32::i2c::I2c;
11use embassy_stm32::interrupt;
12use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
13use embassy_stm32::Peripherals; 9use embassy_stm32::{interrupt, Peripherals};
10use {defmt_rtt as _, panic_probe as _};
14 11
15const ADDRESS: u8 = 0x5F; 12const ADDRESS: u8 = 0x5F;
16const WHOAMI: u8 = 0x0F; 13const WHOAMI: u8 = 0x0F;
@@ -18,15 +15,7 @@ const WHOAMI: u8 = 0x0F;
18#[embassy::main] 15#[embassy::main]
19async fn main(_spawner: Spawner, p: Peripherals) -> ! { 16async fn main(_spawner: Spawner, p: Peripherals) -> ! {
20 let irq = interrupt::take!(I2C2_EV); 17 let irq = interrupt::take!(I2C2_EV);
21 let mut i2c = I2c::new( 18 let mut i2c = I2c::new(p.I2C2, p.PB10, p.PB11, irq, p.DMA1_CH4, p.DMA1_CH5, Hertz(100_000));
22 p.I2C2,
23 p.PB10,
24 p.PB11,
25 irq,
26 p.DMA1_CH4,
27 p.DMA1_CH5,
28 Hertz(100_000),
29 );
30 19
31 let mut data = [0u8; 1]; 20 let mut data = [0u8; 1];
32 unwrap!(i2c.write_read(ADDRESS, &[WHOAMI], &mut data).await); 21 unwrap!(i2c.write_read(ADDRESS, &[WHOAMI], &mut data).await);
diff --git a/examples/stm32l4/src/bin/rng.rs b/examples/stm32l4/src/bin/rng.rs
index 03773e61b..7aaa122ed 100644
--- a/examples/stm32l4/src/bin/rng.rs
+++ b/examples/stm32l4/src/bin/rng.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::rcc::{ClockSrc, PLLClkDiv, PLLMul, PLLSource, PLLSrcDiv}; 7use embassy_stm32::rcc::{ClockSrc, PLLClkDiv, PLLMul, PLLSource, PLLSrcDiv};
9use embassy_stm32::rng::Rng; 8use embassy_stm32::rng::Rng;
10use embassy_stm32::{Config, Peripherals}; 9use embassy_stm32::{Config, Peripherals};
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13fn config() -> Config { 12fn config() -> Config {
14 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32l4/src/bin/spi.rs b/examples/stm32l4/src/bin/spi.rs
index 44fdf81a8..76e316a25 100644
--- a/examples/stm32l4/src/bin/spi.rs
+++ b/examples/stm32l4/src/bin/spi.rs
@@ -2,14 +2,12 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy_stm32::dma::NoDma; 6use embassy_stm32::dma::NoDma;
10use embassy_stm32::gpio::{Level, Output, Speed}; 7use embassy_stm32::gpio::{Level, Output, Speed};
11use embassy_stm32::spi::{Config, Spi}; 8use embassy_stm32::spi::{Config, Spi};
12use embassy_stm32::time::Hertz; 9use embassy_stm32::time::Hertz;
10use {defmt_rtt as _, panic_probe as _};
13 11
14#[cortex_m_rt::entry] 12#[cortex_m_rt::entry]
15fn main() -> ! { 13fn main() -> ! {
diff --git a/examples/stm32l4/src/bin/spi_blocking_async.rs b/examples/stm32l4/src/bin/spi_blocking_async.rs
index e1a400107..20a2ff802 100644
--- a/examples/stm32l4/src/bin/spi_blocking_async.rs
+++ b/examples/stm32l4/src/bin/spi_blocking_async.rs
@@ -2,9 +2,6 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_embedded_hal::adapter::BlockingAsync; 7use embassy_embedded_hal::adapter::BlockingAsync;
@@ -14,6 +11,7 @@ use embassy_stm32::spi::{Config, Spi};
14use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
15use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
16use embedded_hal_async::spi::SpiBus; 13use embedded_hal_async::spi::SpiBus;
14use {defmt_rtt as _, panic_probe as _};
17 15
18#[embassy::main] 16#[embassy::main]
19async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l4/src/bin/spi_dma.rs b/examples/stm32l4/src/bin/spi_dma.rs
index 88d02c7e1..d0c3609af 100644
--- a/examples/stm32l4/src/bin/spi_dma.rs
+++ b/examples/stm32l4/src/bin/spi_dma.rs
@@ -2,15 +2,13 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy::executor::Spawner; 6use embassy::executor::Spawner;
10use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
11use embassy_stm32::spi::{Config, Spi}; 8use embassy_stm32::spi::{Config, Spi};
12use embassy_stm32::time::Hertz; 9use embassy_stm32::time::Hertz;
13use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
11use {defmt_rtt as _, panic_probe as _};
14 12
15#[embassy::main] 13#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 14async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l4/src/bin/usart.rs b/examples/stm32l4/src/bin/usart.rs
index b38f55456..4a4b46c53 100644
--- a/examples/stm32l4/src/bin/usart.rs
+++ b/examples/stm32l4/src/bin/usart.rs
@@ -2,12 +2,10 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt_rtt as _; // global logger
6use panic_probe as _;
7
8use defmt::*; 5use defmt::*;
9use embassy_stm32::dma::NoDma; 6use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 7use embassy_stm32::usart::{Config, Uart};
8use {defmt_rtt as _, panic_probe as _};
11 9
12#[cortex_m_rt::entry] 10#[cortex_m_rt::entry]
13fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32l4/src/bin/usart_dma.rs b/examples/stm32l4/src/bin/usart_dma.rs
index 40e2c3671..7ae7e9e15 100644
--- a/examples/stm32l4/src/bin/usart_dma.rs
+++ b/examples/stm32l4/src/bin/usart_dma.rs
@@ -3,14 +3,14 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use core::fmt::Write; 5use core::fmt::Write;
6
6use defmt::*; 7use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use heapless::String; 12use heapless::String;
13use panic_probe as _; 13use {defmt_rtt as _, panic_probe as _};
14 14
15#[embassy::main] 15#[embassy::main]
16async fn main(_spawner: Spawner, p: Peripherals) { 16async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l5/src/bin/button_exti.rs b/examples/stm32l5/src/bin/button_exti.rs
index 304ce0a8a..c7a6cfa28 100644
--- a/examples/stm32l5/src/bin/button_exti.rs
+++ b/examples/stm32l5/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32l5/src/bin/rng.rs b/examples/stm32l5/src/bin/rng.rs
index 5f75c1ff1..d3627d2c2 100644
--- a/examples/stm32l5/src/bin/rng.rs
+++ b/examples/stm32l5/src/bin/rng.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::rcc::{ClockSrc, PLLClkDiv, PLLMul, PLLSource, PLLSrcDiv}; 7use embassy_stm32::rcc::{ClockSrc, PLLClkDiv, PLLMul, PLLSource, PLLSrcDiv};
9use embassy_stm32::rng::Rng; 8use embassy_stm32::rng::Rng;
10use embassy_stm32::{Config, Peripherals}; 9use embassy_stm32::{Config, Peripherals};
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13fn config() -> Config { 12fn config() -> Config {
14 let mut config = Config::default(); 13 let mut config = Config::default();
diff --git a/examples/stm32l5/src/bin/usb_ethernet.rs b/examples/stm32l5/src/bin/usb_ethernet.rs
index 526b27530..d711616ef 100644
--- a/examples/stm32l5/src/bin/usb_ethernet.rs
+++ b/examples/stm32l5/src/bin/usb_ethernet.rs
@@ -5,29 +5,24 @@
5 5
6use core::sync::atomic::{AtomicBool, Ordering}; 6use core::sync::atomic::{AtomicBool, Ordering};
7use core::task::Waker; 7use core::task::Waker;
8
8use defmt::*; 9use defmt::*;
9use defmt_rtt as _; // global logger
10use embassy::blocking_mutex::raw::ThreadModeRawMutex; 10use embassy::blocking_mutex::raw::ThreadModeRawMutex;
11use embassy::channel::mpmc::Channel; 11use embassy::channel::mpmc::Channel;
12use embassy::executor::Spawner; 12use embassy::executor::Spawner;
13use embassy::util::Forever; 13use embassy::util::Forever;
14use embassy_net::tcp::TcpSocket; 14use embassy_net::tcp::TcpSocket;
15use embassy_net::{PacketBox, PacketBoxExt, PacketBuf, Stack, StackResources}; 15use embassy_net::{PacketBox, PacketBoxExt, PacketBuf, Stack, StackResources};
16use embassy_stm32::interrupt;
17use embassy_stm32::rcc::*; 16use embassy_stm32::rcc::*;
18use embassy_stm32::rng::Rng; 17use embassy_stm32::rng::Rng;
19use embassy_stm32::time::Hertz; 18use embassy_stm32::time::Hertz;
20use embassy_stm32::usb::Driver; 19use embassy_stm32::usb::Driver;
21use embassy_stm32::{Config, Peripherals}; 20use embassy_stm32::{interrupt, Config, Peripherals};
22use embassy_usb::{Builder, UsbDevice}; 21use embassy_usb::{Builder, UsbDevice};
23use embassy_usb_ncm::{CdcNcmClass, Receiver, Sender, State}; 22use embassy_usb_ncm::{CdcNcmClass, Receiver, Sender, State};
24use panic_probe as _;
25
26use defmt_rtt as _;
27use embedded_io::asynch::{Read, Write}; 23use embedded_io::asynch::{Read, Write};
28// global logger
29use panic_probe as _;
30use rand_core::RngCore; 24use rand_core::RngCore;
25use {defmt_rtt as _, panic_probe as _};
31 26
32type MyDriver = Driver<'static, embassy_stm32::peripherals::USB>; 27type MyDriver = Driver<'static, embassy_stm32::peripherals::USB>;
33 28
@@ -92,13 +87,7 @@ fn config() -> Config {
92 let mut config = Config::default(); 87 let mut config = Config::default();
93 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000)); 88 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
94 89
95 config.rcc.mux = ClockSrc::PLL( 90 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
96 PLLSource::HSI16,
97 PLLClkDiv::Div2,
98 PLLSrcDiv::Div1,
99 PLLMul::Mul10,
100 None,
101 );
102 config.rcc.hsi48 = true; 91 config.rcc.hsi48 = true;
103 92
104 config 93 config
@@ -186,9 +175,7 @@ async fn main(spawner: Spawner, p: Peripherals) {
186 let seed = rng.next_u64(); 175 let seed = rng.next_u64();
187 176
188 // Init network stack 177 // Init network stack
189 let device = Device { 178 let device = Device { mac_addr: our_mac_addr };
190 mac_addr: our_mac_addr,
191 };
192 let stack = &*forever!(Stack::new( 179 let stack = &*forever!(Stack::new(
193 device, 180 device,
194 config, 181 config,
diff --git a/examples/stm32l5/src/bin/usb_hid_mouse.rs b/examples/stm32l5/src/bin/usb_hid_mouse.rs
index d275aba36..d139e6bb1 100644
--- a/examples/stm32l5/src/bin/usb_hid_mouse.rs
+++ b/examples/stm32l5/src/bin/usb_hid_mouse.rs
@@ -6,31 +6,22 @@
6use defmt::*; 6use defmt::*;
7use embassy::executor::Spawner; 7use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
9use embassy_stm32::interrupt;
10use embassy_stm32::rcc::*; 9use embassy_stm32::rcc::*;
11use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
12use embassy_stm32::usb::Driver; 11use embassy_stm32::usb::Driver;
13use embassy_stm32::{Config, Peripherals}; 12use embassy_stm32::{interrupt, Config, Peripherals};
14use embassy_usb::control::OutResponse; 13use embassy_usb::control::OutResponse;
15use embassy_usb::Builder; 14use embassy_usb::Builder;
16use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; 15use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State};
17use futures::future::join; 16use futures::future::join;
18use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; 17use usbd_hid::descriptor::{MouseReport, SerializedDescriptor};
19 18use {defmt_rtt as _, panic_probe as _};
20use defmt_rtt as _; // global logger
21use panic_probe as _;
22 19
23fn config() -> Config { 20fn config() -> Config {
24 let mut config = Config::default(); 21 let mut config = Config::default();
25 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000)); 22 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
26 23
27 config.rcc.mux = ClockSrc::PLL( 24 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
28 PLLSource::HSI16,
29 PLLClkDiv::Div2,
30 PLLSrcDiv::Div1,
31 PLLMul::Mul10,
32 None,
33 );
34 config.rcc.hsi48 = true; 25 config.rcc.hsi48 = true;
35 26
36 config 27 config
diff --git a/examples/stm32l5/src/bin/usb_serial.rs b/examples/stm32l5/src/bin/usb_serial.rs
index 987f1b692..8dab001c6 100644
--- a/examples/stm32l5/src/bin/usb_serial.rs
+++ b/examples/stm32l5/src/bin/usb_serial.rs
@@ -2,32 +2,23 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::panic; 5use defmt::{panic, *};
6use defmt::*;
7use defmt_rtt as _; // global logger
8use embassy::executor::Spawner; 6use embassy::executor::Spawner;
9use embassy_stm32::interrupt;
10use embassy_stm32::rcc::*; 7use embassy_stm32::rcc::*;
11use embassy_stm32::time::Hertz; 8use embassy_stm32::time::Hertz;
12use embassy_stm32::usb::{Driver, Instance}; 9use embassy_stm32::usb::{Driver, Instance};
13use embassy_stm32::{Config, Peripherals}; 10use embassy_stm32::{interrupt, Config, Peripherals};
14use embassy_usb::driver::EndpointError; 11use embassy_usb::driver::EndpointError;
15use embassy_usb::Builder; 12use embassy_usb::Builder;
16use embassy_usb_serial::{CdcAcmClass, State}; 13use embassy_usb_serial::{CdcAcmClass, State};
17use futures::future::join; 14use futures::future::join;
18use panic_probe as _; 15use {defmt_rtt as _, panic_probe as _};
19 16
20fn config() -> Config { 17fn config() -> Config {
21 let mut config = Config::default(); 18 let mut config = Config::default();
22 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000)); 19 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
23 20
24 config.rcc.mux = ClockSrc::PLL( 21 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
25 PLLSource::HSI16,
26 PLLClkDiv::Div2,
27 PLLSrcDiv::Div1,
28 PLLMul::Mul10,
29 None,
30 );
31 config.rcc.hsi48 = true; 22 config.rcc.hsi48 = true;
32 23
33 config 24 config
@@ -99,9 +90,7 @@ impl From<EndpointError> for Disconnected {
99 } 90 }
100} 91}
101 92
102async fn echo<'d, T: Instance + 'd>( 93async fn echo<'d, T: Instance + 'd>(class: &mut CdcAcmClass<'d, Driver<'d, T>>) -> Result<(), Disconnected> {
103 class: &mut CdcAcmClass<'d, Driver<'d, T>>,
104) -> Result<(), Disconnected> {
105 let mut buf = [0; 64]; 94 let mut buf = [0; 64];
106 loop { 95 loop {
107 let n = class.read_packet(&mut buf).await?; 96 let n = class.read_packet(&mut buf).await?;
diff --git a/examples/stm32u5/src/bin/blinky.rs b/examples/stm32u5/src/bin/blinky.rs
index e1bcccf58..4910e0b98 100644
--- a/examples/stm32u5/src/bin/blinky.rs
+++ b/examples/stm32u5/src/bin/blinky.rs
@@ -3,13 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _;
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11// global logger 10use {defmt_rtt as _, panic_probe as _};
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) -> ! { 13async fn main(_spawner: Spawner, p: Peripherals) -> ! {
diff --git a/examples/stm32u5/src/bin/boot.rs b/examples/stm32u5/src/bin/boot.rs
index e04021349..e2112ce5c 100644
--- a/examples/stm32u5/src/bin/boot.rs
+++ b/examples/stm32u5/src/bin/boot.rs
@@ -3,10 +3,7 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger 6use {defmt_rtt as _, embassy_stm32 as _, panic_probe as _};
7use panic_probe as _;
8
9use embassy_stm32 as _;
10 7
11#[cortex_m_rt::entry] 8#[cortex_m_rt::entry]
12fn main() -> ! { 9fn main() -> ! {
diff --git a/examples/stm32wb/src/bin/blinky.rs b/examples/stm32wb/src/bin/blinky.rs
index 59324161a..8ab9b749d 100644
--- a/examples/stm32wb/src/bin/blinky.rs
+++ b/examples/stm32wb/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32wb/src/bin/button_exti.rs b/examples/stm32wb/src/bin/button_exti.rs
index a30a4a216..2ddeb887c 100644
--- a/examples/stm32wb/src/bin/button_exti.rs
+++ b/examples/stm32wb/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32wl/src/bin/blinky.rs b/examples/stm32wl/src/bin/blinky.rs
index 78079bfd3..9393af1c6 100644
--- a/examples/stm32wl/src/bin/blinky.rs
+++ b/examples/stm32wl/src/bin/blinky.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32wl/src/bin/button.rs b/examples/stm32wl/src/bin/button.rs
index f80b9ab4f..982a7a112 100644
--- a/examples/stm32wl/src/bin/button.rs
+++ b/examples/stm32wl/src/bin/button.rs
@@ -2,12 +2,10 @@
2#![no_main] 2#![no_main]
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use cortex_m_rt::entry;
5use defmt::*; 6use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 7use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
8use panic_probe as _; 8use {defmt_rtt as _, panic_probe as _};
9
10use cortex_m_rt::entry;
11 9
12#[entry] 10#[entry]
13fn main() -> ! { 11fn main() -> ! {
diff --git a/examples/stm32wl/src/bin/button_exti.rs b/examples/stm32wl/src/bin/button_exti.rs
index 9a427c2d3..7d5c1b3cb 100644
--- a/examples/stm32wl/src/bin/button_exti.rs
+++ b/examples/stm32wl/src/bin/button_exti.rs
@@ -3,12 +3,11 @@
3#![feature(type_alias_impl_trait)] 3#![feature(type_alias_impl_trait)]
4 4
5use defmt::*; 5use defmt::*;
6use defmt_rtt as _; // global logger
7use embassy::executor::Spawner; 6use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 9use embassy_stm32::Peripherals;
11use panic_probe as _; 10use {defmt_rtt as _, panic_probe as _};
12 11
13#[embassy::main] 12#[embassy::main]
14async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32wl/src/bin/flash.rs b/examples/stm32wl/src/bin/flash.rs
index f84818224..6531feae9 100644
--- a/examples/stm32wl/src/bin/flash.rs
+++ b/examples/stm32wl/src/bin/flash.rs
@@ -7,9 +7,7 @@ use embassy::executor::Spawner;
7use embassy_stm32::flash::Flash; 7use embassy_stm32::flash::Flash;
8use embassy_stm32::Peripherals; 8use embassy_stm32::Peripherals;
9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash}; 9use embedded_storage::nor_flash::{NorFlash, ReadNorFlash};
10 10use {defmt_rtt as _, panic_probe as _};
11use defmt_rtt as _; // global logger
12use panic_probe as _;
13 11
14#[embassy::main] 12#[embassy::main]
15async fn main(_spawner: Spawner, p: Peripherals) { 13async fn main(_spawner: Spawner, p: Peripherals) {
diff --git a/examples/stm32wl/src/bin/lorawan.rs b/examples/stm32wl/src/bin/lorawan.rs
index 393828c85..4f0dc7dfc 100644
--- a/examples/stm32wl/src/bin/lorawan.rs
+++ b/examples/stm32wl/src/bin/lorawan.rs
@@ -5,20 +5,16 @@
5#![feature(generic_associated_types)] 5#![feature(generic_associated_types)]
6#![feature(type_alias_impl_trait)] 6#![feature(type_alias_impl_trait)]
7 7
8use defmt_rtt as _; // global logger 8use embassy_lora::stm32wl::*;
9use panic_probe as _; 9use embassy_lora::LoraTimer;
10 10use embassy_stm32::dma::NoDma;
11use embassy_lora::{stm32wl::*, LoraTimer}; 11use embassy_stm32::gpio::{Level, Output, Pin, Speed};
12use embassy_stm32::{ 12use embassy_stm32::rng::Rng;
13 dma::NoDma, 13use embassy_stm32::subghz::*;
14 gpio::{Level, Output, Pin, Speed}, 14use embassy_stm32::{interrupt, pac, Peripherals};
15 interrupt, pac,
16 rng::Rng,
17 subghz::*,
18 Peripherals,
19};
20use lorawan::default_crypto::DefaultFactory as Crypto; 15use lorawan::default_crypto::DefaultFactory as Crypto;
21use lorawan_device::async_device::{region, Device, JoinMode}; 16use lorawan_device::async_device::{region, Device, JoinMode};
17use {defmt_rtt as _, panic_probe as _};
22 18
23fn config() -> embassy_stm32::Config { 19fn config() -> embassy_stm32::Config {
24 let mut config = embassy_stm32::Config::default(); 20 let mut config = embassy_stm32::Config::default();
@@ -43,8 +39,7 @@ async fn main(_spawner: embassy::executor::Spawner, p: Peripherals) {
43 let radio = unsafe { SubGhzRadio::new(&mut RADIO_STATE, radio, rfs, irq) }; 39 let radio = unsafe { SubGhzRadio::new(&mut RADIO_STATE, radio, rfs, irq) };
44 40
45 let region = region::EU868::default().into(); 41 let region = region::EU868::default().into();
46 let mut device: Device<_, Crypto, _, _> = 42 let mut device: Device<_, Crypto, _, _> = Device::new(region, radio, LoraTimer, Rng::new(p.RNG));
47 Device::new(region, radio, LoraTimer, Rng::new(p.RNG));
48 43
49 defmt::info!("Joining LoRaWAN network"); 44 defmt::info!("Joining LoRaWAN network");
50 45
diff --git a/examples/stm32wl/src/bin/subghz.rs b/examples/stm32wl/src/bin/subghz.rs
index f5f9b6a32..c5f6e502a 100644
--- a/examples/stm32wl/src/bin/subghz.rs
+++ b/examples/stm32wl/src/bin/subghz.rs
@@ -5,18 +5,15 @@
5#![feature(generic_associated_types)] 5#![feature(generic_associated_types)]
6#![feature(type_alias_impl_trait)] 6#![feature(type_alias_impl_trait)]
7 7
8use defmt_rtt as _; // global logger
9use panic_probe as _;
10
11use defmt::*; 8use defmt::*;
12use embassy::channel::signal::Signal; 9use embassy::channel::signal::Signal;
13use embassy_stm32::dma::NoDma; 10use embassy_stm32::dma::NoDma;
14use embassy_stm32::exti::ExtiInput; 11use embassy_stm32::exti::ExtiInput;
15use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 12use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
16use embassy_stm32::interrupt;
17use embassy_stm32::interrupt::{Interrupt, InterruptExt}; 13use embassy_stm32::interrupt::{Interrupt, InterruptExt};
18use embassy_stm32::subghz::*; 14use embassy_stm32::subghz::*;
19use embassy_stm32::Peripherals; 15use embassy_stm32::{interrupt, Peripherals};
16use {defmt_rtt as _, panic_probe as _};
20 17
21const PING_DATA: &str = "PING"; 18const PING_DATA: &str = "PING";
22const DATA_LEN: u8 = PING_DATA.len() as u8; 19const DATA_LEN: u8 = PING_DATA.len() as u8;
@@ -46,20 +43,13 @@ const LORA_MOD_PARAMS: LoRaModParams = LoRaModParams::new()
46 43
47// configuration for +10 dBm output power 44// configuration for +10 dBm output power
48// see table 35 "PA optimal setting and operating modes" 45// see table 35 "PA optimal setting and operating modes"
49const PA_CONFIG: PaConfig = PaConfig::new() 46const PA_CONFIG: PaConfig = PaConfig::new().set_pa_duty_cycle(0x1).set_hp_max(0x0).set_pa(PaSel::Lp);
50 .set_pa_duty_cycle(0x1)
51 .set_hp_max(0x0)
52 .set_pa(PaSel::Lp);
53 47
54const TCXO_MODE: TcxoMode = TcxoMode::new() 48const TCXO_MODE: TcxoMode = TcxoMode::new()
55 .set_txco_trim(TcxoTrim::Volts1pt7) 49 .set_txco_trim(TcxoTrim::Volts1pt7)
56 .set_timeout(Timeout::from_duration_sat( 50 .set_timeout(Timeout::from_duration_sat(core::time::Duration::from_millis(10)));
57 core::time::Duration::from_millis(10),
58 ));
59 51
60const TX_PARAMS: TxParams = TxParams::new() 52const TX_PARAMS: TxParams = TxParams::new().set_power(0x0D).set_ramp_time(RampTime::Micros40);
61 .set_power(0x0D)
62 .set_ramp_time(RampTime::Micros40);
63 53
64fn config() -> embassy_stm32::Config { 54fn config() -> embassy_stm32::Config {
65 let mut config = embassy_stm32::Config::default(); 55 let mut config = embassy_stm32::Config::default();
diff --git a/examples/wasm/src/lib.rs b/examples/wasm/src/lib.rs
index 0aa32a70b..61757ebd7 100644
--- a/examples/wasm/src/lib.rs
+++ b/examples/wasm/src/lib.rs
@@ -1,10 +1,8 @@
1#![feature(type_alias_impl_trait)] 1#![feature(type_alias_impl_trait)]
2#![allow(incomplete_features)] 2#![allow(incomplete_features)]
3 3
4use embassy::{ 4use embassy::executor::Spawner;
5 executor::Spawner, 5use embassy::time::{Duration, Timer};
6 time::{Duration, Timer},
7};
8 6
9#[embassy::task] 7#[embassy::task]
10async fn ticker() { 8async fn ticker() {
@@ -13,13 +11,9 @@ async fn ticker() {
13 let mut counter = 0; 11 let mut counter = 0;
14 loop { 12 loop {
15 let document = window.document().expect("should have a document on window"); 13 let document = window.document().expect("should have a document on window");
16 let list = document 14 let list = document.get_element_by_id("log").expect("should have a log element");
17 .get_element_by_id("log")
18 .expect("should have a log element");
19 15
20 let li = document 16 let li = document.create_element("li").expect("error creating list item element");
21 .create_element("li")
22 .expect("error creating list item element");
23 li.set_text_content(Some(&format!("tick {}", counter))); 17 li.set_text_content(Some(&format!("tick {}", counter)));
24 18
25 list.append_child(&li).expect("error appending list item"); 19 list.append_child(&li).expect("error appending list item");