00001 00028 #include "startup.h" 00029 #include "pm.h" 00030 #include "intc.h" 00031 #include "board.h" 00032 #include "print_funcs.h" 00033 #include "clocks.h" 00034 00035 00036 static void init_exceptions(void) 00037 { 00038 extern void _evba; 00039 Set_system_register(AVR32_EVBA, (int)&_evba); 00040 Enable_global_exception(); 00041 } 00042 00043 static void init_hmatrix(void) 00044 { 00045 union { 00046 unsigned long scfg; 00047 avr32_hmatrix_scfg_t SCFG; 00048 } u_avr32_hmatrix_scfg = { 00049 AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] 00050 }; 00051 u_avr32_hmatrix_scfg.SCFG.defmstr_type = 00052 AVR32_HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT; 00053 AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] = 00054 u_avr32_hmatrix_scfg.scfg; 00055 } 00056 00057 static void init_interrupts(void) 00058 { 00059 INTC_init_interrupts(); 00060 Enable_global_interrupt(); 00061 } 00062 00063 void startup_init(void) 00064 { 00065 init_exceptions(); 00066 init_hmatrix(); 00067 init_sys_clocks(); 00068 init_interrupts(); 00069 init_dbg_rs232(FPBA_HZ); 00070 }