blob: 2ce840697a903d069b23c34a0a4e6d920c38a42e [file] [log] [blame]
/*============================================================================
* Name : chip_name.c
* Author : $(UserName)
* Copyright : Your copyright notice
* Description : System Initialization before main
* 1 CPU initialization
* 2 memory & IO base address initialization
* 3 flash size & address initialization
* 4 interrupt resource initialization for the soc
*============================================================================
*/
#include "chip_name.h"
/**
* @brief initial CPU based on user config in chip_name.h
*/
static void CPUInit(void)
{
/**
* Config CPU's Unit such as MGU, Cache...
*/
return;
}
/**
* @brief entry of whole chip initialization
* @Note anyone should not use any global variable in this function since this function is called
* at before data section's initialization.
* Since here SystemInit is a weak symbol, any vendor can override this symbol on its own wishes.
*/
#define CONFIG_SYSTICK_HZ 100
#define CONFIG_SYSTEM_FREQ 24000000
__attribute__((weak)) void SystemInit(void)
{
/**
* initial CPU based on the config in chip_name.h
*/
CPUInit();
/**
* TODO: initial IO, memory, flash...
*/
drv_coret_config(CONFIG_SYSTEM_FREQ / CONFIG_SYSTICK_HZ, CORET_IRQn); //10ms
csi_vic_enable_sirq(CORET_IRQn);
return;
}