aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/tl_mbox/ble.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-stm32/src/tl_mbox/ble.rs')
-rw-r--r--embassy-stm32/src/tl_mbox/ble.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/embassy-stm32/src/tl_mbox/ble.rs b/embassy-stm32/src/tl_mbox/ble.rs
new file mode 100644
index 000000000..a2c0758d1
--- /dev/null
+++ b/embassy-stm32/src/tl_mbox/ble.rs
@@ -0,0 +1,26 @@
1use core::mem::MaybeUninit;
2
3use super::unsafe_linked_list::LST_init_head;
4use super::{channels, BleTable, BLE_CMD_BUFFER, CS_BUFFER, EVT_QUEUE, HCI_ACL_DATA_BUFFER, TL_BLE_TABLE};
5use crate::ipcc::Ipcc;
6
7pub struct Ble;
8
9impl Ble {
10 pub fn new(ipcc: &mut Ipcc) -> Self {
11 unsafe {
12 LST_init_head(EVT_QUEUE.as_mut_ptr());
13
14 TL_BLE_TABLE = MaybeUninit::new(BleTable {
15 pcmd_buffer: BLE_CMD_BUFFER.as_mut_ptr().cast(),
16 pcs_buffer: CS_BUFFER.as_mut_ptr().cast(),
17 pevt_queue: EVT_QUEUE.as_ptr().cast(),
18 phci_acl_data_buffer: HCI_ACL_DATA_BUFFER.as_mut_ptr().cast(),
19 });
20 }
21
22 ipcc.c1_set_rx_channel(channels::cpu2::IPCC_BLE_EVENT_CHANNEL, true);
23
24 Ble
25 }
26}