157 miosix::FastInterruptDisableLock dLock;
159 switch (
reinterpret_cast<uint32_t
>(peripheral))
165 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
170 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN;
175 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN;
180 RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
185 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOEEN;
190 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOFEN;
195 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOGEN;
200 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOHEN;
205 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOIEN;
210 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOJEN;
215 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOKEN;
220 RCC->AHB1ENR |= RCC_AHB1ENR_CRCEN;
225 RCC->AHB1ENR |= RCC_AHB1ENR_BKPSRAMEN;
233#ifdef RCC_AHB1ENR_CCMDATARAMEN
234 case CCMDATARAM_BASE:
235 RCC->AHB1ENR |= RCC_AHB1ENR_CCMDATARAMEN;
240 RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN;
245 RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;
250 RCC->AHB1ENR |= RCC_AHB1ENR_DMA2DEN;
255 RCC->AHB1ENR |= RCC_AHB1ENR_ETHMACEN;
258#ifdef USB_OTG_HS_PERIPH_BASE
259 case USB_OTG_HS_PERIPH_BASE:
260 RCC->AHB1ENR |= RCC_AHB1ENR_OTGHSEN;
269 RCC->AHB2ENR |= RCC_AHB2ENR_DCMIEN;
274 RCC->AHB2ENR |= RCC_AHB2ENR_RNGEN;
277#ifdef USB_OTG_FS_PERIPH_BASE
278 case USB_OTG_FS_PERIPH_BASE:
279 RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
288 RCC->AHB3ENR |= RCC_AHB3ENR_QSPIEN;
297 RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
302 RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
307 RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
312 RCC->APB1ENR |= RCC_APB1ENR_TIM5EN;
317 RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;
322 RCC->APB1ENR |= RCC_APB1ENR_TIM7EN;
327 RCC->APB1ENR |= RCC_APB1ENR_TIM12EN;
332 RCC->APB1ENR |= RCC_APB1ENR_TIM13EN;
337 RCC->APB1ENR |= RCC_APB1ENR_TIM14EN;
341#if defined(RTC_BASE) && defined(_ARCH_CORTEXM7_STM32F7)
343 RCC->APB1ENR |= RCC_APB1ENR_RTCEN;
348 RCC->APB1ENR |= RCC_APB1ENR_WWDGEN;
353 RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
358 RCC->APB1ENR |= RCC_APB1ENR_SPI3EN;
363 RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
368 RCC->APB1ENR |= RCC_APB1ENR_USART3EN;
373 RCC->APB1ENR |= RCC_APB1ENR_UART4EN;
378 RCC->APB1ENR |= RCC_APB1ENR_UART5EN;
383 RCC->APB1ENR |= RCC_APB1ENR_I2C1EN;
388 RCC->APB1ENR |= RCC_APB1ENR_I2C2EN;
393 RCC->APB1ENR |= RCC_APB1ENR_I2C3EN;
398 RCC->APB1ENR |= RCC_APB1ENR_CAN1EN;
403 RCC->APB1ENR |= RCC_APB1ENR_CAN2EN;
408 RCC->APB1ENR |= RCC_APB1ENR_PWREN;
413 RCC->APB1ENR |= RCC_APB1ENR_DACEN;
418 RCC->APB1ENR |= RCC_APB1ENR_UART7EN;
423 RCC->APB1ENR |= RCC_APB1ENR_UART8EN;
432 RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
437 RCC->APB2ENR |= RCC_APB2ENR_TIM8EN;
442 RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
447 RCC->APB2ENR |= RCC_APB2ENR_USART6EN;
452 RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
457 RCC->APB2ENR |= RCC_APB2ENR_ADC2EN;
462 RCC->APB2ENR |= RCC_APB2ENR_ADC3EN;
467 RCC->APB2ENR |= RCC_APB2ENR_SDIOEN;
472 RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;
477 RCC->APB2ENR |= RCC_APB2ENR_SPI4EN;
482 RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
487 RCC->APB2ENR |= RCC_APB2ENR_TIM9EN;
492 RCC->APB2ENR |= RCC_APB2ENR_TIM10EN;
497 RCC->APB2ENR |= RCC_APB2ENR_TIM11EN;
502 RCC->APB2ENR |= RCC_APB2ENR_SPI5EN;
507 RCC->APB2ENR |= RCC_APB2ENR_SPI6EN;
512 RCC->APB2ENR |= RCC_APB2ENR_SAI1EN;
517 RCC->APB2ENR |= RCC_APB2ENR_LTDCEN;
533 miosix::FastInterruptDisableLock dLock;
535 switch (
reinterpret_cast<uint32_t
>(peripheral))
541 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOAEN;
546 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOBEN;
551 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOCEN;
556 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIODEN;
561 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOEEN;
566 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOFEN;
571 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOGEN;
576 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOHEN;
581 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOIEN;
586 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOJEN;
591 RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOKEN;
596 RCC->AHB1ENR &= ~RCC_AHB1ENR_CRCEN;
601 RCC->AHB1ENR &= ~RCC_AHB1ENR_BKPSRAMEN;
609#ifdef RCC_AHB1ENR_CCMDATARAMEN
610 case CCMDATARAM_BASE:
611 RCC->AHB1ENR &= ~RCC_AHB1ENR_CCMDATARAMEN;
616 RCC->AHB1ENR &= ~RCC_AHB1ENR_DMA1EN;
621 RCC->AHB1ENR &= ~RCC_AHB1ENR_DMA2EN;
626 RCC->AHB1ENR &= ~RCC_AHB1ENR_DMA2DEN;
631 RCC->AHB1ENR &= ~RCC_AHB1ENR_ETHMACEN;
634#ifdef USB_OTG_HS_PERIPH_BASE
635 case USB_OTG_HS_PERIPH_BASE:
636 RCC->AHB1ENR &= ~RCC_AHB1ENR_OTGHSEN;
645 RCC->AHB2ENR &= ~RCC_AHB2ENR_DCMIEN;
650 RCC->AHB2ENR &= ~RCC_AHB2ENR_RNGEN;
653#ifdef USB_OTG_FS_PERIPH_BASE
654 case USB_OTG_FS_PERIPH_BASE:
655 RCC->AHB2ENR &= ~RCC_AHB2ENR_OTGFSEN;
664 RCC->AHB3ENR &= ~RCC_AHB3ENR_QSPIEN;
673 RCC->APB1ENR &= ~RCC_APB1ENR_TIM2EN;
678 RCC->APB1ENR &= ~RCC_APB1ENR_TIM3EN;
683 RCC->APB1ENR &= ~RCC_APB1ENR_TIM4EN;
688 RCC->APB1ENR &= ~RCC_APB1ENR_TIM5EN;
693 RCC->APB1ENR &= ~RCC_APB1ENR_TIM6EN;
698 RCC->APB1ENR &= ~RCC_APB1ENR_TIM7EN;
703 RCC->APB1ENR &= ~RCC_APB1ENR_TIM12EN;
708 RCC->APB1ENR &= ~RCC_APB1ENR_TIM13EN;
713 RCC->APB1ENR &= ~RCC_APB1ENR_TIM14EN;
717#if defined(RTC_BASE) && defined(_ARCH_CORTEXM7_STM32F7)
719 RCC->APB1ENR &= ~RCC_APB1ENR_RTCEN;
724 RCC->APB1ENR &= ~RCC_APB1ENR_WWDGEN;
729 RCC->APB1ENR &= ~RCC_APB1ENR_SPI2EN;
734 RCC->APB1ENR &= ~RCC_APB1ENR_SPI3EN;
739 RCC->APB1ENR &= ~RCC_APB1ENR_USART2EN;
744 RCC->APB1ENR &= ~RCC_APB1ENR_USART3EN;
749 RCC->APB1ENR &= ~RCC_APB1ENR_UART4EN;
754 RCC->APB1ENR &= ~RCC_APB1ENR_UART5EN;
759 RCC->APB1ENR &= ~RCC_APB1ENR_I2C1EN;
764 RCC->APB1ENR &= ~RCC_APB1ENR_I2C2EN;
769 RCC->APB1ENR &= ~RCC_APB1ENR_I2C3EN;
774 RCC->APB1ENR &= ~RCC_APB1ENR_CAN1EN;
779 RCC->APB1ENR &= ~RCC_APB1ENR_CAN2EN;
784 RCC->APB1ENR &= ~RCC_APB1ENR_PWREN;
789 RCC->APB1ENR &= ~RCC_APB1ENR_DACEN;
794 RCC->APB1ENR &= ~RCC_APB1ENR_UART7EN;
799 RCC->APB1ENR &= ~RCC_APB1ENR_UART8EN;
808 RCC->APB2ENR &= ~RCC_APB2ENR_TIM1EN;
813 RCC->APB2ENR &= ~RCC_APB2ENR_TIM8EN;
818 RCC->APB2ENR &= ~RCC_APB2ENR_USART1EN;
823 RCC->APB2ENR &= ~RCC_APB2ENR_USART6EN;
828 RCC->APB2ENR &= ~RCC_APB2ENR_ADC1EN;
833 RCC->APB2ENR &= ~RCC_APB2ENR_ADC2EN;
838 RCC->APB2ENR &= ~RCC_APB2ENR_ADC3EN;
843 RCC->APB2ENR &= ~RCC_APB2ENR_SDIOEN;
848 RCC->APB2ENR &= ~RCC_APB2ENR_SPI1EN;
853 RCC->APB2ENR &= ~RCC_APB2ENR_SPI4EN;
858 RCC->APB2ENR &= ~RCC_APB2ENR_SYSCFGEN;
863 RCC->APB2ENR &= ~RCC_APB2ENR_TIM9EN;
868 RCC->APB2ENR &= ~RCC_APB2ENR_TIM10EN;
873 RCC->APB2ENR &= ~RCC_APB2ENR_TIM11EN;
878 RCC->APB2ENR &= ~RCC_APB2ENR_SPI5EN;
883 RCC->APB2ENR &= ~RCC_APB2ENR_SPI6EN;
888 RCC->APB2ENR &= ~RCC_APB2ENR_SAI1EN;
893 RCC->APB2ENR &= ~RCC_APB2ENR_LTDCEN;