aboutsummaryrefslogtreecommitdiff
path: root/tests/stm32/src
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-06-19 15:52:33 -0500
committerxoviat <[email protected]>2023-06-19 15:52:33 -0500
commitaaad9068156305e5f6f41ee4013e025083bd0668 (patch)
tree67a08c8a512e8791433891a3b6deec813fc4c578 /tests/stm32/src
parent35083b262b364387713f4273649b62180123182c (diff)
parent3c70f799a28f5f28d84fa8ee8b4b232f5e9aad82 (diff)
Merge branch 'main' of https://github.com/embassy-rs/embassy into can
Diffstat (limited to 'tests/stm32/src')
-rw-r--r--tests/stm32/src/bin/rtc.rs6
-rw-r--r--tests/stm32/src/bin/tl_mbox.rs71
2 files changed, 48 insertions, 29 deletions
diff --git a/tests/stm32/src/bin/rtc.rs b/tests/stm32/src/bin/rtc.rs
index 32d35c42c..582df5753 100644
--- a/tests/stm32/src/bin/rtc.rs
+++ b/tests/stm32/src/bin/rtc.rs
@@ -24,10 +24,8 @@ async fn main(_spawner: Spawner) {
24 24
25 info!("Starting LSI"); 25 info!("Starting LSI");
26 26
27 unsafe { 27 pac::RCC.csr().modify(|w| w.set_lsion(true));
28 pac::RCC.csr().modify(|w| w.set_lsion(true)); 28 while !pac::RCC.csr().read().lsirdy() {}
29 while !pac::RCC.csr().read().lsirdy() {}
30 }
31 29
32 info!("Started LSI"); 30 info!("Started LSI");
33 31
diff --git a/tests/stm32/src/bin/tl_mbox.rs b/tests/stm32/src/bin/tl_mbox.rs
index fab9f0e1b..f6641ae31 100644
--- a/tests/stm32/src/bin/tl_mbox.rs
+++ b/tests/stm32/src/bin/tl_mbox.rs
@@ -6,49 +6,70 @@
6#[path = "../common.rs"] 6#[path = "../common.rs"]
7mod common; 7mod common;
8 8
9use core::mem;
10
9use common::*; 11use common::*;
10use embassy_executor::Spawner; 12use embassy_executor::Spawner;
11use embassy_stm32::tl_mbox::{Config, TlMbox}; 13use embassy_futures::poll_once;
12use embassy_stm32::{bind_interrupts, tl_mbox}; 14use embassy_stm32::bind_interrupts;
15use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
16use embassy_stm32_wpan::{mm, TlMbox};
13use embassy_time::{Duration, Timer}; 17use embassy_time::{Duration, Timer};
14 18
15bind_interrupts!(struct Irqs{ 19bind_interrupts!(struct Irqs{
16 IPCC_C1_RX => tl_mbox::ReceiveInterruptHandler; 20 IPCC_C1_RX => ReceiveInterruptHandler;
17 IPCC_C1_TX => tl_mbox::TransmitInterruptHandler; 21 IPCC_C1_TX => TransmitInterruptHandler;
18}); 22});
19 23
24#[embassy_executor::task]
25async fn run_mm_queue(memory_manager: mm::MemoryManager) {
26 memory_manager.run_queue().await;
27}
28
20#[embassy_executor::main] 29#[embassy_executor::main]
21async fn main(_spawner: Spawner) { 30async fn main(spawner: Spawner) {
22 let p = embassy_stm32::init(config()); 31 let p = embassy_stm32::init(config());
23 info!("Hello World!"); 32 info!("Hello World!");
24 33
25 let config = Config::default(); 34 let config = Config::default();
26 let mbox = TlMbox::new(p.IPCC, Irqs, config); 35 let mbox = TlMbox::init(p.IPCC, Irqs, config);
36
37 spawner.spawn(run_mm_queue(mbox.mm_subsystem)).unwrap();
38
39 let ready_event = mbox.sys_subsystem.read().await;
40 let _ = poll_once(mbox.sys_subsystem.read()); // clear rx not
41
42 info!("coprocessor ready {}", ready_event.payload());
43
44 // test memory manager
45 mem::drop(ready_event);
46
47 let fw_info = mbox.sys_subsystem.wireless_fw_info().unwrap();
48 let version_major = fw_info.version_major();
49 let version_minor = fw_info.version_minor();
50 let subversion = fw_info.subversion();
51
52 let sram2a_size = fw_info.sram2a_size();
53 let sram2b_size = fw_info.sram2b_size();
54
55 info!(
56 "version {}.{}.{} - SRAM2a {} - SRAM2b {}",
57 version_major, version_minor, subversion, sram2a_size, sram2b_size
58 );
27 59
28 loop { 60 Timer::after(Duration::from_millis(50)).await;
29 let wireless_fw_info = mbox.wireless_fw_info();
30 match wireless_fw_info {
31 None => {}
32 Some(fw_info) => {
33 let version_major = fw_info.version_major();
34 let version_minor = fw_info.version_minor();
35 let subversion = fw_info.subversion();
36 61
37 let sram2a_size = fw_info.sram2a_size(); 62 mbox.sys_subsystem.shci_c2_ble_init(Default::default()).await;
38 let sram2b_size = fw_info.sram2b_size();
39 63
40 info!( 64 info!("starting ble...");
41 "version {}.{}.{} - SRAM2a {} - SRAM2b {}", 65 mbox.ble_subsystem.write(0x0c, &[]).await;
42 version_major, version_minor, subversion, sram2a_size, sram2b_size
43 );
44 66
45 break; 67 info!("waiting for ble...");
46 } 68 let ble_event = mbox.ble_subsystem.read().await;
47 }
48 69
49 Timer::after(Duration::from_millis(50)).await; 70 info!("ble event: {}", ble_event.payload());
50 }
51 71
72 Timer::after(Duration::from_millis(150)).await;
52 info!("Test OK"); 73 info!("Test OK");
53 cortex_m::asm::bkpt(); 74 cortex_m::asm::bkpt();
54} 75}