diff options
| -rw-r--r-- | examples/stm32wb/src/bin/tl_mbox.rs | 14 | ||||
| -rw-r--r-- | examples/stm32wb/src/bin/tl_mbox_tx_rx.rs | 10 | ||||
| -rw-r--r-- | tests/stm32/.cargo/config.toml | 6 | ||||
| -rw-r--r-- | tests/stm32/Cargo.toml | 6 | ||||
| -rw-r--r-- | tests/stm32/build.rs | 13 | ||||
| -rw-r--r-- | tests/stm32/src/bin/tl_mbox.rs (renamed from tests/stm32/src/bin/ble.rs) | 7 |
6 files changed, 32 insertions, 24 deletions
diff --git a/examples/stm32wb/src/bin/tl_mbox.rs b/examples/stm32wb/src/bin/tl_mbox.rs index 18d93a279..8f4e70af0 100644 --- a/examples/stm32wb/src/bin/tl_mbox.rs +++ b/examples/stm32wb/src/bin/tl_mbox.rs | |||
| @@ -4,8 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::ipcc::Config; | 7 | use embassy_stm32::tl_mbox::{Config, TlMbox}; |
| 8 | use embassy_stm32::tl_mbox::TlMbox; | ||
| 9 | use embassy_stm32::{bind_interrupts, tl_mbox}; | 8 | use embassy_stm32::{bind_interrupts, tl_mbox}; |
| 10 | use embassy_time::{Duration, Timer}; | 9 | use embassy_time::{Duration, Timer}; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| @@ -41,16 +40,16 @@ async fn main(_spawner: Spawner) { | |||
| 41 | Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name. | 40 | Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name. |
| 42 | */ | 41 | */ |
| 43 | 42 | ||
| 44 | let _p = embassy_stm32::init(Default::default()); | 43 | let p = embassy_stm32::init(Default::default()); |
| 45 | info!("Hello World!"); | 44 | info!("Hello World!"); |
| 46 | 45 | ||
| 47 | let config = Config::default(); | 46 | let config = Config::default(); |
| 48 | let mbox = TlMbox::init(Irqs, config); | 47 | let mbox = TlMbox::new(p.IPCC, Irqs, config); |
| 49 | 48 | ||
| 50 | loop { | 49 | loop { |
| 51 | let wireless_fw_info = mbox.wireless_fw_info(); | 50 | let wireless_fw_info = mbox.wireless_fw_info(); |
| 52 | match wireless_fw_info { | 51 | match wireless_fw_info { |
| 53 | None => error!("not yet initialized"), | 52 | None => info!("not yet initialized"), |
| 54 | Some(fw_info) => { | 53 | Some(fw_info) => { |
| 55 | let version_major = fw_info.version_major(); | 54 | let version_major = fw_info.version_major(); |
| 56 | let version_minor = fw_info.version_minor(); | 55 | let version_minor = fw_info.version_minor(); |
| @@ -68,6 +67,9 @@ async fn main(_spawner: Spawner) { | |||
| 68 | } | 67 | } |
| 69 | } | 68 | } |
| 70 | 69 | ||
| 71 | Timer::after(Duration::from_millis(500)).await; | 70 | Timer::after(Duration::from_millis(50)).await; |
| 72 | } | 71 | } |
| 72 | |||
| 73 | info!("Test OK"); | ||
| 74 | cortex_m::asm::bkpt(); | ||
| 73 | } | 75 | } |
diff --git a/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs b/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs index 41c450a53..1724d946f 100644 --- a/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs +++ b/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs | |||
| @@ -4,8 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::ipcc::Config; | 7 | use embassy_stm32::tl_mbox::{Config, TlMbox}; |
| 8 | use embassy_stm32::tl_mbox::TlMbox; | ||
| 9 | use embassy_stm32::{bind_interrupts, tl_mbox}; | 8 | use embassy_stm32::{bind_interrupts, tl_mbox}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 9 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 10 | ||
| @@ -40,11 +39,11 @@ async fn main(_spawner: Spawner) { | |||
| 40 | Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name. | 39 | Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name. |
| 41 | */ | 40 | */ |
| 42 | 41 | ||
| 43 | let _p = embassy_stm32::init(Default::default()); | 42 | let p = embassy_stm32::init(Default::default()); |
| 44 | info!("Hello World!"); | 43 | info!("Hello World!"); |
| 45 | 44 | ||
| 46 | let config = Config::default(); | 45 | let config = Config::default(); |
| 47 | let mbox = TlMbox::init(Irqs, config); | 46 | let mbox = TlMbox::new(p.IPCC, Irqs, config); |
| 48 | 47 | ||
| 49 | info!("waiting for coprocessor to boot"); | 48 | info!("waiting for coprocessor to boot"); |
| 50 | let event_box = mbox.read().await; | 49 | let event_box = mbox.read().await; |
| @@ -94,5 +93,6 @@ async fn main(_spawner: Spawner) { | |||
| 94 | payload[3..] | 93 | payload[3..] |
| 95 | ); | 94 | ); |
| 96 | 95 | ||
| 97 | loop {} | 96 | info!("Test OK"); |
| 97 | cortex_m::asm::bkpt(); | ||
| 98 | } | 98 | } |
diff --git a/tests/stm32/.cargo/config.toml b/tests/stm32/.cargo/config.toml index 29c4799a1..48588f0b7 100644 --- a/tests/stm32/.cargo/config.toml +++ b/tests/stm32/.cargo/config.toml | |||
| @@ -3,8 +3,10 @@ build-std = ["core"] | |||
| 3 | build-std-features = ["panic_immediate_abort"] | 3 | build-std-features = ["panic_immediate_abort"] |
| 4 | 4 | ||
| 5 | [target.'cfg(all(target_arch = "arm", target_os = "none"))'] | 5 | [target.'cfg(all(target_arch = "arm", target_os = "none"))'] |
| 6 | runner = "teleprobe client run --target bluepill-stm32f103c8 --elf" | 6 | #runner = "teleprobe client run --target bluepill-stm32f103c8 --elf" |
| 7 | #runner = "teleprobe local run --chip STM32F103C8 --elf" | 7 | #runner = "teleprobe local run --chip STM32F103C8 --elf" |
| 8 | #runner = "teleprobe local run --chip STM32WB55RG --elf" | ||
| 9 | runner = "probe-run --chip STM32WB55RG" | ||
| 8 | 10 | ||
| 9 | rustflags = [ | 11 | rustflags = [ |
| 10 | # Code-size optimizations. | 12 | # Code-size optimizations. |
| @@ -14,7 +16,7 @@ rustflags = [ | |||
| 14 | ] | 16 | ] |
| 15 | 17 | ||
| 16 | [build] | 18 | [build] |
| 17 | target = "thumbv7m-none-eabi" | 19 | target = "thumbv7em-none-eabi" |
| 18 | 20 | ||
| 19 | [env] | 21 | [env] |
| 20 | DEFMT_LOG = "trace" | 22 | DEFMT_LOG = "trace" |
diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml index bd8d90abe..23b5f9caa 100644 --- a/tests/stm32/Cargo.toml +++ b/tests/stm32/Cargo.toml | |||
| @@ -12,7 +12,7 @@ stm32g071rb = ["embassy-stm32/stm32g071rb", "not-gpdma"] # Nucleo | |||
| 12 | stm32c031c6 = ["embassy-stm32/stm32c031c6", "not-gpdma"] # Nucleo | 12 | stm32c031c6 = ["embassy-stm32/stm32c031c6", "not-gpdma"] # Nucleo |
| 13 | stm32g491re = ["embassy-stm32/stm32g491re", "not-gpdma"] # Nucleo | 13 | stm32g491re = ["embassy-stm32/stm32g491re", "not-gpdma"] # Nucleo |
| 14 | stm32h755zi = ["embassy-stm32/stm32h755zi-cm7", "not-gpdma"] # Nucleo | 14 | stm32h755zi = ["embassy-stm32/stm32h755zi-cm7", "not-gpdma"] # Nucleo |
| 15 | stm32wb55rg = ["embassy-stm32/stm32wb55rg", "not-gpdma"] # Nucleo | 15 | stm32wb55rg = ["embassy-stm32/stm32wb55rg", "not-gpdma", "ble"] # Nucleo |
| 16 | stm32h563zi = ["embassy-stm32/stm32h563zi"] # Nucleo | 16 | stm32h563zi = ["embassy-stm32/stm32h563zi"] # Nucleo |
| 17 | stm32u585ai = ["embassy-stm32/stm32u585ai"] # IoT board | 17 | stm32u585ai = ["embassy-stm32/stm32u585ai"] # IoT board |
| 18 | 18 | ||
| @@ -45,8 +45,8 @@ chrono = { version = "^0.4", default-features = false, optional = true} | |||
| 45 | # BEGIN TESTS | 45 | # BEGIN TESTS |
| 46 | # Generated by gen_test.py. DO NOT EDIT. | 46 | # Generated by gen_test.py. DO NOT EDIT. |
| 47 | [[bin]] | 47 | [[bin]] |
| 48 | name = "ble" | 48 | name = "tl_mbox" |
| 49 | path = "src/bin/ble.rs" | 49 | path = "src/bin/tl_mbox.rs" |
| 50 | required-features = [ "ble",] | 50 | required-features = [ "ble",] |
| 51 | 51 | ||
| 52 | [[bin]] | 52 | [[bin]] |
diff --git a/tests/stm32/build.rs b/tests/stm32/build.rs index ca76b70bb..b4583147e 100644 --- a/tests/stm32/build.rs +++ b/tests/stm32/build.rs | |||
| @@ -9,17 +9,22 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
| 9 | println!("cargo:rustc-link-arg-bins=--nmagic"); | 9 | println!("cargo:rustc-link-arg-bins=--nmagic"); |
| 10 | 10 | ||
| 11 | // too little RAM to run from RAM. | 11 | // too little RAM to run from RAM. |
| 12 | if cfg!(any(feature = "stm32f103c8", feature = "stm32c031c6")) { | 12 | if cfg!(any( |
| 13 | feature = "stm32f103c8", | ||
| 14 | feature = "stm32c031c6", | ||
| 15 | feature = "stm32wb55rg" | ||
| 16 | )) { | ||
| 13 | println!("cargo:rustc-link-arg-bins=-Tlink.x"); | 17 | println!("cargo:rustc-link-arg-bins=-Tlink.x"); |
| 14 | println!("cargo:rerun-if-changed=link.x"); | 18 | println!("cargo:rerun-if-changed=link.x"); |
| 15 | } else if cfg!(feature = "stm32wb55rg") { | ||
| 16 | println!("cargo:rustc-link-arg-bins=-Tlink.x"); | ||
| 17 | fs::write(out.join("memory.x"), include_bytes!("memory_ble.x")).unwrap(); | ||
| 18 | } else { | 19 | } else { |
| 19 | println!("cargo:rustc-link-arg-bins=-Tlink_ram.x"); | 20 | println!("cargo:rustc-link-arg-bins=-Tlink_ram.x"); |
| 20 | println!("cargo:rerun-if-changed=link_ram.x"); | 21 | println!("cargo:rerun-if-changed=link_ram.x"); |
| 21 | } | 22 | } |
| 22 | 23 | ||
| 24 | if cfg!(feature = "stm32wb55rg") { | ||
| 25 | println!("cargo:rustc-link-arg-bins=-Ttl_mbox.x"); | ||
| 26 | } | ||
| 27 | |||
| 23 | println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); | 28 | println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); |
| 24 | 29 | ||
| 25 | Ok(()) | 30 | Ok(()) |
diff --git a/tests/stm32/src/bin/ble.rs b/tests/stm32/src/bin/tl_mbox.rs index db5cc611d..626e7ac6f 100644 --- a/tests/stm32/src/bin/ble.rs +++ b/tests/stm32/src/bin/tl_mbox.rs | |||
| @@ -7,8 +7,7 @@ | |||
| 7 | #[path = "../example_common.rs"] | 7 | #[path = "../example_common.rs"] |
| 8 | mod example_common; | 8 | mod example_common; |
| 9 | use embassy_executor::Spawner; | 9 | use embassy_executor::Spawner; |
| 10 | use embassy_stm32::ipcc::Config; | 10 | use embassy_stm32::tl_mbox::{Config, TlMbox}; |
| 11 | use embassy_stm32::tl_mbox::TlMbox; | ||
| 12 | use embassy_stm32::{bind_interrupts, tl_mbox}; | 11 | use embassy_stm32::{bind_interrupts, tl_mbox}; |
| 13 | use embassy_time::{Duration, Timer}; | 12 | use embassy_time::{Duration, Timer}; |
| 14 | use example_common::*; | 13 | use example_common::*; |
| @@ -20,11 +19,11 @@ bind_interrupts!(struct Irqs{ | |||
| 20 | 19 | ||
| 21 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 22 | async fn main(_spawner: Spawner) { | 21 | async fn main(_spawner: Spawner) { |
| 23 | let _p = embassy_stm32::init(config()); | 22 | let p = embassy_stm32::init(config()); |
| 24 | info!("Hello World!"); | 23 | info!("Hello World!"); |
| 25 | 24 | ||
| 26 | let config = Config::default(); | 25 | let config = Config::default(); |
| 27 | let mbox = TlMbox::init(Irqs, config); | 26 | let mbox = TlMbox::new(p.IPCC, Irqs, config); |
| 28 | 27 | ||
| 29 | loop { | 28 | loop { |
| 30 | let wireless_fw_info = mbox.wireless_fw_info(); | 29 | let wireless_fw_info = mbox.wireless_fw_info(); |
