diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/stm32/build.rs | 3 | ||||
| -rw-r--r-- | tests/stm32/memory_ble.x | 23 | ||||
| -rw-r--r-- | tests/stm32/src/bin/ble.rs | 10 |
3 files changed, 33 insertions, 3 deletions
diff --git a/tests/stm32/build.rs b/tests/stm32/build.rs index 7ae311778..ca76b70bb 100644 --- a/tests/stm32/build.rs +++ b/tests/stm32/build.rs | |||
| @@ -12,6 +12,9 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
| 12 | if cfg!(any(feature = "stm32f103c8", feature = "stm32c031c6")) { | 12 | if cfg!(any(feature = "stm32f103c8", feature = "stm32c031c6")) { |
| 13 | println!("cargo:rustc-link-arg-bins=-Tlink.x"); | 13 | println!("cargo:rustc-link-arg-bins=-Tlink.x"); |
| 14 | println!("cargo:rerun-if-changed=link.x"); | 14 | 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(); | ||
| 15 | } else { | 18 | } else { |
| 16 | println!("cargo:rustc-link-arg-bins=-Tlink_ram.x"); | 19 | println!("cargo:rustc-link-arg-bins=-Tlink_ram.x"); |
| 17 | println!("cargo:rerun-if-changed=link_ram.x"); | 20 | println!("cargo:rerun-if-changed=link_ram.x"); |
diff --git a/tests/stm32/memory_ble.x b/tests/stm32/memory_ble.x new file mode 100644 index 000000000..4332e2c72 --- /dev/null +++ b/tests/stm32/memory_ble.x | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | /* | ||
| 2 | Memory size for STM32WB55xG with 512K FLASH | ||
| 3 | */ | ||
| 4 | |||
| 5 | MEMORY | ||
| 6 | { | ||
| 7 | FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K | ||
| 8 | RAM (xrw) : ORIGIN = 0x20000008, LENGTH = 0x2FFF8 | ||
| 9 | RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10K | ||
| 10 | } | ||
| 11 | |||
| 12 | /* Place stack at the end of SRAM1 */ | ||
| 13 | _stack_start = ORIGIN(RAM) + LENGTH(RAM); | ||
| 14 | |||
| 15 | /* | ||
| 16 | * Scatter the mailbox interface memory sections in shared memory | ||
| 17 | */ | ||
| 18 | SECTIONS { | ||
| 19 | TL_REF_TABLE (NOLOAD) : { *(TL_REF_TABLE) } >RAM_SHARED | ||
| 20 | |||
| 21 | MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED | ||
| 22 | MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED | ||
| 23 | } | ||
diff --git a/tests/stm32/src/bin/ble.rs b/tests/stm32/src/bin/ble.rs index f4c864c65..aedf9a380 100644 --- a/tests/stm32/src/bin/ble.rs +++ b/tests/stm32/src/bin/ble.rs | |||
| @@ -7,6 +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::interrupt; | ||
| 10 | use embassy_stm32::ipcc::{Config, Ipcc}; | 11 | use embassy_stm32::ipcc::{Config, Ipcc}; |
| 11 | use embassy_stm32::tl_mbox::TlMbox; | 12 | use embassy_stm32::tl_mbox::TlMbox; |
| 12 | use embassy_time::{Duration, Timer}; | 13 | use embassy_time::{Duration, Timer}; |
| @@ -20,12 +21,15 @@ async fn main(_spawner: Spawner) { | |||
| 20 | let config = Config::default(); | 21 | let config = Config::default(); |
| 21 | let mut ipcc = Ipcc::new(p.IPCC, config); | 22 | let mut ipcc = Ipcc::new(p.IPCC, config); |
| 22 | 23 | ||
| 23 | let mbox = TlMbox::init(&mut ipcc); | 24 | let rx_irq = interrupt::take!(IPCC_C1_RX); |
| 25 | let tx_irq = interrupt::take!(IPCC_C1_TX); | ||
| 26 | |||
| 27 | let mbox = TlMbox::init(&mut ipcc, rx_irq, tx_irq); | ||
| 24 | 28 | ||
| 25 | loop { | 29 | loop { |
| 26 | let wireless_fw_info = mbox.wireless_fw_info(); | 30 | let wireless_fw_info = mbox.wireless_fw_info(); |
| 27 | match wireless_fw_info { | 31 | match wireless_fw_info { |
| 28 | None => error!("not yet initialized"), | 32 | None => {} |
| 29 | Some(fw_info) => { | 33 | Some(fw_info) => { |
| 30 | let version_major = fw_info.version_major(); | 34 | let version_major = fw_info.version_major(); |
| 31 | let version_minor = fw_info.version_minor(); | 35 | let version_minor = fw_info.version_minor(); |
| @@ -43,7 +47,7 @@ async fn main(_spawner: Spawner) { | |||
| 43 | } | 47 | } |
| 44 | } | 48 | } |
| 45 | 49 | ||
| 46 | Timer::after(Duration::from_millis(500)).await; | 50 | Timer::after(Duration::from_millis(50)).await; |
| 47 | } | 51 | } |
| 48 | 52 | ||
| 49 | info!("Test OK"); | 53 | info!("Test OK"); |
