diff options
| author | xoviat <[email protected]> | 2023-06-17 15:37:34 -0500 |
|---|---|---|
| committer | xoviat <[email protected]> | 2023-06-17 15:37:34 -0500 |
| commit | 443550b353c733aee7d122468a82df432014d8fe (patch) | |
| tree | b4b038a0c874b69a4113d021dab9d2dcf7ac36b9 /tests | |
| parent | 6d7d617f40399c5ffaa588f9e5dfefd34164c531 (diff) | |
stm32/wpan: use new ownership model
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/stm32/src/bin/tl_mbox.rs | 51 |
1 files changed, 20 insertions, 31 deletions
diff --git a/tests/stm32/src/bin/tl_mbox.rs b/tests/stm32/src/bin/tl_mbox.rs index 259889e35..f6641ae31 100644 --- a/tests/stm32/src/bin/tl_mbox.rs +++ b/tests/stm32/src/bin/tl_mbox.rs | |||
| @@ -13,8 +13,6 @@ use embassy_executor::Spawner; | |||
| 13 | use embassy_futures::poll_once; | 13 | use embassy_futures::poll_once; |
| 14 | use embassy_stm32::bind_interrupts; | 14 | use embassy_stm32::bind_interrupts; |
| 15 | use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler}; | 15 | use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler}; |
| 16 | use embassy_stm32_wpan::ble::Ble; | ||
| 17 | use embassy_stm32_wpan::sys::Sys; | ||
| 18 | use embassy_stm32_wpan::{mm, TlMbox}; | 16 | use embassy_stm32_wpan::{mm, TlMbox}; |
| 19 | use embassy_time::{Duration, Timer}; | 17 | use embassy_time::{Duration, Timer}; |
| 20 | 18 | ||
| @@ -24,8 +22,8 @@ bind_interrupts!(struct Irqs{ | |||
| 24 | }); | 22 | }); |
| 25 | 23 | ||
| 26 | #[embassy_executor::task] | 24 | #[embassy_executor::task] |
| 27 | async fn run_mm_queue() { | 25 | async fn run_mm_queue(memory_manager: mm::MemoryManager) { |
| 28 | mm::MemoryManager::run_queue().await; | 26 | memory_manager.run_queue().await; |
| 29 | } | 27 | } |
| 30 | 28 | ||
| 31 | #[embassy_executor::main] | 29 | #[embassy_executor::main] |
| @@ -33,50 +31,41 @@ async fn main(spawner: Spawner) { | |||
| 33 | let p = embassy_stm32::init(config()); | 31 | let p = embassy_stm32::init(config()); |
| 34 | info!("Hello World!"); | 32 | info!("Hello World!"); |
| 35 | 33 | ||
| 36 | spawner.spawn(run_mm_queue()).unwrap(); | ||
| 37 | |||
| 38 | let config = Config::default(); | 34 | let config = Config::default(); |
| 39 | let mbox = TlMbox::init(p.IPCC, Irqs, config); | 35 | let mbox = TlMbox::init(p.IPCC, Irqs, config); |
| 40 | 36 | ||
| 41 | let ready_event = Sys::read().await; | 37 | spawner.spawn(run_mm_queue(mbox.mm_subsystem)).unwrap(); |
| 42 | let _ = poll_once(Sys::read()); // clear rx not | 38 | |
| 39 | let ready_event = mbox.sys_subsystem.read().await; | ||
| 40 | let _ = poll_once(mbox.sys_subsystem.read()); // clear rx not | ||
| 43 | 41 | ||
| 44 | info!("coprocessor ready {}", ready_event.payload()); | 42 | info!("coprocessor ready {}", ready_event.payload()); |
| 45 | 43 | ||
| 46 | // test memory manager | 44 | // test memory manager |
| 47 | mem::drop(ready_event); | 45 | mem::drop(ready_event); |
| 48 | 46 | ||
| 49 | loop { | 47 | let fw_info = mbox.sys_subsystem.wireless_fw_info().unwrap(); |
| 50 | let wireless_fw_info = mbox.wireless_fw_info(); | 48 | let version_major = fw_info.version_major(); |
| 51 | match wireless_fw_info { | 49 | let version_minor = fw_info.version_minor(); |
| 52 | None => {} | 50 | let subversion = fw_info.subversion(); |
| 53 | Some(fw_info) => { | ||
| 54 | let version_major = fw_info.version_major(); | ||
| 55 | let version_minor = fw_info.version_minor(); | ||
| 56 | let subversion = fw_info.subversion(); | ||
| 57 | |||
| 58 | let sram2a_size = fw_info.sram2a_size(); | ||
| 59 | let sram2b_size = fw_info.sram2b_size(); | ||
| 60 | 51 | ||
| 61 | info!( | 52 | let sram2a_size = fw_info.sram2a_size(); |
| 62 | "version {}.{}.{} - SRAM2a {} - SRAM2b {}", | 53 | let sram2b_size = fw_info.sram2b_size(); |
| 63 | version_major, version_minor, subversion, sram2a_size, sram2b_size | ||
| 64 | ); | ||
| 65 | 54 | ||
| 66 | break; | 55 | info!( |
| 67 | } | 56 | "version {}.{}.{} - SRAM2a {} - SRAM2b {}", |
| 68 | } | 57 | version_major, version_minor, subversion, sram2a_size, sram2b_size |
| 58 | ); | ||
| 69 | 59 | ||
| 70 | Timer::after(Duration::from_millis(50)).await; | 60 | Timer::after(Duration::from_millis(50)).await; |
| 71 | } | ||
| 72 | 61 | ||
| 73 | Sys::shci_c2_ble_init(Default::default()).await; | 62 | mbox.sys_subsystem.shci_c2_ble_init(Default::default()).await; |
| 74 | 63 | ||
| 75 | info!("starting ble..."); | 64 | info!("starting ble..."); |
| 76 | Ble::write(0x0c, &[]).await; | 65 | mbox.ble_subsystem.write(0x0c, &[]).await; |
| 77 | 66 | ||
| 78 | info!("waiting for ble..."); | 67 | info!("waiting for ble..."); |
| 79 | let ble_event = Ble::read().await; | 68 | let ble_event = mbox.ble_subsystem.read().await; |
| 80 | 69 | ||
| 81 | info!("ble event: {}", ble_event.payload()); | 70 | info!("ble event: {}", ble_event.payload()); |
| 82 | 71 | ||
