diff options
| author | Dion Dokter <[email protected]> | 2024-08-05 14:43:57 +0200 |
|---|---|---|
| committer | Dion Dokter <[email protected]> | 2024-08-05 14:43:57 +0200 |
| commit | 5884576b88e7ec7e26ec1c9b9f61e253cb0e5ea6 (patch) | |
| tree | 72bb005130582742bc10f26e7eedbf635436831b | |
| parent | 705a8fc38c0e5ef9cbd6bfaf95bca70fac5d9f81 (diff) | |
Updated WL examples to use new API
| -rw-r--r-- | examples/boot/application/stm32wl/memory.x | 4 | ||||
| -rw-r--r-- | examples/stm32wl/memory.x | 15 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/blinky.rs | 12 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/button.rs | 9 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/button_exti.rs | 9 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/flash.rs | 9 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/random.rs | 9 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/rtc.rs | 9 | ||||
| -rw-r--r-- | examples/stm32wl/src/bin/uart_async.rs | 9 |
9 files changed, 69 insertions, 16 deletions
diff --git a/examples/boot/application/stm32wl/memory.x b/examples/boot/application/stm32wl/memory.x index 9adf19f0e..5af1723f5 100644 --- a/examples/boot/application/stm32wl/memory.x +++ b/examples/boot/application/stm32wl/memory.x | |||
| @@ -5,8 +5,8 @@ MEMORY | |||
| 5 | BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K | 5 | BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K |
| 6 | FLASH : ORIGIN = 0x08008000, LENGTH = 64K | 6 | FLASH : ORIGIN = 0x08008000, LENGTH = 64K |
| 7 | DFU : ORIGIN = 0x08018000, LENGTH = 68K | 7 | DFU : ORIGIN = 0x08018000, LENGTH = 68K |
| 8 | RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 32K - 1K | 8 | SHARED_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64 |
| 9 | SHARED_RAM (rwx) : ORIGIN = 0x20007C00, LENGTH = 1K | 9 | RAM (rwx) : ORIGIN = 0x20000040, LENGTH = 32K - 64 |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | __bootloader_state_start = ORIGIN(BOOTLOADER_STATE) - ORIGIN(BOOTLOADER); | 12 | __bootloader_state_start = ORIGIN(BOOTLOADER_STATE) - ORIGIN(BOOTLOADER); |
diff --git a/examples/stm32wl/memory.x b/examples/stm32wl/memory.x new file mode 100644 index 000000000..0298caa4b --- /dev/null +++ b/examples/stm32wl/memory.x | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | MEMORY | ||
| 2 | { | ||
| 3 | /* NOTE 1 K = 1 KiBi = 1024 bytes */ | ||
| 4 | FLASH : ORIGIN = 0x08000000, LENGTH = 256K | ||
| 5 | SHARED_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64 | ||
| 6 | RAM (rwx) : ORIGIN = 0x20000040, LENGTH = 64K - 64 | ||
| 7 | } | ||
| 8 | |||
| 9 | SECTIONS | ||
| 10 | { | ||
| 11 | .shared_data : | ||
| 12 | { | ||
| 13 | *(.shared_data) | ||
| 14 | } > SHARED_RAM | ||
| 15 | } \ No newline at end of file | ||
diff --git a/examples/stm32wl/src/bin/blinky.rs b/examples/stm32wl/src/bin/blinky.rs index 347bd093f..048ce9175 100644 --- a/examples/stm32wl/src/bin/blinky.rs +++ b/examples/stm32wl/src/bin/blinky.rs | |||
| @@ -1,15 +1,23 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use defmt::*; | 6 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 7 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::gpio::{Level, Output, Speed}; | 8 | use embassy_stm32::{ |
| 9 | gpio::{Level, Output, Speed}, | ||
| 10 | SharedData, | ||
| 11 | }; | ||
| 7 | use embassy_time::Timer; | 12 | use embassy_time::Timer; |
| 8 | use {defmt_rtt as _, panic_probe as _}; | 13 | use {defmt_rtt as _, panic_probe as _}; |
| 9 | 14 | ||
| 15 | #[link_section = ".shared_data"] | ||
| 16 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 17 | |||
| 10 | #[embassy_executor::main] | 18 | #[embassy_executor::main] |
| 11 | async fn main(_spawner: Spawner) { | 19 | async fn main(_spawner: Spawner) { |
| 12 | let p = embassy_stm32::init(Default::default()); | 20 | let p = embassy_stm32::init_primary(Default::default(), &SHARED_DATA); |
| 13 | info!("Hello World!"); | 21 | info!("Hello World!"); |
| 14 | 22 | ||
| 15 | let mut led = Output::new(p.PB15, Level::High, Speed::Low); | 23 | let mut led = Output::new(p.PB15, Level::High, Speed::Low); |
diff --git a/examples/stm32wl/src/bin/button.rs b/examples/stm32wl/src/bin/button.rs index eccd211e2..92884da1f 100644 --- a/examples/stm32wl/src/bin/button.rs +++ b/examples/stm32wl/src/bin/button.rs | |||
| @@ -1,16 +1,21 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use cortex_m_rt::entry; | 6 | use cortex_m_rt::entry; |
| 5 | use defmt::*; | 7 | use defmt::*; |
| 6 | use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; | 8 | use embassy_stm32::{gpio::{Input, Level, Output, Pull, Speed}, SharedData}; |
| 7 | use {defmt_rtt as _, panic_probe as _}; | 9 | use {defmt_rtt as _, panic_probe as _}; |
| 8 | 10 | ||
| 11 | #[link_section = ".shared_data"] | ||
| 12 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 13 | |||
| 9 | #[entry] | 14 | #[entry] |
| 10 | fn main() -> ! { | 15 | fn main() -> ! { |
| 11 | info!("Hello World!"); | 16 | info!("Hello World!"); |
| 12 | 17 | ||
| 13 | let p = embassy_stm32::init(Default::default()); | 18 | let p = embassy_stm32::init_primary(Default::default(), &SHARED_DATA); |
| 14 | 19 | ||
| 15 | let button = Input::new(p.PA0, Pull::Up); | 20 | let button = Input::new(p.PA0, Pull::Up); |
| 16 | let mut led1 = Output::new(p.PB15, Level::High, Speed::Low); | 21 | let mut led1 = Output::new(p.PB15, Level::High, Speed::Low); |
diff --git a/examples/stm32wl/src/bin/button_exti.rs b/examples/stm32wl/src/bin/button_exti.rs index 27d5330bd..d1e443bf8 100644 --- a/examples/stm32wl/src/bin/button_exti.rs +++ b/examples/stm32wl/src/bin/button_exti.rs | |||
| @@ -1,15 +1,20 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use defmt::*; | 6 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 7 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::exti::ExtiInput; | ||
| 7 | use embassy_stm32::gpio::Pull; | 8 | use embassy_stm32::gpio::Pull; |
| 9 | use embassy_stm32::{exti::ExtiInput, SharedData}; | ||
| 8 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 9 | 11 | ||
| 12 | #[link_section = ".shared_data"] | ||
| 13 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 14 | |||
| 10 | #[embassy_executor::main] | 15 | #[embassy_executor::main] |
| 11 | async fn main(_spawner: Spawner) { | 16 | async fn main(_spawner: Spawner) { |
| 12 | let p = embassy_stm32::init(Default::default()); | 17 | let p = embassy_stm32::init_primary(Default::default(), &SHARED_DATA); |
| 13 | info!("Hello World!"); | 18 | info!("Hello World!"); |
| 14 | 19 | ||
| 15 | let mut button = ExtiInput::new(p.PA0, p.EXTI0, Pull::Up); | 20 | let mut button = ExtiInput::new(p.PA0, p.EXTI0, Pull::Up); |
diff --git a/examples/stm32wl/src/bin/flash.rs b/examples/stm32wl/src/bin/flash.rs index 0b7417c01..e7d90dc19 100644 --- a/examples/stm32wl/src/bin/flash.rs +++ b/examples/stm32wl/src/bin/flash.rs | |||
| @@ -1,14 +1,19 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use defmt::{info, unwrap}; | 6 | use defmt::{info, unwrap}; |
| 5 | use embassy_executor::Spawner; | 7 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::flash::Flash; | 8 | use embassy_stm32::{flash::Flash, SharedData}; |
| 7 | use {defmt_rtt as _, panic_probe as _}; | 9 | use {defmt_rtt as _, panic_probe as _}; |
| 8 | 10 | ||
| 11 | #[link_section = ".shared_data"] | ||
| 12 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 13 | |||
| 9 | #[embassy_executor::main] | 14 | #[embassy_executor::main] |
| 10 | async fn main(_spawner: Spawner) { | 15 | async fn main(_spawner: Spawner) { |
| 11 | let p = embassy_stm32::init(Default::default()); | 16 | let p = embassy_stm32::init_primary(Default::default(), &SHARED_DATA); |
| 12 | info!("Hello Flash!"); | 17 | info!("Hello Flash!"); |
| 13 | 18 | ||
| 14 | const ADDR: u32 = 0x36000; | 19 | const ADDR: u32 = 0x36000; |
diff --git a/examples/stm32wl/src/bin/random.rs b/examples/stm32wl/src/bin/random.rs index 8e9fe02b2..df2ed0054 100644 --- a/examples/stm32wl/src/bin/random.rs +++ b/examples/stm32wl/src/bin/random.rs | |||
| @@ -1,17 +1,22 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use defmt::*; | 6 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 7 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::rng::{self, Rng}; | 8 | use embassy_stm32::rng::{self, Rng}; |
| 7 | use embassy_stm32::time::Hertz; | 9 | use embassy_stm32::time::Hertz; |
| 8 | use embassy_stm32::{bind_interrupts, peripherals}; | 10 | use embassy_stm32::{bind_interrupts, peripherals, SharedData}; |
| 9 | use {defmt_rtt as _, panic_probe as _}; | 11 | use {defmt_rtt as _, panic_probe as _}; |
| 10 | 12 | ||
| 11 | bind_interrupts!(struct Irqs{ | 13 | bind_interrupts!(struct Irqs{ |
| 12 | RNG => rng::InterruptHandler<peripherals::RNG>; | 14 | RNG => rng::InterruptHandler<peripherals::RNG>; |
| 13 | }); | 15 | }); |
| 14 | 16 | ||
| 17 | #[link_section = ".shared_data"] | ||
| 18 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 19 | |||
| 15 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 16 | async fn main(_spawner: Spawner) { | 21 | async fn main(_spawner: Spawner) { |
| 17 | let mut config = embassy_stm32::Config::default(); | 22 | let mut config = embassy_stm32::Config::default(); |
| @@ -32,7 +37,7 @@ async fn main(_spawner: Spawner) { | |||
| 32 | divr: Some(PllRDiv::DIV2), // sysclk 48Mhz clock (32 / 2 * 6 / 2) | 37 | divr: Some(PllRDiv::DIV2), // sysclk 48Mhz clock (32 / 2 * 6 / 2) |
| 33 | }); | 38 | }); |
| 34 | } | 39 | } |
| 35 | let p = embassy_stm32::init(config); | 40 | let p = embassy_stm32::init_primary(config, &SHARED_DATA); |
| 36 | 41 | ||
| 37 | info!("Hello World!"); | 42 | info!("Hello World!"); |
| 38 | 43 | ||
diff --git a/examples/stm32wl/src/bin/rtc.rs b/examples/stm32wl/src/bin/rtc.rs index cf7d6d220..69a9ddc4c 100644 --- a/examples/stm32wl/src/bin/rtc.rs +++ b/examples/stm32wl/src/bin/rtc.rs | |||
| @@ -1,15 +1,20 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use chrono::{NaiveDate, NaiveDateTime}; | 6 | use chrono::{NaiveDate, NaiveDateTime}; |
| 5 | use defmt::*; | 7 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 8 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::rtc::{Rtc, RtcConfig}; | 9 | use embassy_stm32::rtc::{Rtc, RtcConfig}; |
| 8 | use embassy_stm32::time::Hertz; | 10 | use embassy_stm32::time::Hertz; |
| 9 | use embassy_stm32::Config; | 11 | use embassy_stm32::{Config, SharedData}; |
| 10 | use embassy_time::Timer; | 12 | use embassy_time::Timer; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 13 | use {defmt_rtt as _, panic_probe as _}; |
| 12 | 14 | ||
| 15 | #[link_section = ".shared_data"] | ||
| 16 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 17 | |||
| 13 | #[embassy_executor::main] | 18 | #[embassy_executor::main] |
| 14 | async fn main(_spawner: Spawner) { | 19 | async fn main(_spawner: Spawner) { |
| 15 | let mut config = Config::default(); | 20 | let mut config = Config::default(); |
| @@ -31,7 +36,7 @@ async fn main(_spawner: Spawner) { | |||
| 31 | divr: Some(PllRDiv::DIV2), // sysclk 48Mhz clock (32 / 2 * 6 / 2) | 36 | divr: Some(PllRDiv::DIV2), // sysclk 48Mhz clock (32 / 2 * 6 / 2) |
| 32 | }); | 37 | }); |
| 33 | } | 38 | } |
| 34 | let p = embassy_stm32::init(config); | 39 | let p = embassy_stm32::init_primary(config, &SHARED_DATA); |
| 35 | info!("Hello World!"); | 40 | info!("Hello World!"); |
| 36 | 41 | ||
| 37 | let now = NaiveDate::from_ymd_opt(2020, 5, 15) | 42 | let now = NaiveDate::from_ymd_opt(2020, 5, 15) |
diff --git a/examples/stm32wl/src/bin/uart_async.rs b/examples/stm32wl/src/bin/uart_async.rs index 3637243a0..ece9b9201 100644 --- a/examples/stm32wl/src/bin/uart_async.rs +++ b/examples/stm32wl/src/bin/uart_async.rs | |||
| @@ -1,10 +1,12 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use core::mem::MaybeUninit; | ||
| 5 | |||
| 4 | use defmt::*; | 6 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 7 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::usart::{Config, InterruptHandler, Uart}; | 8 | use embassy_stm32::usart::{Config, InterruptHandler, Uart}; |
| 7 | use embassy_stm32::{bind_interrupts, peripherals}; | 9 | use embassy_stm32::{bind_interrupts, peripherals, SharedData}; |
| 8 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 9 | 11 | ||
| 10 | bind_interrupts!(struct Irqs{ | 12 | bind_interrupts!(struct Irqs{ |
| @@ -12,6 +14,9 @@ bind_interrupts!(struct Irqs{ | |||
| 12 | LPUART1 => InterruptHandler<peripherals::LPUART1>; | 14 | LPUART1 => InterruptHandler<peripherals::LPUART1>; |
| 13 | }); | 15 | }); |
| 14 | 16 | ||
| 17 | #[link_section = ".shared_data"] | ||
| 18 | static SHARED_DATA: MaybeUninit<SharedData> = MaybeUninit::uninit(); | ||
| 19 | |||
| 15 | /* | 20 | /* |
| 16 | Pass Incoming data from LPUART1 to USART1 | 21 | Pass Incoming data from LPUART1 to USART1 |
| 17 | Example is written for the LoRa-E5 mini v1.0, | 22 | Example is written for the LoRa-E5 mini v1.0, |
| @@ -21,7 +26,7 @@ but can be surely changed for your needs. | |||
| 21 | async fn main(_spawner: Spawner) { | 26 | async fn main(_spawner: Spawner) { |
| 22 | let mut config = embassy_stm32::Config::default(); | 27 | let mut config = embassy_stm32::Config::default(); |
| 23 | config.rcc.sys = embassy_stm32::rcc::Sysclk::HSE; | 28 | config.rcc.sys = embassy_stm32::rcc::Sysclk::HSE; |
| 24 | let p = embassy_stm32::init(config); | 29 | let p = embassy_stm32::init_primary(config, &SHARED_DATA); |
| 25 | 30 | ||
| 26 | defmt::info!("Starting system"); | 31 | defmt::info!("Starting system"); |
| 27 | 32 | ||
