blob: 1a2a9fa6c47e54cd109fa0683833e90419c41e54 [file] [log] [blame]
/*************************************************************************
*
* Used with ICCARM and AARM.
*
* (c) Copyright IAR Systems 2013
*
* File name : main.c
* Description : main module
**************************************************************************/
/*
* Called from Cstart.s to configure the chip and board specific IO before
* main() is called.
*/
/** include files **/
#include <intrinsics.h>
#include <stdint.h>
#include "armv7a_cp15_drv.h"
#include "devdrv_common.h"
/* Renesas include files. */
#include "stb_init.h"
#include "port_init.h"
#include "devdrv_intc.h"
/** external data **/
#pragma section = ".intvec"
extern void Peripheral_BasicInit( void );
void LowLevelInitialisation(void);
unsigned long __write(int fildes, const void *buf, unsigned long nbytes);
/* Called from cstartup.s before the kernel is started. */
void LowLevelInitialisation(void)
{
/* Chip configuration functions from IAR. ********************************/
/* Disable MMU, enable ICache */
CP15_Mmu(FALSE);
CP15_ICache(FALSE);
CP15_SetVectorBase( (uint32_t )__section_begin( ".intvec" ) );
/* Set Low vectors mode in CP15 Control Register */
CP15_SetHighVectors(FALSE);
/* Chip and board specific configuration functions from Renesas. *********/
Peripheral_BasicInit();
STB_Init();
PORT_Init();
R_BSC_Init( ( uint8_t ) ( BSC_AREA_CS2 | BSC_AREA_CS3 ) );
R_INTC_Init();
CP15_ICache(TRUE);
/* Start with interrupts enabled. */
__enable_irq();
__enable_fiq();
}
/* Keep the linker happy. */
unsigned long __write(int fildes, const void *buf, unsigned long nbytes)
{
return 0;
}