diff options
| author | xoviat <[email protected]> | 2023-06-17 20:48:37 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-17 20:48:37 +0000 |
| commit | ae83e6f5367197feb8361b9a28adbdedbe37e0c5 (patch) | |
| tree | 79ad59816285ee938f6352e8abde15a62d06d9ba /examples | |
| parent | ec36225f8ab35fab149971e587ef506aa1c9d1ca (diff) | |
| parent | 443550b353c733aee7d122468a82df432014d8fe (diff) | |
Merge pull request #1566 from xoviat/tl-mbox-2
tl-mbox: switch to new ipcc mechanism
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32wb/src/bin/tl_mbox.rs | 8 | ||||
| -rw-r--r-- | examples/stm32wb/src/bin/tl_mbox_tx_rx.rs | 23 |
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 @@ | |||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::bind_interrupts; | 7 | use embassy_stm32::bind_interrupts; |
| 8 | use embassy_stm32::ipcc::Config; | 8 | use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler}; |
| 9 | use embassy_stm32_wpan::TlMbox; | 9 | use embassy_stm32_wpan::TlMbox; |
| 10 | use embassy_time::{Duration, Timer}; | 10 | use embassy_time::{Duration, Timer}; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 11 | use {defmt_rtt as _, panic_probe as _}; |
| 12 | 12 | ||
| 13 | bind_interrupts!(struct Irqs{ | 13 | bind_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 @@ | |||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::bind_interrupts; | 7 | use embassy_stm32::bind_interrupts; |
| 8 | use embassy_stm32::ipcc::Config; | 8 | use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler}; |
| 9 | use embassy_stm32_wpan::rc::RadioCoprocessor; | ||
| 10 | use embassy_stm32_wpan::TlMbox; | 9 | use embassy_stm32_wpan::TlMbox; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 12 | 11 | ||
| 13 | bind_interrupts!(struct Irqs{ | 12 | bind_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(); |
