aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/tl_mbox/sys.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-stm32/src/tl_mbox/sys.rs')
-rw-r--r--embassy-stm32/src/tl_mbox/sys.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/embassy-stm32/src/tl_mbox/sys.rs b/embassy-stm32/src/tl_mbox/sys.rs
new file mode 100644
index 000000000..13ae7f9f9
--- /dev/null
+++ b/embassy-stm32/src/tl_mbox/sys.rs
@@ -0,0 +1,24 @@
1use core::mem::MaybeUninit;
2
3use super::unsafe_linked_list::LST_init_head;
4use super::{channels, SysTable, SYSTEM_EVT_QUEUE, SYS_CMD_BUF, TL_SYS_TABLE};
5use crate::ipcc::Ipcc;
6
7pub struct Sys;
8
9impl Sys {
10 pub fn new(ipcc: &mut Ipcc) -> Self {
11 unsafe {
12 LST_init_head(SYSTEM_EVT_QUEUE.as_mut_ptr());
13
14 TL_SYS_TABLE = MaybeUninit::new(SysTable {
15 pcmd_buffer: SYS_CMD_BUF.as_mut_ptr(),
16 sys_queue: SYSTEM_EVT_QUEUE.as_ptr(),
17 });
18 }
19
20 ipcc.c1_set_rx_channel(channels::cpu2::IPCC_SYSTEM_EVENT_CHANNEL, true);
21
22 Sys
23 }
24}