stm32/wpan: reorg subsystems
This commit is contained in:
		
							parent
							
								
									4dd48099be
								
							
						
					
					
						commit
						29f32ce00e
					
				@ -145,14 +145,14 @@ impl Drop for EvtBox {
 | 
				
			|||||||
    fn drop(&mut self) {
 | 
					    fn drop(&mut self) {
 | 
				
			||||||
        #[cfg(feature = "ble")]
 | 
					        #[cfg(feature = "ble")]
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            use crate::mm;
 | 
					            use crate::sub::mm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            mm::MemoryManager::drop_event_packet(self.ptr)
 | 
					            mm::MemoryManager::drop_event_packet(self.ptr)
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #[cfg(feature = "mac")]
 | 
					        #[cfg(feature = "mac")]
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            use crate::mac;
 | 
					            use crate::sub::mac;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            mac::Mac::drop_event_packet(self.ptr)
 | 
					            mac::Mac::drop_event_packet(self.ptr)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,9 @@
 | 
				
			|||||||
 | 
					use core::ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::cmd::CmdPacket;
 | 
					use crate::cmd::CmdPacket;
 | 
				
			||||||
use crate::consts::{TlPacketType, TL_EVT_HEADER_SIZE};
 | 
					use crate::consts::{TlPacketType, TL_EVT_HEADER_SIZE};
 | 
				
			||||||
use crate::evt::{CcEvt, EvtPacket, EvtSerial};
 | 
					use crate::evt::{CcEvt, EvtPacket, EvtSerial};
 | 
				
			||||||
use crate::tables::{DeviceInfoTable, RssInfoTable, SafeBootInfoTable, WirelessFwInfoTable};
 | 
					use crate::tables::{DeviceInfoTable, RssInfoTable, SafeBootInfoTable, WirelessFwInfoTable, TL_DEVICE_INFO_TABLE};
 | 
				
			||||||
use crate::TL_REF_TABLE;
 | 
					use crate::TL_REF_TABLE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const TL_BLEEVT_CC_OPCODE: u8 = 0x0e;
 | 
					const TL_BLEEVT_CC_OPCODE: u8 = 0x0e;
 | 
				
			||||||
@ -38,7 +40,7 @@ impl Default for LhciC1DeviceInformationCcrp {
 | 
				
			|||||||
            safe_boot_info_table,
 | 
					            safe_boot_info_table,
 | 
				
			||||||
            rss_info_table,
 | 
					            rss_info_table,
 | 
				
			||||||
            wireless_fw_info_table,
 | 
					            wireless_fw_info_table,
 | 
				
			||||||
        } = unsafe { &*(*TL_REF_TABLE.as_ptr()).device_info_table }.clone();
 | 
					        } = unsafe { ptr::read_volatile(TL_DEVICE_INFO_TABLE.as_ptr()) };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let device_id = stm32_device_signature::device_id();
 | 
					        let device_id = stm32_device_signature::device_id();
 | 
				
			||||||
        let uid96_0 = (device_id[3] as u32) << 24
 | 
					        let uid96_0 = (device_id[3] as u32) << 24
 | 
				
			||||||
@ -105,7 +107,7 @@ impl LhciC1DeviceInformationCcrp {
 | 
				
			|||||||
            let self_ptr: *const LhciC1DeviceInformationCcrp = self;
 | 
					            let self_ptr: *const LhciC1DeviceInformationCcrp = self;
 | 
				
			||||||
            let self_buf = self_ptr.cast();
 | 
					            let self_buf = self_ptr.cast();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            core::ptr::copy(self_buf, evt_cc_payload_buf, self_size);
 | 
					            ptr::copy(self_buf, evt_cc_payload_buf, self_size);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -11,26 +11,24 @@ use embassy_hal_common::{into_ref, Peripheral, PeripheralRef};
 | 
				
			|||||||
use embassy_stm32::interrupt;
 | 
					use embassy_stm32::interrupt;
 | 
				
			||||||
use embassy_stm32::ipcc::{Config, Ipcc, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
					use embassy_stm32::ipcc::{Config, Ipcc, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
				
			||||||
use embassy_stm32::peripherals::IPCC;
 | 
					use embassy_stm32::peripherals::IPCC;
 | 
				
			||||||
use mm::MemoryManager;
 | 
					use sub::mm::MemoryManager;
 | 
				
			||||||
use sys::Sys;
 | 
					use sub::sys::Sys;
 | 
				
			||||||
use tables::*;
 | 
					use tables::*;
 | 
				
			||||||
use unsafe_linked_list::LinkedListNode;
 | 
					use unsafe_linked_list::LinkedListNode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(feature = "ble")]
 | 
					 | 
				
			||||||
pub mod ble;
 | 
					 | 
				
			||||||
pub mod channels;
 | 
					pub mod channels;
 | 
				
			||||||
pub mod cmd;
 | 
					pub mod cmd;
 | 
				
			||||||
pub mod consts;
 | 
					pub mod consts;
 | 
				
			||||||
pub mod evt;
 | 
					pub mod evt;
 | 
				
			||||||
pub mod lhci;
 | 
					pub mod lhci;
 | 
				
			||||||
#[cfg(feature = "mac")]
 | 
					 | 
				
			||||||
pub mod mac;
 | 
					 | 
				
			||||||
pub mod mm;
 | 
					 | 
				
			||||||
pub mod shci;
 | 
					pub mod shci;
 | 
				
			||||||
pub mod sys;
 | 
					pub mod sub;
 | 
				
			||||||
pub mod tables;
 | 
					pub mod tables;
 | 
				
			||||||
pub mod unsafe_linked_list;
 | 
					pub mod unsafe_linked_list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[cfg(feature = "ble")]
 | 
				
			||||||
 | 
					pub use crate::sub::ble::hci;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type PacketHeader = LinkedListNode;
 | 
					type PacketHeader = LinkedListNode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct TlMbox<'d> {
 | 
					pub struct TlMbox<'d> {
 | 
				
			||||||
@ -39,9 +37,9 @@ pub struct TlMbox<'d> {
 | 
				
			|||||||
    pub sys_subsystem: Sys,
 | 
					    pub sys_subsystem: Sys,
 | 
				
			||||||
    pub mm_subsystem: MemoryManager,
 | 
					    pub mm_subsystem: MemoryManager,
 | 
				
			||||||
    #[cfg(feature = "ble")]
 | 
					    #[cfg(feature = "ble")]
 | 
				
			||||||
    pub ble_subsystem: ble::Ble,
 | 
					    pub ble_subsystem: sub::ble::Ble,
 | 
				
			||||||
    #[cfg(feature = "mac")]
 | 
					    #[cfg(feature = "mac")]
 | 
				
			||||||
    pub mac_subsystem: mac::Mac,
 | 
					    pub mac_subsystem: sub::mac::Mac,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl<'d> TlMbox<'d> {
 | 
					impl<'d> TlMbox<'d> {
 | 
				
			||||||
@ -128,12 +126,12 @@ impl<'d> TlMbox<'d> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        Self {
 | 
					        Self {
 | 
				
			||||||
            _ipcc: ipcc,
 | 
					            _ipcc: ipcc,
 | 
				
			||||||
            sys_subsystem: sys::Sys::new(),
 | 
					            sys_subsystem: sub::sys::Sys::new(),
 | 
				
			||||||
            #[cfg(feature = "ble")]
 | 
					            #[cfg(feature = "ble")]
 | 
				
			||||||
            ble_subsystem: ble::Ble::new(),
 | 
					            ble_subsystem: sub::ble::Ble::new(),
 | 
				
			||||||
            #[cfg(feature = "mac")]
 | 
					            #[cfg(feature = "mac")]
 | 
				
			||||||
            mac_subsystem: mac::Mac::new(),
 | 
					            mac_subsystem: sub::mac::Mac::new(),
 | 
				
			||||||
            mm_subsystem: mm::MemoryManager::new(),
 | 
					            mm_subsystem: sub::mm::MemoryManager::new(),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								embassy-stm32-wpan/src/sub/mod.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								embassy-stm32-wpan/src/sub/mod.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					#[cfg(feature = "ble")]
 | 
				
			||||||
 | 
					pub mod ble;
 | 
				
			||||||
 | 
					#[cfg(feature = "mac")]
 | 
				
			||||||
 | 
					pub mod mac;
 | 
				
			||||||
 | 
					pub mod mm;
 | 
				
			||||||
 | 
					pub mod sys;
 | 
				
			||||||
@ -8,15 +8,15 @@ use defmt::*;
 | 
				
			|||||||
use embassy_executor::Spawner;
 | 
					use embassy_executor::Spawner;
 | 
				
			||||||
use embassy_stm32::bind_interrupts;
 | 
					use embassy_stm32::bind_interrupts;
 | 
				
			||||||
use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
					use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::host::uart::UartHci;
 | 
					use embassy_stm32_wpan::hci::host::uart::UartHci;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::host::{AdvertisingFilterPolicy, EncryptionKey, HostHci, OwnAddressType};
 | 
					use embassy_stm32_wpan::hci::host::{AdvertisingFilterPolicy, EncryptionKey, HostHci, OwnAddressType};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::types::AdvertisingType;
 | 
					use embassy_stm32_wpan::hci::types::AdvertisingType;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::gap::{
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::gap::{
 | 
				
			||||||
    AdvertisingDataType, DiscoverableParameters, GapCommands, Role,
 | 
					    AdvertisingDataType, DiscoverableParameters, GapCommands, Role,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::gatt::GattCommands;
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::gatt::GattCommands;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::hal::{ConfigData, HalCommands, PowerLevel};
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::hal::{ConfigData, HalCommands, PowerLevel};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::BdAddr;
 | 
					use embassy_stm32_wpan::hci::BdAddr;
 | 
				
			||||||
use embassy_stm32_wpan::lhci::LhciC1DeviceInformationCcrp;
 | 
					use embassy_stm32_wpan::lhci::LhciC1DeviceInformationCcrp;
 | 
				
			||||||
use embassy_stm32_wpan::TlMbox;
 | 
					use embassy_stm32_wpan::TlMbox;
 | 
				
			||||||
use {defmt_rtt as _, panic_probe as _};
 | 
					use {defmt_rtt as _, panic_probe as _};
 | 
				
			||||||
 | 
				
			|||||||
@ -12,17 +12,18 @@ use common::*;
 | 
				
			|||||||
use embassy_executor::Spawner;
 | 
					use embassy_executor::Spawner;
 | 
				
			||||||
use embassy_stm32::bind_interrupts;
 | 
					use embassy_stm32::bind_interrupts;
 | 
				
			||||||
use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
					use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::host::uart::UartHci;
 | 
					use embassy_stm32_wpan::hci::host::uart::UartHci;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::host::{AdvertisingFilterPolicy, EncryptionKey, HostHci, OwnAddressType};
 | 
					use embassy_stm32_wpan::hci::host::{AdvertisingFilterPolicy, EncryptionKey, HostHci, OwnAddressType};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::types::AdvertisingType;
 | 
					use embassy_stm32_wpan::hci::types::AdvertisingType;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::gap::{
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::gap::{
 | 
				
			||||||
    AdvertisingDataType, DiscoverableParameters, GapCommands, Role,
 | 
					    AdvertisingDataType, DiscoverableParameters, GapCommands, Role,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::gatt::GattCommands;
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::gatt::GattCommands;
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::vendor::stm32wb::command::hal::{ConfigData, HalCommands, PowerLevel};
 | 
					use embassy_stm32_wpan::hci::vendor::stm32wb::command::hal::{ConfigData, HalCommands, PowerLevel};
 | 
				
			||||||
use embassy_stm32_wpan::ble::hci::BdAddr;
 | 
					use embassy_stm32_wpan::hci::BdAddr;
 | 
				
			||||||
use embassy_stm32_wpan::lhci::LhciC1DeviceInformationCcrp;
 | 
					use embassy_stm32_wpan::lhci::LhciC1DeviceInformationCcrp;
 | 
				
			||||||
use embassy_stm32_wpan::{mm, TlMbox};
 | 
					use embassy_stm32_wpan::sub::mm;
 | 
				
			||||||
 | 
					use embassy_stm32_wpan::TlMbox;
 | 
				
			||||||
use {defmt_rtt as _, panic_probe as _};
 | 
					use {defmt_rtt as _, panic_probe as _};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bind_interrupts!(struct Irqs{
 | 
					bind_interrupts!(struct Irqs{
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user