aboutsummaryrefslogtreecommitdiffstats
path: root/demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c')
-rw-r--r--demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c257
1 files changed, 220 insertions, 37 deletions
diff --git a/demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c b/demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c
index 5c041d9df..d35e6a51e 100644
--- a/demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c
+++ b/demos/STM8L-STM8L152-DISCOVERY-STVD/cosmic/vectors.c
@@ -20,6 +20,11 @@
#include "ch.h"
#include "hal.h"
+/* This inclusion allows user ISR to be added to the HAL.*/
+#if defined(_USER_ISR_)
+#include "user_isr.h"
+#endif
+
/**
* @brief Exception handler type.
*/
@@ -29,12 +34,37 @@ typedef void @far @interrupt (*interrupt_handler_t)(void);
* Various external symbols.
*/
void _stext(void);
+@far @interrupt void vector_trap(void);
+@far @interrupt void vector0(void);
+@far @interrupt void vector1(void);
+@far @interrupt void vector2(void);
+@far @interrupt void vector3(void);
+@far @interrupt void vector4(void);
+@far @interrupt void vector5(void);
+@far @interrupt void vector6(void);
+@far @interrupt void vector7(void);
+@far @interrupt void vector8(void);
+@far @interrupt void vector9(void);
@far @interrupt void vector10(void);
+@far @interrupt void vector11(void);
+@far @interrupt void vector12(void);
@far @interrupt void vector13(void);
+@far @interrupt void vector14(void);
+@far @interrupt void vector15(void);
+@far @interrupt void vector16(void);
@far @interrupt void vector17(void);
@far @interrupt void vector18(void);
+@far @interrupt void vector19(void);
@far @interrupt void vector20(void);
@far @interrupt void vector21(void);
+@far @interrupt void vector22(void);
+@far @interrupt void vector23(void);
+@far @interrupt void vector24(void);
+@far @interrupt void vector25(void);
+@far @interrupt void vector26(void);
+@far @interrupt void vector27(void);
+@far @interrupt void vector28(void);
+@far @interrupt void vector29(void);
/**
* @brief Exception vector type.
@@ -45,12 +75,14 @@ typedef struct {
} exception_vector_t;
/**
- * @brief Undefined interrupt handler.
- * @note It should never be invoked.
+ * @brief Unhandled exception handler.
+ * @default This function is the default handler for all unused entries
+ * in the vector table.
*/
-@far @interrupt static void vector (void)
+@far @interrupt void _unhandled_exception (void)
{
- return;
+ while (TRUE)
+ ;
}
/**
@@ -58,39 +90,190 @@ typedef struct {
*/
exception_vector_t const _vectab[] = {
{0x82, (interrupt_handler_t)_stext}, /* reset */
- {0x82, vector}, /* trap */
- {0x82, vector}, /* vector0 */
- {0x82, vector}, /* vector1 */
- {0x82, vector}, /* vector2 */
- {0x82, vector}, /* vector3 */
- {0x82, vector}, /* vector4 */
- {0x82, vector}, /* vector5 */
- {0x82, vector}, /* vector6 */
- {0x82, vector}, /* vector7 */
- {0x82, vector}, /* vector8 */
- {0x82, vector}, /* vector9 */
-#if HAL_USE_SPI && STM8_SPI_USE_SPI
+
+#if defined(_TRAP_ISR)
+ {0x82, vector_trap},
+#else
+ {0x82, _unhandled_exception}, /* trap */
+#endif
+
+#if defined(_TLI_ISR)
+ {0x82, vector0},
+#else
+ {0x82, _unhandled_exception}, /* vector0 */
+#endif
+
+#if defined(_FLASH_ISR)
+ {0x82, vector1},
+#else
+ {0x82, _unhandled_exception}, /* vector1 */
+#endif
+
+#if defined(_DMA10_ISR) || defined(_DMA11_ISR)
+ {0x82, vector2},
+#else
+ {0x82, _unhandled_exception}, /* vector2 */
+#endif
+
+#if defined(_DMA12_ISR) || defined(_DMA13_ISR)
+ {0x82, vector3},
+#else
+ {0x82, _unhandled_exception}, /* vector3 */
+#endif
+
+#if defined(_RTC_ISR) || defined(_LSE_CSS_ISR)
+ {0x82, vector4},
+#else
+ {0x82, _unhandled_exception}, /* vector4 */
+#endif
+
+#if defined(_EXTIE_ISR) || defined(_EXTIF_ISR) || defined(_PVD_ISR)
+ {0x82, vector5},
+#else
+ {0x82, _unhandled_exception}, /* vector5 */
+#endif
+
+#if defined(_EXTIB_ISR) || defined(_EXTIG_ISR)
+ {0x82, vector6},
+#else
+ {0x82, _unhandled_exception}, /* vector6 */
+#endif
+
+#if defined(_EXTID_ISR) || defined(_EXTIH_ISR)
+ {0x82, vector7},
+#else
+ {0x82, _unhandled_exception}, /* vector7 */
+#endif
+
+#if defined(_EXTI0_ISR)
+ {0x82, vector8},
+#else
+ {0x82, _unhandled_exception}, /* vector8 */
+#endif
+
+#if defined(_EXTI1_ISR)
+ {0x82, vector9},
+#else
+ {0x82, _unhandled_exception}, /* vector9 */
+#endif
+
+#if defined(_EXTI2_ISR)
{0x82, vector10},
#else
- {0x82, vector}, /* vector10 */
-#endif
- {0x82, vector}, /* vector11 */
- {0x82, vector}, /* vector12 */
- {0x82, vector}, /* vector13 */
- {0x82, vector}, /* vector14 */
- {0x82, vector}, /* vector15 */
- {0x82, vector}, /* vector16 */
- {0x82, vector}, /* vector17 */
- {0x82, vector}, /* vector18 */
- {0x82, vector}, /* vector19 */
- {0x82, vector20}, /* vector20 */
- {0x82, vector}, /* vector21 */
- {0x82, vector}, /* vector22 */
- {0x82, vector}, /* vector23 */
- {0x82, vector}, /* vector24 */
- {0x82, vector}, /* vector25 */
- {0x82, vector}, /* vector26 */
- {0x82, vector}, /* vector27 */
- {0x82, vector}, /* vector28 */
- {0x82, vector}, /* vector29 */
+ {0x82, _unhandled_exception}, /* vector10 */
+#endif
+
+#if defined(_EXTI3_ISR)
+ {0x82, vector11},
+#else
+ {0x82, _unhandled_exception}, /* vector11 */
+#endif
+
+#if defined(_EXTI4_ISR)
+ {0x82, vector12},
+#else
+ {0x82, _unhandled_exception}, /* vector12 */
+#endif
+
+#if defined(_EXTI5_ISR)
+ {0x82, vector13},
+#else
+ {0x82, _unhandled_exception}, /* vector13 */
+#endif
+
+#if defined(_EXTI6_ISR)
+ {0x82, vector14},
+#else
+ {0x82, _unhandled_exception}, /* vector14 */
+#endif
+
+#if defined(_EXTI7_ISR)
+ {0x82, vector15},
+#else
+ {0x82, _unhandled_exception}, /* vector15 */
+#endif
+
+#if defined(_LCD_ISR) || defined(_AES_ISR)
+ {0x82, vector16},
+#else
+ {0x82, _unhandled_exception}, /* vector16 */
+#endif
+
+#if defined(_CLK_ISR) || defined(_TIM1_BREAK_ISR) || defined(_DAC_ISR)
+ {0x82, vector17},
+#else
+ {0x82, _unhandled_exception}, /* vector17 */
+#endif
+
+#if defined(_COMP1_ISR) || defined(_COMP2_ISR) || defined(_ADC1_ISR)
+ {0x82, vector18},
+#else
+ {0x82, _unhandled_exception}, /* vector18 */
+#endif
+
+#if defined(_TIM2_OVERFLOW_ISR) || defined(_USART2_TRANSMIT_ISR)
+ {0x82, vector19},
+#else
+ {0x82, _unhandled_exception}, /* vector19 */
+#endif
+
+#if defined(_TIM2_COMPARE_ISR) || defined(_USART2_RECEIVE_ISR)
+ {0x82, vector20},
+#else
+ {0x82, _unhandled_exception}, /* vector20 */
+#endif
+
+#if defined(_TIM3_UPDATE_ISR) || defined(_USART3_TRANSMIT_ISR)
+ {0x82, vector21},
+#else
+ {0x82, _unhandled_exception}, /* vector21 */
+#endif
+
+#if defined(_TIM3_COMPARE_ISR) || defined(_USART3_RECEIVE_ISR)
+ {0x82, vector22},
+#else
+ {0x82, _unhandled_exception}, /* vector22 */
+#endif
+
+#if defined(_TIM1_UPDATE_ISR)
+ {0x82, vector23},
+#else
+ {0x82, _unhandled_exception}, /* vector23 */
+#endif
+
+#if defined(_TIM1_COMPARE_ISR)
+ {0x82, vector24},
+#else
+ {0x82, _unhandled_exception}, /* vector24 */
+#endif
+
+#if defined(_TIM4_UPDATE_ISR)
+ {0x82, vector25},
+#else
+ {0x82, _unhandled_exception}, /* vector25 */
+#endif
+
+#if defined(_SPI1_ISR)
+ {0x82, vector26},
+#else
+ {0x82, _unhandled_exception}, /* vector26 */
+#endif
+
+#if defined(_TIM5_UPDATE_ISR) || defined(_USART1_TRANSMIT_ISR)
+ {0x82, vector27},
+#else
+ {0x82, _unhandled_exception}, /* vector27 */
+#endif
+
+#if defined(_TIM5_COMPARE_ISR) || defined(_USART1_RECEIVE_ISR)
+ {0x82, vector28},
+#else
+ {0x82, _unhandled_exception}, /* vector28 */
+#endif
+
+#if defined(_SPI2_ISR) || defined(_I2C1_ISR)
+ {0x82, vector29},
+#else
+ {0x82, _unhandled_exception}, /* vector29 */
+#endif
};