summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/stm32/stm32_vectors.S
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-11-22 02:59:24 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-11-22 02:59:24 +0000
commit4a8d437682923eca41fa6a1c2a0ab7523a9283af (patch)
treefa5c642e3a98cbb1ffb391f99cb9a2b2206def31 /nuttx/arch/arm/src/stm32/stm32_vectors.S
parent58a0eb3dd41157bba6e07821162ac9ef297a7ab6 (diff)
downloadpx4-nuttx-4a8d437682923eca41fa6a1c2a0ab7523a9283af.tar.gz
px4-nuttx-4a8d437682923eca41fa6a1c2a0ab7523a9283af.tar.bz2
px4-nuttx-4a8d437682923eca41fa6a1c2a0ab7523a9283af.zip
Add STM3240 interrupt handlers
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4117 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/stm32/stm32_vectors.S')
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_vectors.S178
1 files changed, 174 insertions, 4 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_vectors.S b/nuttx/arch/arm/src/stm32/stm32_vectors.S
index 60f08b375..0c4722425 100644
--- a/nuttx/arch/arm/src/stm32/stm32_vectors.S
+++ b/nuttx/arch/arm/src/stm32/stm32_vectors.S
@@ -128,7 +128,8 @@ stm32_vectors:
/* External Interrupts */
-#ifdef CONFIG_STM32_CONNECTIVITY_LINE
+#if defined(CONFIG_STM32_STM32F10XX)
+# ifdef CONFIG_STM32_CONNECTIVITY_LINE
.word stm32_wwdg /* Vector 16+0: Window Watchdog interrupt */
.word stm32_pvd /* Vector 16+1: PVD through EXTI Line detection interrupt */
.word stm32_tamper /* Vector 16+2: Tamper interrupt */
@@ -196,7 +197,7 @@ stm32_vectors:
.word stm32_can2rx1 /* Vector 16+65: CAN2 RX1 interrupt */
.word stm32_can2sce /* Vector 16+66: CAN2 SCE interrupt */
.word stm32_otgfs /* Vector 16+67: USB On The Go FS global interrupt */
-#else
+# else
.word stm32_wwdg /* Vector 16+0: Window Watchdog interrupt */
.word stm32_pvd /* Vector 16+1: PVD through EXTI Line detection interrupt */
.word stm32_tamper /* Vector 16+2: Tamper interrupt */
@@ -257,6 +258,90 @@ stm32_vectors:
.word stm32_dma2ch2 /* Vector 16+57: DMA2 Channel 2 global interrupt */
.word stm32_dma2ch3 /* Vector 16+58: DMA2 Channel 3 global interrupt */
.word stm32_dma2ch45 /* Vector 16+59: DMA2 Channel 4&5 global interrupt */
+# endif
+#elif defined(CONFIG_STM32_STM32F40XX)
+ .word stm32_wwdg /* Vector 16+0: Window Watchdog interrupt */
+ .word stm32_pvd /* Vector 16+1: PVD through EXTI Line detection interrupt */
+ .word stm32_tamper /* Vector 16+2: Tamper and time stamp interrupts */
+ .word stm32_rtc_wkup /* Vector 16+3: RTC global interrupt */
+ .word stm32_flash /* Vector 16+4: Flash global interrupt */
+ .word stm32_rcc /* Vector 16+5: RCC global interrupt */
+ .word stm32_exti0 /* Vector 16+6: EXTI Line 0 interrupt */
+ .word stm32_exti1 /* Vector 16+7: EXTI Line 1 interrupt */
+ .word stm32_exti2 /* Vector 16+8: EXTI Line 2 interrupt */
+ .word stm32_exti3 /* Vector 16+9: EXTI Line 3 interrupt */
+ .word stm32_exti4 /* Vector 16+10: EXTI Line 4 interrupt */
+ .word stm32_dma1s0 /* Vector 16+11: DMA1 Stream 0 global interrupt */
+ .word stm32_dma1s1 /* Vector 16+12: DMA1 Stream 1 global interrupt */
+ .word stm32_dma1s2 /* Vector 16+13: DMA1 Stream 2 global interrupt */
+ .word stm32_dma1s3 /* Vector 16+14: DMA1 Stream 3 global interrupt */
+ .word stm32_dma1s4 /* Vector 16+15: DMA1 Stream 4 global interrupt */
+ .word stm32_dma1s5 /* Vector 16+16: DMA1 Stream 5 global interrupt */
+ .word stm32_dma1s6 /* Vector 16+17: DMA1 Stream 6 global interrupt */
+ .word stm32_adc /* Vector 16+18: ADC1, ADC2, and ADC3 global interrupt */
+ .word stm32_can1tx /* Vector 16+19: CAN1 TX interrupts */
+ .word stm32_can1rx0 /* Vector 16+20: CAN1 RX0 interrupts */
+ .word stm32_can1rx1 /* Vector 16+21: CAN1 RX1 interrupt */
+ .word stm32_can1sce /* Vector 16+22: CAN1 SCE interrupt */
+ .word stm32_exti95 /* Vector 16+23: EXTI Line[9:5] interrupts */
+ .word stm32_tim1brk /* Vector 16+24: TIM1 Break interrupt/TIM9 global interrupt */
+ .word stm32_tim1up /* Vector 16+25: TIM1 Update interrupt/TIM10 global interrupt */
+ .word stm32_tim1trgcom /* Vector 16+26: TIM1 Trigger and Commutation interrupts/TIM11 global interrupt */
+ .word stm32_tim1cc /* Vector 16+27: TIM1 Capture Compare interrupt */
+ .word stm32_tim2 /* Vector 16+28: TIM2 global interrupt */
+ .word stm32_tim3 /* Vector 16+29: TIM3 global interrupt */
+ .word stm32_tim4 /* Vector 16+30: TIM4 global interrupt */
+ .word stm32_i2c1ev /* Vector 16+31: I2C1 event interrupt */
+ .word stm32_i2c1er /* Vector 16+32: I2C1 error interrupt */
+ .word stm32_i2c2ev /* Vector 16+33: I2C2 event interrupt */
+ .word stm32_i2c2er /* Vector 16+34: I2C2 error interrupt */
+ .word stm32_spi1 /* Vector 16+35: SPI1 global interrupt */
+ .word stm32_spi2 /* Vector 16+36: SPI2 global interrupt */
+ .word stm32_usart1 /* Vector 16+37: USART1 global interrupt */
+ .word stm32_usart2 /* Vector 16+38: USART2 global interrupt */
+ .word stm32_usart3 /* Vector 16+39: USART3 global interrupt */
+ .word stm32_exti1510 /* Vector 16+40: EXTI Line[15:10] interrupts */
+ .word stm32_rtcalrm /* Vector 16+41: RTC alarm through EXTI line interrupt */
+ .word stm32_otgfswkup /* Vector 16+42: USB On-The-Go FS Wakeup through EXTI line interrupt */
+ .word stm32_tim8brk /* Vector 16+43: TIM8 Break interrupt/TIM12 global interrupt */
+ .word stm32_tim8up /* Vector 16+44: TIM8 Update interrup/TIM13 global interrupt */
+ .word stm32_tim8trgcom /* Vector 16+45: TIM8 Trigger and Commutation interrupts/TIM14 global interrupt */
+ .word stm32_tim8cc /* Vector 16+46: TIM8 Capture Compare interrupt */
+ .word stm32_dma1s7 /* Vector 16+47: DMA1 Stream 7 global interrupt */
+ .word stm32_fsmc /* Vector 16+48: FSMC global interrupt */
+ .word stm32_sdio /* Vector 16+49: SDIO global interrupt */
+ .word stm32_tim5 /* Vector 16+50: TIM5 global interrupt */
+ .word stm32_spi3 /* Vector 16+51: SPI3 global interrupt */
+ .word stm32_uart4 /* Vector 16+52: UART4 global interrupt */
+ .word stm32_uart5 /* Vector 16+53: UART5 global interrupt */
+ .word stm32_tim6 /* Vector 16+54: TIM6 global interrupt/DAC1 and DAC2 underrun error interrupts */
+ .word stm32_tim7 /* Vector 16+55: TIM7 global interrupt */
+ .word stm32_dma2s0 /* Vector 16+56: DMA2 Stream 0 global interrupt */
+ .word stm32_dma2s1 /* Vector 16+57: DMA2 Stream 1 global interrupt */
+ .word stm32_dma2s2 /* Vector 16+58: DMA2 Stream 2 global interrupt */
+ .word stm32_dma2s3 /* Vector 16+59: DMA2 Stream 3 global interrupt */
+ .word stm32_dma2s4 /* Vector 16+60: DMA2 Stream 4 global interrupt */
+ .word stm32_eth /* Vector 16+61: Ethernet global interrupt */
+ .word stm32_ethwkup /* Vector 16+62: Ethernet Wakeup through EXTI line interrupt */
+ .word stm32_can2tx /* Vector 16+63: CAN2 TX interrupts */
+ .word stm32_can2rx0 /* Vector 16+64: CAN2 RX0 interrupts */
+ .word stm32_can2rx1 /* Vector 16+65: CAN2 RX1 interrupt */
+ .word stm32_can2sce /* Vector 16+66: CAN2 SCE interrupt */
+ .word stm32_otgfs /* Vector 16+67: USB On The Go FS global interrupt */
+ .word stm32_dma2s5 /* Vector 16+68: DMA2 Stream 5 global interrupt */
+ .word stm32_dma2s6 /* Vector 16+69: DMA2 Stream 6 global interrupt */
+ .word stm32_dma2s7 /* Vector 16+70: DMA2 Stream 7 global interrupt */
+ .word stm32_usart6 /* Vector 16+71: USART6 global interrupt */
+ .word stm32_i2c3ev /* Vector 16+72: I2C3 event interrupt */
+ .word stm32_i2c3er /* Vector 16+73: I2C3 error interrupt */
+ .word stm32_otghsep1out /* Vector 16+74: USB On The Go HS End Point 1 Out global interrupt */
+ .word stm32_otghsep1in /* Vector 16+75: USB On The Go HS End Point 1 In global interrupt */
+ .word stm32_otghswkup /* Vector 16+76: USB On The Go HS Wakeup through EXTI interrupt */
+ .word stm32_otghs /* Vector 16+77: USB On The Go HS global interrupt */
+ .word stm32_dcmi /* Vector 16+78: DCMI global interrupt */
+ .word stm32_cryp /* Vector 16+79: CRYP crypto global interrupt */
+ .word stm32_hash /* Vector 16+80: Hash and Rng global interrupt */
+ .word STM32_FPU /* Vector 16+81: FPU global interrupt */
#endif
.size stm32_vectors, .-stm32_vectors
@@ -279,7 +364,8 @@ handlers:
HANDLER stm32_pendsv, STM32_IRQ_PENDSV /* Vector 14: Penable system service request */
HANDLER stm32_systick, STM32_IRQ_SYSTICK /* Vector 15: System tick */
-#ifdef CONFIG_STM32_CONNECTIVITY_LINE
+#if defined(CONFIG_STM32_STM32F10XX)
+# ifdef CONFIG_STM32_CONNECTIVITY_LINE
HANDLER stm32_wwdg, STM32_IRQ_WWDG /* Vector 16+0: Window Watchdog interrupt */
HANDLER stm32_pvd, STM32_IRQ_PVD /* Vector 16+1: PVD through EXTI Line detection interrupt */
HANDLER stm32_tamper, STM32_IRQ_TAMPER /* Vector 16+2: Tamper interrupt */
@@ -340,7 +426,7 @@ handlers:
HANDLER stm32_can2rx1, STM32_IRQ_CAN2RX1 /* Vector 16+65: CAN2 RX1 interrupt */
HANDLER stm32_can2sce, STM32_IRQ_CAN2SCE /* Vector 16+66: CAN2 SCE interrupt */
HANDLER stm32_otgfs, STM32_IRQ_OTGFS /* Vector 16+67: USB On The Go FS global interrupt */
-#else
+# else
HANDLER stm32_wwdg, STM32_IRQ_WWDG /* Vector 16+0: Window Watchdog interrupt */
HANDLER stm32_pvd, STM32_IRQ_PVD /* Vector 16+1: PVD through EXTI Line detection interrupt */
HANDLER stm32_tamper, STM32_IRQ_TAMPER /* Vector 16+2: Tamper interrupt */
@@ -401,6 +487,90 @@ handlers:
HANDLER stm32_dma2ch2, STM32_IRQ_DMA2CH2 /* Vector 16+57: DMA2 Channel 2 global interrupt */
HANDLER stm32_dma2ch3, STM32_IRQ_DMA2CH3 /* Vector 16+58: DMA2 Channel 3 global interrupt */
HANDLER stm32_dma2ch45, STM32_IRQ_DMA2CH45 /* Vector 16+59: DMA2 Channel 4&5 global interrupt */
+# endif
+#elif defined(CONFIG_STM32_STM32F40XX)
+ HANDLER stm32_wwdg, STM32_IRQ_WWDG /* Vector 16+0: Window Watchdog interrupt */
+ HANDLER stm32_pvd, STM32_IRQ_PVD /* Vector 16+1: PVD through EXTI Line detection interrupt */
+ HANDLER stm32_tamper, STM32_IRQ_TAMPER /* Vector 16+2: Tamper and time stamp interrupts */
+ HANDLER stm32_rtc_wkup, STM32_IRQ_RTC_WKUP /* Vector 16+3: RTC global interrupt */
+ HANDLER stm32_flash, STM32_IRQ_FLASH /* Vector 16+4: Flash global interrupt */
+ HANDLER stm32_rcc, STM32_IRQ_RCC /* Vector 16+5: RCC global interrupt */
+ HANDLER stm32_exti0, STM32_IRQ_EXTI0 /* Vector 16+6: EXTI Line 0 interrupt */
+ HANDLER stm32_exti1, STM32_IRQ_EXTI1 /* Vector 16+7: EXTI Line 1 interrupt */
+ HANDLER stm32_exti2, STM32_IRQ_EXTI2 /* Vector 16+8: EXTI Line 2 interrupt */
+ HANDLER stm32_exti3, STM32_IRQ_EXTI3 /* Vector 16+9: EXTI Line 3 interrupt */
+ HANDLER stm32_exti4, STM32_IRQ_EXTI4 /* Vector 16+10: EXTI Line 4 interrupt */
+ HANDLER stm32_dma1s0, STM32_IRQ_DMA1S0 /* Vector 16+11: DMA1 Stream 0 global interrupt */
+ HANDLER stm32_dma1s1, STM32_IRQ_DMA1S1 /* Vector 16+12: DMA1 Stream 1 global interrupt */
+ HANDLER stm32_dma1s2, STM32_IRQ_DMA1S2 /* Vector 16+13: DMA1 Stream 2 global interrupt */
+ HANDLER stm32_dma1s3, STM32_IRQ_DMA1S3 /* Vector 16+14: DMA1 Stream 3 global interrupt */
+ HANDLER stm32_dma1s4, STM32_IRQ_DMA1S4 /* Vector 16+15: DMA1 Stream 4 global interrupt */
+ HANDLER stm32_dma1s5, STM32_IRQ_DMA1S5 /* Vector 16+16: DMA1 Stream 5 global interrupt */
+ HANDLER stm32_dma1s6, STM32_IRQ_DMA1S6 /* Vector 16+17: DMA1 Stream 6 global interrupt */
+ HANDLER stm32_adc, STM32_IRQ_ADC /* Vector 16+18: ADC1, ADC2, and ADC3 global interrupt */
+ HANDLER stm32_can1tx, STM32_IRQ_CAN1TX /* Vector 16+19: CAN1 TX interrupts */
+ HANDLER stm32_can1rx0, STM32_IRQ_CAN1RX0 /* Vector 16+20: CAN1 RX0 interrupts */
+ HANDLER stm32_can1rx1, STM32_IRQ_CAN1RX1 /* Vector 16+21: CAN1 RX1 interrupt */
+ HANDLER stm32_can1sce, STM32_IRQ_CAN1SCE /* Vector 16+22: CAN1 SCE interrupt */
+ HANDLER stm32_exti95, STM32_IRQ_EXTI95 /* Vector 16+23: EXTI Line[9:5] interrupts */
+ HANDLER stm32_tim1brk, STM32_IRQ_TIM1BRK /* Vector 16+24: TIM1 Break interrupt/TIM9 global interrupt */
+ HANDLER stm32_tim1up, STM32_IRQ_TIM1UP /* Vector 16+25: TIM1 Update interrupt/TIM10 global interrupt */
+ HANDLER stm32_tim1trgcom, STM32_IRQ_TIM1TRGCOM /* Vector 16+26: TIM1 Trigger and Commutation interrupts/TIM11 global interrupt */
+ HANDLER stm32_tim1cc, STM32_IRQ_TIM1CC /* Vector 16+27: TIM1 Capture Compare interrupt */
+ HANDLER stm32_tim2, STM32_IRQ_TIM2 /* Vector 16+28: TIM2 global interrupt */
+ HANDLER stm32_tim3, STM32_IRQ_TIM3 /* Vector 16+29: TIM3 global interrupt */
+ HANDLER stm32_tim4, STM32_IRQ_TIM4 /* Vector 16+30: TIM4 global interrupt */
+ HANDLER stm32_i2c1ev, STM32_IRQ_I2C1EV /* Vector 16+31: I2C1 event interrupt */
+ HANDLER stm32_i2c1er, STM32_IRQ_I2C1ER /* Vector 16+32: I2C1 error interrupt */
+ HANDLER stm32_i2c2ev, STM32_IRQ_I2C2EV /* Vector 16+33: I2C2 event interrupt */
+ HANDLER stm32_i2c2er, STM32_IRQ_I2C2ER /* Vector 16+34: I2C2 error interrupt */
+ HANDLER stm32_spi1, STM32_IRQ_SPI1 /* Vector 16+35: SPI1 global interrupt */
+ HANDLER stm32_spi2, STM32_IRQ_SPI2 /* Vector 16+36: SPI2 global interrupt */
+ HANDLER stm32_usart1, STM32_IRQ_USART1 /* Vector 16+37: USART1 global interrupt */
+ HANDLER stm32_usart2, STM32_IRQ_USART2 /* Vector 16+38: USART2 global interrupt */
+ HANDLER stm32_usart3, STM32_IRQ_USART3 /* Vector 16+39: USART3 global interrupt */
+ HANDLER stm32_exti1510, STM32_IRQ_EXTI1510 /* Vector 16+40: EXTI Line[15:10] interrupts */
+ HANDLER stm32_rtcalrm, STM32_IRQ_RTCALRM /* Vector 16+41: RTC alarm through EXTI line interrupt */
+ HANDLER stm32_otgfswkup, STM32_IRQ_OTGFSWKUP /* Vector 16+42: USB On-The-Go FS Wakeup through EXTI line interrupt */
+ HANDLER stm32_tim8brk, STM32_IRQ_TIM8BRK /* Vector 16+43: TIM8 Break interrupt/TIM12 global interrupt */
+ HANDLER stm32_tim8up, STM32_IRQ_TIM8UP /* Vector 16+44: TIM8 Update interrup/TIM13 global interrupt */
+ HANDLER stm32_tim8trgcom, STM32_IRQ_TIM8TRGCOM /* Vector 16+45: TIM8 Trigger and Commutation interrupts/TIM14 global interrupt */
+ HANDLER stm32_tim8cc, STM32_IRQ_TIM8CC /* Vector 16+46: TIM8 Capture Compare interrupt */
+ HANDLER stm32_dma1s7, STM32_IRQ_DMA1S7 /* Vector 16+47: DMA1 Stream 7 global interrupt */
+ HANDLER stm32_fsmc, STM32_IRQ_FSMC /* Vector 16+48: FSMC global interrupt */
+ HANDLER stm32_sdio, STM32_IRQ_SDIO /* Vector 16+49: SDIO global interrupt */
+ HANDLER stm32_tim5, STM32_IRQ_TIM5 /* Vector 16+50: TIM5 global interrupt */
+ HANDLER stm32_spi3, STM32_IRQ_SPI3 /* Vector 16+51: SPI3 global interrupt */
+ HANDLER stm32_uart4, STM32_IRQ_UART4 /* Vector 16+52: UART4 global interrupt */
+ HANDLER stm32_uart5, STM32_IRQ_UART5 /* Vector 16+53: UART5 global interrupt */
+ HANDLER stm32_tim6, STM32_IRQ_TIM6 /* Vector 16+54: TIM6 global interrupt/DAC1 and DAC2 underrun error interrupts */
+ HANDLER stm32_tim7, STM32_IRQ_TIM7 /* Vector 16+55: TIM7 global interrupt */
+ HANDLER stm32_dma2s0, STM32_IRQ_DMA2S0 /* Vector 16+56: DMA2 Stream 0 global interrupt */
+ HANDLER stm32_dma2s1, STM32_IRQ_DMA2S1 /* Vector 16+57: DMA2 Stream 1 global interrupt */
+ HANDLER stm32_dma2s2, STM32_IRQ_DMA2S2 /* Vector 16+58: DMA2 Stream 2 global interrupt */
+ HANDLER stm32_dma2s3, STM32_IRQ_DMA2S3 /* Vector 16+59: DMA2 Stream 3 global interrupt */
+ HANDLER stm32_dma2s4, STM32_IRQ_DMA2S4 /* Vector 16+60: DMA2 Stream 4 global interrupt */
+ HANDLER stm32_eth, STM32_IRQ_ETH /* Vector 16+61: Ethernet global interrupt */
+ HANDLER stm32_ethwkup, STM32_IRQ_ETHWKUP /* Vector 16+62: Ethernet Wakeup through EXTI line interrupt */
+ HANDLER stm32_can2tx, STM32_IRQ_CAN2TX /* Vector 16+63: CAN2 TX interrupts */
+ HANDLER stm32_can2rx0, STM32_IRQ_CAN2RX0 /* Vector 16+64: CAN2 RX0 interrupts */
+ HANDLER stm32_can2rx1, STM32_IRQ_CAN2RX1 /* Vector 16+65: CAN2 RX1 interrupt */
+ HANDLER stm32_can2sce, STM32_IRQ_CAN2SCE /* Vector 16+66: CAN2 SCE interrupt */
+ HANDLER stm32_otgfs, STM32_IRQ_OTGFS /* Vector 16+67: USB On The Go FS global interrupt */
+ HANDLER stm32_dma2s5, STM32_IRQ_DMA2S5 /* Vector 16+68: DMA2 Stream 5 global interrupt */
+ HANDLER stm32_dma2s6, STM32_IRQ_DMA2S6 /* Vector 16+69: DMA2 Stream 6 global interrupt */
+ HANDLER stm32_dma2s7, STM32_IRQ_DMA2S7 /* Vector 16+70: DMA2 Stream 7 global interrupt */
+ HANDLER stm32_usart6, STM32_IRQ_USART6 /* Vector 16+71: USART6 global interrupt */
+ HANDLER stm32_i2c3ev, STM32_IRQ_I2C3EV /* Vector 16+72: I2C3 event interrupt */
+ HANDLER stm32_i2c3er, STM32_IRQ_I2C3ER /* Vector 16+73: I2C3 error interrupt */
+ HANDLER stm32_otghsep1out, STM32_IRQ_OTGHSEP1OUT /* Vector 16+74: USB On The Go HS End Point 1 Out global interrupt */
+ HANDLER stm32_otghsep1in, STM32_IRQ_OTGHSEP1IN /* Vector 16+75: USB On The Go HS End Point 1 In global interrupt */
+ HANDLER stm32_otghswkup, STM32_IRQ_OTGHSWKUP /* Vector 16+76: USB On The Go HS Wakeup through EXTI interrupt */
+ HANDLER stm32_otghs, STM32_IRQ_OTGHS /* Vector 16+77: USB On The Go HS global interrupt */
+ HANDLER stm32_dcmi, STM32_IRQ_DCMI /* Vector 16+78: DCMI global interrupt */
+ HANDLER stm32_cryp, STM32_IRQ_CRYP /* Vector 16+79: CRYP crypto global interrupt */
+ HANDLER stm32_hash, STM32_IRQ_HASH /* Vector 16+80: Hash and Rng global interrupt */
+ HANDLER stm32_fpu, STM32_IRQ_FPU /* Vector 16+81: FPU global interrupt */
#endif
/* Common IRQ handling logic. On entry here, the return stack is on either