aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-06-17 15:37:34 -0500
committerxoviat <[email protected]>2023-06-17 15:37:34 -0500
commit443550b353c733aee7d122468a82df432014d8fe (patch)
treeb4b038a0c874b69a4113d021dab9d2dcf7ac36b9 /tests
parent6d7d617f40399c5ffaa588f9e5dfefd34164c531 (diff)
stm32/wpan: use new ownership model
Diffstat (limited to 'tests')
-rw-r--r--tests/stm32/src/bin/tl_mbox.rs51
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;
13use embassy_futures::poll_once; 13use embassy_futures::poll_once;
14use embassy_stm32::bind_interrupts; 14use embassy_stm32::bind_interrupts;
15use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler}; 15use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
16use embassy_stm32_wpan::ble::Ble;
17use embassy_stm32_wpan::sys::Sys;
18use embassy_stm32_wpan::{mm, TlMbox}; 16use embassy_stm32_wpan::{mm, TlMbox};
19use embassy_time::{Duration, Timer}; 17use 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]
27async fn run_mm_queue() { 25async 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