#pragma once #include #include struct STM32_IPCC_reg_v1_t { volatile uint32_t C1CR; volatile uint32_t C1MR; volatile uint32_t C1SCR; volatile uint32_t C1TOC2SR; volatile uint32_t C2CR; volatile uint32_t C2MR; volatile uint32_t C2SCR; volatile uint32_t C2TOC1SR; }; template class STM32_IPCC_t : public mmio_ptr { public: using mmio_ptr::ptr; bool tx_pending(uint32_t channel) const { bool unmasked = ~(ptr()->C1MR) & ((1<C1TOC2SR & (1<C1MR) & (1<C2TOC1SR & (1<C1SCR = (1<C1SCR = (1<C1MR &= ~(1<C1MR |= (1<C1MR &= ~((1<C1MR |= (1<