/* * Copyright (C) 2013 INRIA * 2014 Freie Universität Berlin * 2016 TriaGnoSys GmbH * 2018 Kaspar Schleiser * 2018 OTA keys S.A. * * * This file is subject to the terms and conditions of the GNU Lesser General * Public License v2.1. See the file LICENSE in the top level directory for more * details. */ /** * @ingroup cpu_stm32_common * @{ * * @file * @brief Implementation of the kernel cpu functions * * @author Stefan Pfeiffer * @author Alaeddine Weslati * @author Thomas Eichinger * @author Hauke Petersen * @author Nick van IJzendoorn * @author Víctor Ariño * @author Kaspar Schleiser * @author Vincent Dupont * * @} */ #include "cpu.h" #include "stmclk.h" #include "periph_cpu.h" #include "periph/init.h" #if defined (CPU_FAM_STM32L4) #define BIT_APB_PWREN RCC_APB1ENR1_PWREN #else #define BIT_APB_PWREN RCC_APB1ENR_PWREN #endif void cpu_init(void) { /* initialize the Cortex-M core */ cortexm_init(); /* enable PWR module */ periph_clk_en(APB1, BIT_APB_PWREN); /* initialize the system clock as configured in the periph_conf.h */ stmclk_init_sysclk(); #ifdef MODULE_PERIPH_DMA /* initialize DMA streams */ dma_init(); #endif /* trigger static peripheral initialization */ periph_init(); }