mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-10-26 23:36:32 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			882 lines
		
	
	
	
		
			36 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			882 lines
		
	
	
	
		
			36 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| ;******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
 | |
| ;* File Name          : 75x_vect.c
 | |
| ;* Author             : MCD Application Team
 | |
| ;* Date First Issued  : 03/10/2006
 | |
| ;* Description        : This file used to initialize the exception and IRQ
 | |
| ;*                      vectors, and to enter/return to/from exceptions handlers.
 | |
| ;*******************************************************************************
 | |
| ; History:
 | |
| ; 07/17/2006 : V1.0
 | |
| ; 03/10/2006 : V0.1
 | |
| ;*******************************************************************************
 | |
| ;* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 | |
| ;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 | |
| ;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 | |
| ;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 | |
| ;* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 | |
| ;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 | |
| ;*******************************************************************************
 | |
| 
 | |
| #include "FreeRTOSConfig.h"
 | |
| #include "ISR_Support.h"
 | |
| 
 | |
| 
 | |
|                 PROGRAM	?RESET
 | |
| 		SECTION	.intvec:CODE(2)			
 | |
| 		CODE32
 | |
| 
 | |
| EIC_base_addr         EQU    0xFFFFF800 ; EIC base address
 | |
| CICR_off_addr         EQU    0x04       ; Current Interrupt Channel Register
 | |
| IVR_off_addr          EQU    0x18       ; Interrupt Vector Register
 | |
| IPR_off_addr          EQU    0x40       ; Interrupt Pending Register
 | |
| 
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;              Import  the __program_start address from 75x_init.s
 | |
| ;*******************************************************************************
 | |
| 
 | |
|         IMPORT  __iar_program_start
 | |
| 
 | |
| 
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;                      Import exception handlers
 | |
| ;*******************************************************************************
 | |
| 
 | |
|         IMPORT  Undefined_Handler
 | |
|         IMPORT  SWI_Handler
 | |
|         IMPORT  Prefetch_Handler
 | |
|         IMPORT  Abort_Handler
 | |
|         IMPORT  FIQ_Handler
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;                   Import IRQ handlers from 75x_it.c
 | |
| ;*******************************************************************************
 | |
| 
 | |
|         IMPORT WAKUP_IRQHandler
 | |
|         IMPORT TIM2_OC2_IRQHandler
 | |
|         IMPORT TIM2_OC1_IRQHandler
 | |
|         IMPORT TIM2_IC12_IRQHandler
 | |
|         IMPORT TIM2_UP_IRQHandler
 | |
|         IMPORT TIM1_OC2_IRQHandler
 | |
|         IMPORT TIM1_OC1_IRQHandler
 | |
|         IMPORT TIM1_IC12_IRQHandler
 | |
|         IMPORT TIM1_UP_IRQHandler
 | |
|         IMPORT TIM0_OC2_IRQHandler
 | |
|         IMPORT TIM0_OC1_IRQHandler
 | |
|         IMPORT TIM0_IC12_IRQHandler
 | |
|         IMPORT TIM0_UP_IRQHandler
 | |
|         IMPORT PWM_OC123_IRQHandler
 | |
|         IMPORT PWM_EM_IRQHandler
 | |
|         IMPORT PWM_UP_IRQHandler
 | |
|         IMPORT I2C_IRQHandler
 | |
|         IMPORT SSP1_IRQHandler
 | |
|         IMPORT SSP0_IRQHandler
 | |
|         IMPORT UART2_IRQHandler
 | |
|         IMPORT UART1_IRQHandler
 | |
|         IMPORT vSerialISR
 | |
|         IMPORT CAN_IRQHandler
 | |
|         IMPORT USB_LP_IRQHandler
 | |
|         IMPORT USB_HP_IRQHandler
 | |
|         IMPORT ADC_IRQHandler
 | |
|         IMPORT DMA_IRQHandler
 | |
|         IMPORT EXTIT_IRQHandler
 | |
|         IMPORT MRCC_IRQHandler
 | |
|         IMPORT FLASHSMI_IRQHandler
 | |
|         IMPORT RTC_IRQHandler
 | |
|         IMPORT TB_IRQHandler
 | |
| 		IMPORT vPortPreemptiveTick
 | |
| 		IMPORT vPortYieldProcessor
 | |
| 		IMPORT UART0_IRQHandler
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;            Export Peripherals IRQ handlers table address
 | |
| ;*******************************************************************************
 | |
| 
 | |
|         EXPORT  WAKUP_Addr
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;                        Exception vectors
 | |
| ;*******************************************************************************
 | |
| 
 | |
| 
 | |
|         LDR     PC, Reset_Addr
 | |
|         LDR     PC, Undefined_Addr
 | |
|         LDR     PC, SWI_Addr
 | |
|         LDR     PC, Prefetch_Addr
 | |
|         LDR     PC, Abort_Addr
 | |
|         NOP                             ; Reserved vector
 | |
|         LDR     PC, IRQ_Addr
 | |
|         LDR     PC, FIQ_Addr
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;               Exception handlers address table
 | |
| ;*******************************************************************************
 | |
| 
 | |
| Reset_Addr      DCD     __iar_program_start
 | |
| Undefined_Addr  DCD     UndefinedHandler
 | |
| SWI_Addr        DCD     vPortYieldProcessor
 | |
| Prefetch_Addr   DCD     PrefetchAbortHandler
 | |
| Abort_Addr      DCD     DataAbortHandler
 | |
|                 DCD     0               ; Reserved vector
 | |
| IRQ_Addr        DCD     IRQHandler
 | |
| FIQ_Addr        DCD     FIQHandler
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;              Peripherals IRQ handlers address table
 | |
| ;*******************************************************************************
 | |
| 
 | |
| WAKUP_Addr         DCD	WAKUPIRQHandler
 | |
| TIM2_OC2_Addr      DCD	TIM2_OC2IRQHandler
 | |
| TIM2_OC1_Addr      DCD	TIM2_OC1IRQHandler
 | |
| TIM2_IC12_Addr     DCD	TIM2_IC12IRQHandler
 | |
| TIM2_UP_Addr       DCD	TIM2_UPIRQHandler
 | |
| TIM1_OC2_Addr      DCD	TIM1_OC2IRQHandler
 | |
| TIM1_OC1_Addr      DCD	TIM1_OC1IRQHandler
 | |
| TIM1_IC12_Addr     DCD	TIM1_IC12IRQHandler
 | |
| TIM1_UP_Addr       DCD	TIM1_UPIRQHandler
 | |
| TIM0_OC2_Addr      DCD	TIM0_OC2IRQHandler
 | |
| TIM0_OC1_Addr      DCD	TIM0_OC1IRQHandler
 | |
| TIM0_IC12_Addr     DCD	TIM0_IC12IRQHandler
 | |
| TIM0_UP_Addr       DCD	TIM0_UPIRQHandler
 | |
| PWM_OC123_Addr     DCD	PWM_OC123IRQHandler
 | |
| PWM_EM_Addr        DCD	PWM_EMIRQHandler
 | |
| PWM_UP_Addr        DCD	PWM_UPIRQHandler
 | |
| I2C_Addr           DCD	I2CIRQHandler
 | |
| SSP1_Addr          DCD	SSP1IRQHandler
 | |
| SSP0_Addr          DCD	SSP0IRQHandler
 | |
| UART2_Addr         DCD	UART2IRQHandler
 | |
| UART1_Addr         DCD	UART1IRQHandler
 | |
| UART0_Addr         DCD	vSerialISR
 | |
| CAN_Addr           DCD	CANIRQHandler
 | |
| USB_LP_Addr        DCD	USB_LPIRQHandler
 | |
| USB_HP_Addr        DCD	USB_HPIRQHandler
 | |
| ADC_Addr           DCD	ADCIRQHandler
 | |
| DMA_Addr           DCD	DMAIRQHandler
 | |
| EXTIT_Addr         DCD	EXTITIRQHandler
 | |
| MRCC_Addr          DCD	MRCCIRQHandler
 | |
| FLASHSMI_Addr      DCD	FLASHSMIIRQHandler
 | |
| RTC_Addr           DCD	RTCIRQHandler
 | |
| TB_Addr            DCD	vPortPreemptiveTick
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;                         Exception Handlers
 | |
| ;*******************************************************************************
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Macro Name     : SaveContext
 | |
| ;* Description    : This macro used to save the context before entering
 | |
| ;*                  an exception handler.
 | |
| ;* Input          : The range of registers to store.
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| SaveContext MACRO reg1,reg2
 | |
|         STMFD  sp!,{reg1-reg2,lr} ; Save The workspace plus the current return
 | |
|                               ; address lr_ mode into the stack.
 | |
|         MRS    r1,spsr        ; Save the spsr_mode into r1.
 | |
|         STMFD  sp!,{r1}       ; Save spsr.
 | |
|         ENDM
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Macro Name     : RestoreContext
 | |
| ;* Description    : This macro used to restore the context to return from
 | |
| ;*                  an exception handler and continue the program execution.
 | |
| ;* Input          : The range of registers to restore.
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| RestoreContext MACRO reg1,reg2
 | |
|         LDMFD   sp!,{r1}        ; Restore the saved spsr_mode into r1.
 | |
|         MSR     spsr_cxsf,r1    ; Restore spsr_mode.
 | |
|         LDMFD   sp!,{reg1-reg2,pc}^; Return to the instruction following...
 | |
|                                 ; ...the exception interrupt.
 | |
|         ENDM
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : UndefinedHandler
 | |
| ;* Description    : This function called when undefined instruction exception
 | |
| ;*                  is entered.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| UndefinedHandler
 | |
|         SaveContext r0,r12         ; Save the workspace plus the current
 | |
|                                    ; return address lr_ und and spsr_und.
 | |
|         ldr r0,=Undefined_Handler
 | |
|         ldr lr,=Undefined_Handler_end
 | |
|         bx r0                       ;Branch to Undefined_Handler
 | |
| Undefined_Handler_end:
 | |
|         RestoreContext r0,r12      ; Return to the instruction following...
 | |
|                                     ; ...the undefined instruction.
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : SWIHandler
 | |
| ;* Description    : This function called when SWI instruction executed.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| SWIHandler
 | |
|         SaveContext r0,r12         ; Save the workspace plus the current
 | |
|                                    ; return address lr_ svc and spsr_svc.
 | |
|         ldr r0,= SWI_Handler
 | |
|         ldr lr,= SWI_Handler_end
 | |
|         bx r0                       ;Branch to  SWI_Handler
 | |
| SWI_Handler_end:
 | |
|         RestoreContext r0,r12     ; Return to the instruction following...
 | |
|                                   ; ...the SWI instruction.
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : IRQHandler
 | |
| ;* Description    : This function called when IRQ exception is entered.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| IRQHandler
 | |
| 	portSAVE_CONTEXT					; Save the context of the current task.
 | |
| 
 | |
| 	LDR    r0, =EIC_base_addr
 | |
| 	LDR    r1, =IVR_off_addr
 | |
| 	LDR    lr, =ReturnAddress			; Load the return address.	
 | |
| 	ADD    pc,r0,r1						; Branch to the IRQ handler.
 | |
| ReturnAddress
 | |
| 	LDR    r0, =EIC_base_addr
 | |
| 	LDR    r2, [r0, #CICR_off_addr]		; Get the IRQ channel number
 | |
| 	MOV    r3,#1
 | |
| 	MOV    r3,r3,LSL r2
 | |
| 	STR    r3,[r0, #IPR_off_addr]		; Clear the corresponding IPR bit.
 | |
| 	
 | |
| 	portRESTORE_CONTEXT					; Restore the context of the selected task.
 | |
| 
 | |
| 	
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : PrefetchAbortHandler
 | |
| ;* Description    : This function called when Prefetch Abort exception is entered.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| PrefetchAbortHandler
 | |
|         SUB    lr,lr,#4        ; Update the link register.
 | |
|         SaveContext r0,r7      ; Save the workspace plus the current
 | |
|                                ; return address lr_abt and spsr_abt.
 | |
|         ldr r0,= Prefetch_Handler
 | |
|         ldr lr,= Prefetch_Handler_end
 | |
|         bx r0                       ;Branch to  Prefetch_Handler
 | |
| Prefetch_Handler_end:
 | |
|         RestoreContext r0,r7   ; Return to the instruction following that...
 | |
|                                ; ...has generated the prefetch abort exception.
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : DataAbortHandler
 | |
| ;* Description    : This function is called when Data Abort exception is entered.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| DataAbortHandler
 | |
|         SUB    lr,lr,#8            ; Update the link register.
 | |
|         SaveContext r0,r12         ; Save the workspace plus the current
 | |
|                                    ; return address lr_ abt and spsr_abt.
 | |
|         ldr r0,= Abort_Handler
 | |
|         ldr lr,= Abort_Handler_end
 | |
|         bx r0                       ;Branch to  Abort_Handler
 | |
| Abort_Handler_end:
 | |
|         RestoreContext r0,r12       ; Return to the instruction following that...
 | |
|                                     ; ...has generated the data abort exception.
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : FIQHandler
 | |
| ;* Description    : This function is called when FIQ exception is entered.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| FIQHandler
 | |
|         SUB    lr,lr,#4            ; Update the link register.
 | |
|         SaveContext r0,r7          ; Save the workspace plus the current
 | |
|                                    ; return address lr_ fiq and spsr_fiq.
 | |
|         ldr r0,= FIQ_Handler
 | |
|         ldr lr,= FIQ_Handler_end
 | |
|         bx r0                       ;Branch to  FIQ_Handler
 | |
| FIQ_Handler_end:
 | |
|         RestoreContext r0,r7        ; Restore the context and return to the...
 | |
|                                     ; ...program execution.
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Macro Name     : IRQ_to_SYS
 | |
| ;* Description    : This macro used to switch form IRQ mode to SYS mode.
 | |
| ;* Input          : none.
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| IRQ_to_SYS MACRO
 | |
|         MSR    cpsr_c,#0x1F
 | |
|         STMFD  sp!,{lr}
 | |
|        ENDM
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Macro Name     : SYS_to_IRQ
 | |
| ;* Description    : This macro used to switch from SYS mode to IRQ mode.
 | |
| ;* Input          : none.
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| SYS_to_IRQ MACRO
 | |
|         LDMFD  sp!,{lr}
 | |
|         MSR    cpsr_c,#0xD2
 | |
|         MOV    pc,lr
 | |
|        ENDM
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : WAKUPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the WAKUP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the WAKUP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| WAKUPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=WAKUP_IRQHandler
 | |
|         ldr lr,=WAKUP_IRQHandler_end
 | |
|         bx r0
 | |
| WAKUP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM2_OC2IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM2_OC2_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM2_OC2_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM2_OC2IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM2_OC2_IRQHandler
 | |
|         ldr lr,=TIM2_OC2_IRQHandler_end
 | |
|         bx r0
 | |
| TIM2_OC2_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM2_OC1IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM2_OC1_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM2_OC1_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM2_OC1IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM2_OC1_IRQHandler
 | |
|         ldr lr,=TIM2_OC1_IRQHandler_end
 | |
|         bx r0
 | |
| TIM2_OC1_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM2_IC12IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM2_IC12_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM2_IC12_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM2_IC12IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM2_IC12_IRQHandler
 | |
|         ldr lr,=TIM2_IC12_IRQHandler_end
 | |
|         bx r0
 | |
| TIM2_IC12_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM2_UPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM2_UP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM2_UP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM2_UPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM2_UP_IRQHandler
 | |
|         ldr lr,=TIM2_UP_IRQHandler_end
 | |
|         bx r0
 | |
| TIM2_UP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM1_OC2IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM1_OC2_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM1_OC2_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM1_OC2IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM1_OC2_IRQHandler
 | |
|         ldr lr,=TIM1_OC2_IRQHandler_end
 | |
|         bx r0
 | |
| TIM1_OC2_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM1_OC1IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM1_OC1_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM1_OC1_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM1_OC1IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM1_OC1_IRQHandler
 | |
|         ldr lr,=TIM1_OC1_IRQHandler_end
 | |
|         bx r0
 | |
| TIM1_OC1_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM1_IC12IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM1_IC12_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM1_IC12_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM1_IC12IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM1_IC12_IRQHandler
 | |
|         ldr lr,=TIM1_IC12_IRQHandler_end
 | |
|         bx r0
 | |
| TIM1_IC12_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM1_UPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM1_UP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM1_UP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM1_UPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM1_UP_IRQHandler
 | |
|         ldr lr,=TIM1_UP_IRQHandler_end
 | |
|         bx r0
 | |
| TIM1_UP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM0_OC2IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM0_OC2_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM0_OC2_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM0_OC2IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM0_OC2_IRQHandler
 | |
|         ldr lr,=TIM0_OC2_IRQHandler_end
 | |
|         bx r0
 | |
| TIM0_OC2_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM0_OC1IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM0_OC1_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM0_OC1_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM0_OC1IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM0_OC1_IRQHandler
 | |
|         ldr lr,=TIM0_OC1_IRQHandler_end
 | |
|         bx r0
 | |
| TIM0_OC1_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM0_IC12IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM0_IC12_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM0_IC12_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM0_IC12IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM0_IC12_IRQHandler
 | |
|         ldr lr,=TIM0_IC12_IRQHandler_end
 | |
|         bx r0
 | |
| TIM0_IC12_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TIM0_UPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TIM0_UP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TIM0_UP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TIM0_UPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TIM0_UP_IRQHandler
 | |
|         ldr lr,=TIM0_UP_IRQHandler_end
 | |
|         bx r0
 | |
| TIM0_UP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : PWM_OC123IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the PWM_OC123_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the PWM_OC123_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| PWM_OC123IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=PWM_OC123_IRQHandler
 | |
|         ldr lr,=PWM_OC123_IRQHandler_end
 | |
|         bx r0
 | |
| PWM_OC123_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : PWM_EMIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the PWM_EM_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the PWM_EM_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| PWM_EMIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=PWM_EM_IRQHandler
 | |
|         ldr lr,=PWM_EM_IRQHandler_end
 | |
|         bx r0
 | |
| PWM_EM_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : PWM_UPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the PWM_UP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the PWM_UP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| PWM_UPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=PWM_UP_IRQHandler
 | |
|         ldr lr,=PWM_UP_IRQHandler_end
 | |
|         bx r0
 | |
| PWM_UP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : I2CIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the I2C_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the I2C_IRQHandler function
 | |
| ;*                  termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| I2CIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=I2C_IRQHandler
 | |
|         ldr lr,=I2C_IRQHandler_end
 | |
|         bx r0
 | |
| I2C_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : SSP1IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the SSP1_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the SSP1_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| SSP1IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=SSP1_IRQHandler
 | |
|         ldr lr,=SSP1_IRQHandler_end
 | |
|         bx r0
 | |
| SSP1_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : SSP0IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the SSP0_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the SSP0_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| SSP0IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=SSP0_IRQHandler
 | |
|         ldr lr,=SSP0_IRQHandler_end
 | |
|         bx r0
 | |
| SSP0_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : UART2IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the UART2_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the UART2_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| UART2IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=UART2_IRQHandler
 | |
|         ldr lr,=UART2_IRQHandler_end
 | |
|         bx r0
 | |
| UART2_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : UART1IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the UART1_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the UART1_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| UART1IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=UART1_IRQHandler
 | |
|         ldr lr,=UART1_IRQHandler_end
 | |
|         bx r0
 | |
| UART1_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : UART0IRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the UART0_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the UART0_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| UART0IRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=UART0_IRQHandler
 | |
|         ldr lr,=UART0_IRQHandler_end
 | |
|         bx r0
 | |
| UART0_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : CANIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the CAN_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the CAN_IRQHandler function
 | |
| ;*                  termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| CANIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=CAN_IRQHandler
 | |
|         ldr lr,=CAN_IRQHandler_end
 | |
|         bx r0
 | |
| CAN_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : USB_LPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the USB_LP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the USB_LP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| USB_LPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=USB_LP_IRQHandler
 | |
|         ldr lr,=USB_LP_IRQHandler_end
 | |
|         bx r0
 | |
| USB_LP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : USB_HPIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the USB_HP_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the USB_HP_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| USB_HPIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=USB_HP_IRQHandler
 | |
|         ldr lr,=USB_HP_IRQHandler_end
 | |
|         bx r0
 | |
| USB_HP_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : ADCIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the ADC_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the ADC_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| ADCIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=ADC_IRQHandler
 | |
|         ldr lr,=ADC_IRQHandler_end
 | |
|         bx r0
 | |
| ADC_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : DMAIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the DMA_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the DMA_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| DMAIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=DMA_IRQHandler
 | |
|         ldr lr,=DMA_IRQHandler_end
 | |
|         bx r0
 | |
| DMA_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : EXTITIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the EXTIT_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the EXTIT_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| EXTITIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=EXTIT_IRQHandler
 | |
|         ldr lr,=EXTIT_IRQHandler_end
 | |
|         bx r0
 | |
| EXTIT_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : MRCCIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the MRCC_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the MRCC_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| MRCCIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=MRCC_IRQHandler
 | |
|         ldr lr,=MRCC_IRQHandler_end
 | |
|         bx r0
 | |
| MRCC_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : FLASHSMIIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the FLASHSMI_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the FLASHSMI_IRQHandler
 | |
| ;*                  function termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| FLASHSMIIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=FLASHSMI_IRQHandler
 | |
|         ldr lr,=FLASHSMI_IRQHandler_end
 | |
|         bx r0
 | |
| FLASHSMI_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : RTCIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the RTC_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the RTC_IRQHandler function
 | |
| ;*                  termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| RTCIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=RTC_IRQHandler
 | |
|         ldr lr,=RTC_IRQHandler_end
 | |
|         bx r0
 | |
| RTC_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
| ;*******************************************************************************
 | |
| ;* Function Name  : TBIRQHandler
 | |
| ;* Description    : This function used to switch to SYS mode before entering
 | |
| ;*                  the TB_IRQHandler function located in 75x_it.c.
 | |
| ;*                  Then to return to IRQ mode after the TB_IRQHandler function
 | |
| ;*                  termination.
 | |
| ;* Input          : none
 | |
| ;* Output         : none
 | |
| ;*******************************************************************************
 | |
| TBIRQHandler
 | |
|         IRQ_to_SYS
 | |
|         ldr r0,=TB_IRQHandler
 | |
|         ldr lr,=TB_IRQHandler_end
 | |
|         bx r0
 | |
| TB_IRQHandler_end:
 | |
|         SYS_to_IRQ
 | |
| 
 | |
|        LTORG
 | |
| 
 | |
|         END
 | |
| ;******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE*****
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |