##// END OF EJS Templates
Merge
Merge

File last commit:

r44:5f50f7fe4b06 dev_alexis
r46:7d306b65e7c9 merge dev_alexis
Show More
cpuinit.c
60 lines | 1.5 KiB | text/x-c | CLexer
#include "stm32f4xx.h"
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <bsp.h>
#include <stm32f4xx_rcc.h>
#include <core.h>
extern int main();
void cpu_init()
{
extern uint32_t currentCpuFreq;
currentCpuFreq = 16*1000*1000;
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);
}
}