| /************************************************************************* | |
| * | |
| * 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; | |
| } |