|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- /*
- LUFA Library
- Copyright (C) Dean Camera, 2011.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
- */
-
- /*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaim all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
- */
-
- #if defined(__AVR32__)
- #include <avr32/io.h>
-
- .section .exception_handlers, "ax", @progbits
-
- // ================= EXCEPTION TABLE ================
- .balign 0x200
- .global EVBA_Table
- EVBA_Table:
-
- .org 0x000
- Exception_Unrecoverable_Exception:
- rjmp $
- .org 0x004
- Exception_TLB_Multiple_Hit:
- rjmp $
- .org 0x008
- Exception_Bus_Error_Data_Fetch:
- rjmp $
- .org 0x00C
- Exception_Bus_Error_Instruction_Fetch:
- rjmp $
- .org 0x010
- Exception_NMI:
- rjmp $
- .org 0x014
- Exception_Instruction_Address:
- rjmp $
- .org 0x018
- Exception_ITLB_Protection:
- rjmp $
- .org 0x01C
- Exception_OCD_Breakpoint:
- rjmp $
- .org 0x020
- Exception_Illegal_Opcode:
- rjmp $
- .org 0x024
- Exception_Unimplemented_Instruction:
- rjmp $
- .org 0x028
- Exception_Privilege_Violation:
- rjmp $
- .org 0x02C
- Exception_Floating_Point:
- rjmp $
- .org 0x030
- Exception_Coprocessor_Absent:
- rjmp $
- .org 0x034
- Exception_Data_Address_Read:
- rjmp $
- .org 0x038
- Exception_Data_Address_Write:
- rjmp $
- .org 0x03C
- Exception_DTLB_Protection_Read:
- rjmp $
- .org 0x040
- Exception_DTLB_Protection_Write:
- rjmp $
- .org 0x044
- Exception_DTLB_Modified:
- rjmp $
- .org 0x050
- Exception_ITLB_Miss:
- rjmp $
- .org 0x060
- Exception_DTLB_Miss_Read:
- rjmp $
- .org 0x070
- Exception_DTLB_Miss_Write:
- rjmp $
- .org 0x100
- Exception_Supervisor_Call:
- rjmp $
- // ============== END OF EXCEPTION TABLE =============
-
- // ============= GENERAL INTERRUPT HANDLER ===========
- .balign 4
- .irp Level, 0, 1, 2, 3
- Exception_INT\Level:
- mov r12, \Level
- call INTC_GetInterruptHandler
- mov pc, r12
- .endr
- // ========= END OF GENERAL INTERRUPT HANDLER ========
-
- // ====== GENERAL INTERRUPT HANDLER OFFSET TABLE ======
- .balign 4
- .global Autovector_Table
- Autovector_Table:
- .irp Level, 0, 1, 2, 3
- .word ((AVR32_INTC_INT0 + \Level) << AVR32_INTC_IPR_INTLEVEL_OFFSET) | (Exception_INT\Level - EVBA_Table)
- .endr
- // === END OF GENERAL INTERRUPT HANDLER OFFSET TABLE ===
-
- #endif
|