I am fixing the hsem impl for stm32wb55 in embassy. I just thought that maybe I do not need to redefine these constants: ``` rust /// Get the current core id /// This code assume that it is only executed on a Cortex-M M0+, M4 or M7 core. #[inline(always)] pub fn get_current_coreid() -> CoreId { const CPUID_PARTNO_MASK: u32 = 0x0000FFF0; // From the arm developer manual // https://developer.arm.com/documentation/ddi0439/b/System-Control/Register-descriptions/CPUID-Base-Register--CPUID #[allow(dead_code)] const CPUID_PARTNO_CORTEX_M4: u32 = 0x0000C240; #[allow(dead_code)] const CPUID_PARTNO_CORTEX_M7: u32 = 0x0000C270; #[allow(dead_code)] const CPUID_PARTNO_CORTEX_M0: u32 = 0x0000C600; // const CPUID_PARTNO_CORTEX_M33: u32 = 0x0000D210; let cpuid = unsafe { cortex_m::peripheral::CPUID::PTR.read_volatile().base.read() }; // trace!("CPUID: {:#x}", cpuid); #[cfg(any(stm32wb, stm32wl))] // Cortex M4 as main processor and Cortex M0 as coprocessor match cpuid & CPUID_PARTNO_MASK { CPUID_PARTNO_CORTEX_M4 => CoreId::Core0, CPUID_PARTNO_CORTEX_M0 => CoreId::Core1, _ => panic!("Unknown Cortex-M core"), } #[cfg(any(stm32h745, stm32h747, stm32h755, stm32h757))] // Cortex M7 as main processor and Cortex M4 as coprocessor match cpuid & CPUID_PARTNO_MASK { CPUID_PARTNO_CORTEX_M7 => CoreId::Core0, CPUID_PARTNO_CORTEX_M4 => CoreId::Core1, _ => panic!("Unknown Cortex-M core"), } } ``` As you can see with M33 the pattern is not always straight forward 😃