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 }