123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434 |
- #include "platform.h"
- #if (BSP_CFG_STARTUP_DISABLE == 0)
- #define FPU_CAUSE_FLAGS (0x000000FC)
- extern void PowerON_Reset_PC(void);
- #if defined(__CCRX__) || defined(__GNUC__)
- R_PRAGMA_INTERRUPT_FUNCTION(excep_supervisor_inst_isr)
- R_PRAGMA_INTERRUPT_FUNCTION(excep_access_isr)
- R_PRAGMA_INTERRUPT_FUNCTION(excep_undefined_inst_isr)
- R_PRAGMA_INTERRUPT_FUNCTION(excep_floating_point_isr)
- R_PRAGMA_INTERRUPT_FUNCTION(non_maskable_isr)
- R_PRAGMA_INTERRUPT_DEFAULT(undefined_interrupt_source_isr)
- #elif defined(__ICCRX__)
- R_PRAGMA_INTERRUPT_FUNCTION(__privileged_handler)
- R_PRAGMA_INTERRUPT_FUNCTION(__excep_access_inst)
- R_PRAGMA_INTERRUPT_FUNCTION(__undefined_handler)
- R_PRAGMA_INTERRUPT_FUNCTION(_float_placeholder)
- R_PRAGMA_INTERRUPT_FUNCTION(__NMI_handler)
- R_PRAGMA_INTERRUPT_DEFAULT(__undefined_interrupt_source_handler)
- #endif
- R_PRAGMA_INTERRUPT(bus_error_isr, VECT(BSC,BUSERR))
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void excep_supervisor_inst_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void __privileged_handler(void)
- #endif
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXC_SUPERVISOR_INSTR, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
- }
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void excep_access_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void __excep_access_inst(void)
- #endif
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXC_ACCESS, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
- }
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void excep_undefined_inst_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void __undefined_handler(void)
- #endif
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXC_UNDEFINED_INSTR, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
- }
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void excep_floating_point_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void _float_placeholder(void)
- #endif
- {
-
- uint32_t temp_fpsw;
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXC_FPU, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- temp_fpsw = (uint32_t)R_GET_FPSW();
-
- R_SET_FPSW(temp_fpsw & ((uint32_t)~FPU_CAUSE_FLAGS));
- }
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void non_maskable_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void __NMI_handler(void)
- #endif
- {
-
- if (1 == ICU.NMISR.BIT.NMIST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXC_NMI_PIN, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.NMICLR = 1;
- }
- if (1 == ICU.NMISR.BIT.OSTST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_OSC_STOP_DETECT, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.OSTCLR = 1;
- }
- if (1 == ICU.NMISR.BIT.WDTST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_WDT_ERROR, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.WDTCLR = 1;
- }
- if (1 == ICU.NMISR.BIT.IWDTST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_IWDT_ERROR, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.IWDTCLR = 1;
- }
- if (1 == ICU.NMISR.BIT.LVD1ST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_LVD1, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.LVD1CLR = 1;
- }
- if (1 == ICU.NMISR.BIT.LVD2ST)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_LVD2, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- ICU.NMICLR.BIT.LVD2CLR = 1;
- }
- if (1 == ICU.NMISR.BIT.RAMST)
- {
- if(1 == RAM.RAMSTS.BIT.RAMERR)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_RAM, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- RAM.RAMSTS.BIT.RAMERR = 0;
- }
- if(1 == RAM.EXRAMSTS.BIT.EXRAMERR)
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_EXRAM, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
-
- RAM.EXRAMSTS.BIT.EXRAMERR = 0;
- }
- }
- }
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_INTERRUPT void undefined_interrupt_source_isr(void)
- #elif defined(__ICCRX__)
- R_ATTRIB_INTERRUPT void __undefined_interrupt_source_handler(void)
- #endif
- {
-
- R_BSP_InterruptControl(BSP_INT_SRC_UNDEFINED_INTERRUPT, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
- }
- R_ATTRIB_INTERRUPT void bus_error_isr (void)
- {
-
- BSC.BERCLR.BIT.STSCLR = 1;
-
-
- R_BSP_InterruptControl(BSP_INT_SRC_BUS_ERROR, BSP_INT_CMD_CALL_CALLBACK, FIT_NO_PTR);
- }
- #ifdef __BIG
- #define MDE_VALUE (0xfffffff8)
- #else
- #define MDE_VALUE (0xffffffff)
- #endif
- #if defined(BSP_MCU_RX65N_2MB)
- #if (BSP_CFG_CODE_FLASH_BANK_MODE == 0)
- #define BANK_MODE_VALUE (0xffffff8f)
- #else
- #define BANK_MODE_VALUE (0xffffffff)
- #endif
- #else
- #define BANK_MODE_VALUE (0xffffffff)
- #endif
- #if defined(BSP_MCU_RX65N_2MB)
- #if (BSP_CFG_CODE_FLASH_START_BANK == 0)
-
- #define START_BANK_VALUE (0xffffffff)
- #else
-
- #define START_BANK_VALUE (0xfffffff8)
- #endif
- #endif
- #if defined(__CCRX__)
- #pragma address __MDEreg = 0xFE7F5D00
- #pragma address __OFS0reg = 0xFE7F5D04
- #pragma address __OFS1reg = 0xFE7F5D08
- #pragma address __TMINFreg = 0xFE7F5D10
- #if defined(BSP_MCU_RX65N_2MB)
- #pragma address __BANKSELreg = 0xFE7F5D20
- #endif
- #pragma address __SPCCreg = 0xFE7F5D40
- #pragma address __TMEFreg = 0xFE7F5D48
- #pragma address __OSIS1reg = 0xFE7F5D50
- #pragma address __OSIS2reg = 0xFE7F5D54
- #pragma address __OSIS3reg = 0xFE7F5D58
- #pragma address __OSIS4reg = 0xFE7F5D5C
- #pragma address __FAWreg = 0xFE7F5D64
- #pragma address __ROMCODEreg = 0xFE7F5D70
- const unsigned long __MDEreg = (MDE_VALUE & BANK_MODE_VALUE);
- const unsigned long __OFS0reg = BSP_CFG_OFS0_REG_VALUE;
- const unsigned long __OFS1reg = BSP_CFG_OFS1_REG_VALUE;
- const unsigned long __TMINFreg = 0xffffffff;
- #if defined(BSP_MCU_RX65N_2MB)
- const unsigned long __BANKSELreg = START_BANK_VALUE;
- #endif
- const unsigned long __SPCCreg = 0xffffffff;
- const unsigned long __TMEFreg = BSP_CFG_TRUSTED_MODE_FUNCTION;
- const unsigned long __OSIS1reg = BSP_CFG_ID_CODE_LONG_1;
- const unsigned long __OSIS2reg = BSP_CFG_ID_CODE_LONG_2;
- const unsigned long __OSIS3reg = BSP_CFG_ID_CODE_LONG_3;
- const unsigned long __OSIS4reg = BSP_CFG_ID_CODE_LONG_4;
- const unsigned long __FAWreg = BSP_CFG_FAW_REG_VALUE;
- const unsigned long __ROMCODEreg = BSP_CFG_ROMCODE_REG_VALUE;
- #elif defined(__GNUC__)
- const unsigned long __MDEreg __attribute__ ((section(".ofs1"))) = (MDE_VALUE & BANK_MODE_VALUE);
- const unsigned long __OFS0reg __attribute__ ((section(".ofs1"))) = BSP_CFG_OFS0_REG_VALUE;
- const unsigned long __OFS1reg __attribute__ ((section(".ofs1"))) = BSP_CFG_OFS1_REG_VALUE;
- const unsigned long __TMINFreg __attribute__ ((section(".ofs2"))) = 0xffffffff;
- #if defined(BSP_MCU_RX65N_2MB)
- #endif
- const unsigned long __SPCCreg __attribute__ ((section(".ofs3"))) = 0xffffffff;
- const unsigned long __TMEFreg __attribute__ ((section(".ofs4"))) = BSP_CFG_TRUSTED_MODE_FUNCTION;
- const unsigned long __OSIS1reg __attribute__ ((section(".ofs5"))) = BSP_CFG_ID_CODE_LONG_1;
- const unsigned long __OSIS2reg __attribute__ ((section(".ofs5"))) = BSP_CFG_ID_CODE_LONG_2;
- const unsigned long __OSIS3reg __attribute__ ((section(".ofs5"))) = BSP_CFG_ID_CODE_LONG_3;
- const unsigned long __OSIS4reg __attribute__ ((section(".ofs5"))) = BSP_CFG_ID_CODE_LONG_4;
- const unsigned long __FAWreg __attribute__ ((section(".ofs6"))) = BSP_CFG_FAW_REG_VALUE;
- const unsigned long __ROMCODEreg __attribute__ ((section(".ofs7"))) = BSP_CFG_ROMCODE_REG_VALUE;
- #elif defined(__ICCRX__)
- #pragma public_equ = "__MDE", (MDE_VALUE & BANK_MODE_VALUE)
- #pragma public_equ = "__OFS0", BSP_CFG_OFS0_REG_VALUE
- #pragma public_equ = "__OFS1", BSP_CFG_OFS1_REG_VALUE
- #pragma public_equ = "__TMINF", 0xffffffff
- #pragma public_equ = "__BANKSEL", START_BANK_VALUE
- #pragma public_equ = "__SPCC", 0xffffffff
- #pragma public_equ = "__TMEF", BSP_CFG_TRUSTED_MODE_FUNCTION
- #pragma public_equ = "__OSIS_1", BSP_CFG_ID_CODE_LONG_1
- #pragma public_equ = "__OSIS_2", BSP_CFG_ID_CODE_LONG_2
- #pragma public_equ = "__OSIS_3", BSP_CFG_ID_CODE_LONG_3
- #pragma public_equ = "__OSIS_4", BSP_CFG_ID_CODE_LONG_4
- #pragma public_equ = "__FAW", BSP_CFG_FAW_REG_VALUE
- #pragma public_equ = "__ROMCODE", BSP_CFG_ROMCODE_REG_VALUE
- #endif
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_SECTION_CHANGE_EXCEPTVECT void * const Except_Vectors[] =
- {
-
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
- (void (*)(void))0xFFFFFFFF,
-
- excep_supervisor_inst_isr,
- excep_access_isr,
- undefined_interrupt_source_isr,
- excep_undefined_inst_isr,
- undefined_interrupt_source_isr,
- excep_floating_point_isr,
- undefined_interrupt_source_isr,
- undefined_interrupt_source_isr,
- undefined_interrupt_source_isr,
- undefined_interrupt_source_isr,
- non_maskable_isr,
- };
- R_ATTRIB_SECTION_CHANGE_END
- #endif
- #if defined(__CCRX__) || defined(__GNUC__)
- R_ATTRIB_SECTION_CHANGE_RESETVECT void (* const Reset_Vector[])(void) =
- {
- PowerON_Reset_PC
- };
- R_ATTRIB_SECTION_CHANGE_END
- #endif
- #endif
|