##// END OF EJS Templates
Huge cleanup, removed "out of dir building" now libuc contains qmake and...
Huge cleanup, removed "out of dir building" now libuc contains qmake and spec files. Libuc uses now qmake's prl file for dependecy propagation.

File last commit:

r71:608b7f0e27c2 dev_alexis
r71:608b7f0e27c2 dev_alexis
Show More
cpuinit.c
63 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;
#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(LED2);
delay_100us(10000);
gpioclr(LED2);
}
}