stm32/ipcc: static methods for IPCC

This commit is contained in:
goueslati
2023-05-26 09:56:55 +01:00
parent 524a89cc72
commit 2ccf9f3abd
9 changed files with 104 additions and 138 deletions

View File

@ -4,7 +4,7 @@
use defmt::*;
use embassy_executor::Spawner;
use embassy_stm32::ipcc::{Config, Ipcc};
use embassy_stm32::ipcc::Config;
use embassy_stm32::tl_mbox::TlMbox;
use embassy_stm32::{bind_interrupts, tl_mbox};
use embassy_time::{Duration, Timer};
@ -41,13 +41,11 @@ async fn main(_spawner: Spawner) {
Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name.
*/
let p = embassy_stm32::init(Default::default());
let _p = embassy_stm32::init(Default::default());
info!("Hello World!");
let config = Config::default();
let mut ipcc = Ipcc::new(p.IPCC, config);
let mbox = TlMbox::init(&mut ipcc, Irqs);
let mbox = TlMbox::init(Irqs, config);
loop {
let wireless_fw_info = mbox.wireless_fw_info();

View File

@ -4,7 +4,7 @@
use defmt::*;
use embassy_executor::Spawner;
use embassy_stm32::ipcc::{Config, Ipcc};
use embassy_stm32::ipcc::Config;
use embassy_stm32::tl_mbox::TlMbox;
use embassy_stm32::{bind_interrupts, tl_mbox};
use {defmt_rtt as _, panic_probe as _};
@ -40,16 +40,11 @@ async fn main(_spawner: Spawner) {
Note: extended stack versions are not supported at this time. Do not attempt to install a stack with "extended" in the name.
*/
let p = embassy_stm32::init(Default::default());
let _p = embassy_stm32::init(Default::default());
info!("Hello World!");
let config = Config::default();
let mut ipcc = Ipcc::new(p.IPCC, config);
let mbox = TlMbox::init(&mut ipcc, Irqs);
// initialize ble stack, does not return a response
mbox.shci_ble_init(&mut ipcc, Default::default());
let mbox = TlMbox::init(Irqs, config);
info!("waiting for coprocessor to boot");
let event_box = mbox.read().await;
@ -74,10 +69,11 @@ async fn main(_spawner: Spawner) {
);
}
mbox.shci_ble_init(&mut ipcc, Default::default());
// initialize ble stack, does not return a response
mbox.shci_ble_init(Default::default());
info!("resetting BLE");
mbox.send_ble_cmd(&mut ipcc, &[0x01, 0x03, 0x0c, 0x00, 0x00]);
mbox.send_ble_cmd(&[0x01, 0x03, 0x0c, 0x00, 0x00]);
let event_box = mbox.read().await;
@ -92,7 +88,10 @@ async fn main(_spawner: Spawner) {
info!(
"==> kind: {:#04x}, code: {:#04x}, payload_length: {}, payload: {:#04x}",
kind, code, payload_len, payload
kind,
code,
payload_len,
payload[3..]
);
loop {}