12 #ifndef SOURCE_CHIP_STM32_INCLUDE_DISTORTOS_CHIP_STM32_BIT_BANDING_H_ 13 #define SOURCE_CHIP_STM32_INCLUDE_DISTORTOS_CHIP_STM32_BIT_BANDING_H_ 17 #if defined(DISTORTOS_ARCHITECTURE_ARM_CORTEX_M3) || defined(DISTORTOS_ARCHITECTURE_ARM_CORTEX_M4) 36 #define STM32_BITBAND_IMPLEMENTATION(base, type, member, mask) \ 37 BITBAND_PERIPHERAL_ADDRESS(base + offsetof(type, member), __builtin_ctzl(mask)) 53 #define STM32_BITBAND_ADDRESS(registerr, member, bit) \ 54 STM32_BITBAND_IMPLEMENTATION(registerr ## _BASE, registerr ## _TypeDef, member, \ 55 registerr ## _ ## member ## _ ## bit) 71 #define STM32_BITBAND(registerr, member, bit) \ 72 (*(volatile unsigned long*)STM32_BITBAND_IMPLEMENTATION(registerr ## _BASE, registerr ## _TypeDef, member, \ 73 registerr ## _ ## member ## _ ## bit)) 84 #define STM32_BITBAND_FLASH_ADDRESS(member, bit) \ 85 STM32_BITBAND_IMPLEMENTATION(FLASH_R_BASE, FLASH_TypeDef, member, FLASH_ ## member ## _ ## bit) 96 #define STM32_BITBAND_FLASH(member, bit) \ 97 (*(volatile unsigned long*)STM32_BITBAND_IMPLEMENTATION(FLASH_R_BASE, FLASH_TypeDef, member, \ 98 FLASH_ ## member ## _ ## bit)) Header with definitions for bit-banding for ARMv7-M.