Merge over core library changes from the MultiArchDemos branch.
This commit is contained in:
		
							parent
							
								
									75da0d1877
								
							
						
					
					
						commit
						c6a7a028bd
					
				
					 8 changed files with 458 additions and 4 deletions
				
			
		
							
								
								
									
										125
									
								
								LUFA/Platform/UC3/Exception.S
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								LUFA/Platform/UC3/Exception.S
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,125 @@
 | 
			
		|||
/*
 | 
			
		||||
             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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#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 ===
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue