#include "stm32f4xx.h" #include #include #include #include #include #include extern int main(); void cpu_init() { extern uint32_t currentCpuFreq; #ifndef CPUFREQ #define CPUFREQ (16*1000*1000) #endif currentCpuFreq = CPUFREQ; enable_FPU(); RCC->CR |= (uint32_t)0x00000001; FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS; reset_AHB1(); reset_AHB2(); reset_APB1(); reset_APB2(); RCC->CR |= (uint32_t)0x00000001; FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS; RCC->CFGR = 0x00000000; RCC->CIR = 0x00000000; SCB->VTOR = FLASH_BASE; RCC->APB1ENR |= RCC_APB1ENR_PWREN; PWR->CR |= PWR_CR_PMODE; currentCpuFreq=setCpuFreq(currentCpuFreq); currentCpuFreq=getCpuFreq(); configureSysTick(); bsp_init(); printf("SysTick Configured to reach 100us period\n\r"); RCC_ClocksTypeDef RCC_ClocksStatus; RCC_GetClocksFreq(&RCC_ClocksStatus); printf("PLL Configured got:\n\r SYS=%uHz\n\r CPU=%uHz\n\r APB1=%uHz\n\r APB2=%uHz\n\r",(unsigned int)RCC_ClocksStatus.SYSCLK_Frequency,(unsigned int)RCC_ClocksStatus.HCLK_Frequency,(unsigned int)RCC_ClocksStatus.PCLK1_Frequency,(unsigned int)RCC_ClocksStatus.PCLK2_Frequency); printf("Enter Main\n\r"); int res=main(); printf("\n\rprogram exited with code "); printf("%u",res); printf("\n\r"); while(1) { delay_100us(10000); gpioset(LED1); delay_100us(10000); gpioclr(LED1); } }