aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32wb/src/bin/tl_mbox.rs8
-rw-r--r--examples/stm32wb/src/bin/tl_mbox_tx_rx.rs23
2 files changed, 17 insertions, 14 deletions
diff --git a/examples/stm32wb/src/bin/tl_mbox.rs b/examples/stm32wb/src/bin/tl_mbox.rs
index ae36a7e79..9fc4b8aac 100644
--- a/examples/stm32wb/src/bin/tl_mbox.rs
+++ b/examples/stm32wb/src/bin/tl_mbox.rs
@@ -5,14 +5,14 @@
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::bind_interrupts; 7use embassy_stm32::bind_interrupts;
8use embassy_stm32::ipcc::Config; 8use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
9use embassy_stm32_wpan::TlMbox; 9use embassy_stm32_wpan::TlMbox;
10use embassy_time::{Duration, Timer}; 10use embassy_time::{Duration, Timer};
11use {defmt_rtt as _, panic_probe as _}; 11use {defmt_rtt as _, panic_probe as _};
12 12
13bind_interrupts!(struct Irqs{ 13bind_interrupts!(struct Irqs{
14 IPCC_C1_RX => embassy_stm32_wpan::ReceiveInterruptHandler; 14 IPCC_C1_RX => ReceiveInterruptHandler;
15 IPCC_C1_TX => embassy_stm32_wpan::TransmitInterruptHandler; 15 IPCC_C1_TX => TransmitInterruptHandler;
16}); 16});
17 17
18#[embassy_executor::main] 18#[embassy_executor::main]
@@ -48,7 +48,7 @@ async fn main(_spawner: Spawner) {
48 let mbox = TlMbox::init(p.IPCC, Irqs, config); 48 let mbox = TlMbox::init(p.IPCC, Irqs, config);
49 49
50 loop { 50 loop {
51 let wireless_fw_info = mbox.wireless_fw_info(); 51 let wireless_fw_info = mbox.sys_subsystem.wireless_fw_info();
52 match wireless_fw_info { 52 match wireless_fw_info {
53 None => info!("not yet initialized"), 53 None => info!("not yet initialized"),
54 Some(fw_info) => { 54 Some(fw_info) => {
diff --git a/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs b/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs
index 3132ab3e4..439bd01ac 100644
--- a/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs
+++ b/examples/stm32wb/src/bin/tl_mbox_tx_rx.rs
@@ -5,14 +5,13 @@
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::bind_interrupts; 7use embassy_stm32::bind_interrupts;
8use embassy_stm32::ipcc::Config; 8use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
9use embassy_stm32_wpan::rc::RadioCoprocessor;
10use embassy_stm32_wpan::TlMbox; 9use embassy_stm32_wpan::TlMbox;
11use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
12 11
13bind_interrupts!(struct Irqs{ 12bind_interrupts!(struct Irqs{
14 IPCC_C1_RX => embassy_stm32_wpan::ReceiveInterruptHandler; 13 IPCC_C1_RX => ReceiveInterruptHandler;
15 IPCC_C1_TX => embassy_stm32_wpan::TransmitInterruptHandler; 14 IPCC_C1_TX => TransmitInterruptHandler;
16}); 15});
17 16
18#[embassy_executor::main] 17#[embassy_executor::main]
@@ -47,14 +46,18 @@ async fn main(_spawner: Spawner) {
47 let config = Config::default(); 46 let config = Config::default();
48 let mbox = TlMbox::init(p.IPCC, Irqs, config); 47 let mbox = TlMbox::init(p.IPCC, Irqs, config);
49 48
50 let mut rc = RadioCoprocessor::new(mbox); 49 let sys_event = mbox.sys_subsystem.read().await;
50 info!("sys event: {}", sys_event.payload());
51 51
52 let response = rc.read().await; 52 mbox.sys_subsystem.shci_c2_ble_init(Default::default()).await;
53 info!("coprocessor ready {}", response);
54 53
55 rc.write(&[0x01, 0x03, 0x0c, 0x00, 0x00]); 54 info!("starting ble...");
56 let response = rc.read().await; 55 mbox.ble_subsystem.write(0x0c, &[]).await;
57 info!("ble reset rsp {}", response); 56
57 info!("waiting for ble...");
58 let ble_event = mbox.ble_subsystem.read().await;
59
60 info!("ble event: {}", ble_event.payload());
58 61
59 info!("Test OK"); 62 info!("Test OK");
60 cortex_m::asm::bkpt(); 63 cortex_m::asm::bkpt();