diff --git a/board/discoveryf429/defconfig b/board/discoveryf429/defconfig index cbf09750..b96ea5c4 100644 --- a/board/discoveryf429/defconfig +++ b/board/discoveryf429/defconfig @@ -14,8 +14,94 @@ CONFIG_BOARD_STM32F429DISCOVERY=y # CONFIG_STDIO_NODEV is not set CONFIG_STDIO_USE_DBGPORT=y # CONFIG_DBGPORT_USE_USART1 is not set -# CONFIG_DBGPORT_USE_USART2 is not set -CONFIG_DBGPORT_USE_USART4=y +CONFIG_DBGPORT_USE_USART2=y +# CONFIG_DBGPORT_USE_USART4 is not set +# CONFIG_WWDG_USER_IRQ is not set +# CONFIG_PVD_USER_IRQ is not set +# CONFIG_TAMP_STAMP_USER_IRQ is not set +# CONFIG_RTC_WKUP_USER_IRQ is not set +# CONFIG_FLASH_USER_IRQ is not set +# CONFIG_RCC_USER_IRQ is not set +CONFIG_EXTI0_USER_IRQ=y +CONFIG_EXTI1_USER_IRQ=y +# CONFIG_EXTI2_USER_IRQ is not set +# CONFIG_EXTI3_USER_IRQ is not set +# CONFIG_EXTI4_USER_IRQ is not set +# CONFIG_DMA1_Stream0_USER_IRQ is not set +# CONFIG_DMA1_Stream1_USER_IRQ is not set +# CONFIG_DMA1_Stream2_USER_IRQ is not set +# CONFIG_DMA1_Stream3_USER_IRQ is not set +# CONFIG_DMA1_Stream4_USER_IRQ is not set +# CONFIG_DMA1_Stream5_USER_IRQ is not set +# CONFIG_DMA1_Stream6_USER_IRQ is not set +# CONFIG_ADC_USER_IRQ is not set +# CONFIG_CAN1_TX_USER_IRQ is not set +# CONFIG_CAN1_RX_USER_IRQ is not set +# CONFIG_CAN1_RX1_USER_IRQ is not set +# CONFIG_CAN1_SCE_USER_IRQ is not set +# CONFIG_EXTI9_5_USER_IRQ is not set +# CONFIG_TIM1_BRK_TIM9_USER_IRQ is not set +# CONFIG_TIM1_UP_TIM10_USER_IRQ is not set +# CONFIG_TIM1_TRG_COM_TIM11_USER_IRQ is not set +# CONFIG_TIM1_CC_USER_IRQ is not set +# CONFIG_TIM2_USER_IRQ is not set +# CONFIG_TIM3_USER_IRQ is not set +# CONFIG_TIM4_USER_IRQ is not set +# CONFIG_I2C1_EV_USER_IRQ is not set +# CONFIG_I2C1_ER_USER_IRQ is not set +# CONFIG_I2C2_EV_USER_IRQ is not set +# CONFIG_I2C2_ER_USER_IRQ is not set +# CONFIG_SPI1_USER_IRQ is not set +# CONFIG_SPI2_USER_IRQ is not set +# CONFIG_USART1_USER_IRQ is not set +# CONFIG_USART2_USER_IRQ is not set +# CONFIG_USART3_USER_IRQ is not set +# CONFIG_EXTI15_10_USER_IRQ is not set +# CONFIG_RTC_Alarm_USER_IRQ is not set +# CONFIG_OTG_FS_WKUP_USER_IRQ is not set +# CONFIG_TIM8_BRK_TIM12_USER_IRQ is not set +# CONFIG_TIM8_UP_TIM13_USER_IRQ is not set +# CONFIG_TIM8_TRG_COM_TIM14_USER_IRQ is not set +# CONFIG_TIM8_CC_USER_IRQ is not set +# CONFIG_DMA1_Stream7_USER_IRQ is not set +# CONFIG_FSMC_USER_IRQ is not set +# CONFIG_SDIO_USER_IRQ is not set +# CONFIG_TIM5_USER_IRQ is not set +# CONFIG_SPI3_USER_IRQ is not set +# CONFIG_UART4_USER_IRQ is not set +# CONFIG_UART5_USER_IRQ is not set +# CONFIG_TIM6_DAC_USER_IRQ is not set +# CONFIG_TIM7_USER_IRQ is not set +# CONFIG_DMA2_Stream0_USER_IRQ is not set +# CONFIG_DMA2_Stream1_USER_IRQ is not set +# CONFIG_DMA2_Stream2_USER_IRQ is not set +# CONFIG_DMA2_Stream3_USER_IRQ is not set +# CONFIG_DMA2_Stream4_USER_IRQ is not set +# CONFIG_ETH_USER_IRQ is not set +# CONFIG_ETH_WKUP_USER_IRQ is not set +# CONFIG_CAN2_TX_USER_IRQ is not set +# CONFIG_CAN2_RX0_USER_IRQ is not set +# CONFIG_CAN2_RX1_USER_IRQ is not set +# CONFIG_CAN2_SCE_USER_IRQ is not set +# CONFIG_OTG_FS_USER_IRQ is not set +# CONFIG_DMA2_Stream5_USER_IRQ is not set +# CONFIG_DMA2_Stream6_USER_IRQ is not set +# CONFIG_DMA2_Stream7_USER_IRQ is not set +# CONFIG_USART6_USER_IRQ is not set +# CONFIG_I2C3_EV_USER_IRQ is not set +# CONFIG_I2C3_ER_USER_IRQ is not set +# CONFIG_OTG_HS_EP1_OUT_USER_IRQ is not set +# CONFIG_OTG_HS_EP1_IN_USER_IRQ is not set +# CONFIG_OTG_HS_WKUP_USER_IRQ is not set +# CONFIG_OTG_HS_USER_IRQ is not set +# CONFIG_DCMI_USER_IRQ is not set +# CONFIG_CRYP_USER_IRQ is not set +# CONFIG_HASH_RNG_USER_IRQ is not set +# CONFIG_FPU_USER_IRQ is not set + +# +# User Interrupt Config +# # # Limitations @@ -62,3 +148,8 @@ CONFIG_KPROBES=y CONFIG_SYMMAP=y CONFIG_PANIC_DUMP_STACK=y # CONFIG_LOADER is not set + +# +# Test Case +# +CONFIG_EXTI_INTERRUPT_TEST=y diff --git a/board/stm32p103/defconfig b/board/stm32p103/defconfig index cb6d5130..f6e589cf 100644 --- a/board/stm32p103/defconfig +++ b/board/stm32p103/defconfig @@ -17,6 +17,53 @@ CONFIG_STDIO_USE_DBGPORT=y # CONFIG_DBGPORT_USE_USART1 is not set CONFIG_DBGPORT_USE_USART2=y # CONFIG_DBGPORT_USE_USART4 is not set +# CONFIG_WWDG_USER_IRQ is not set +# CONFIG_PVD_USER_IRQ is not set +# CONFIG_TAMP_STAMP_USER_IRQ is not set +# CONFIG_RTC_WKUP_USER_IRQ is not set +# CONFIG_FLASH_USER_IRQ is not set +# CONFIG_RCC_USER_IRQ is not set +CONFIG_EXTI0_USER_IRQ=y +CONFIG_EXTI1_USER_IRQ=y +# CONFIG_EXTI2_USER_IRQ is not set +# CONFIG_EXTI3_USER_IRQ is not set +# CONFIG_EXTI4_USER_IRQ is not set +# CONFIG_ADC_USER_IRQ is not set +# CONFIG_CAN1_TX_USER_IRQ is not set +# CONFIG_CAN1_RX_USER_IRQ is not set +# CONFIG_CAN1_RX1_USER_IRQ is not set +# CONFIG_CAN1_SCE_USER_IRQ is not set +# CONFIG_EXTI9_5_USER_IRQ is not set +# CONFIG_TIM1_CC_USER_IRQ is not set +# CONFIG_TIM2_USER_IRQ is not set +# CONFIG_TIM3_USER_IRQ is not set +# CONFIG_TIM4_USER_IRQ is not set +# CONFIG_I2C1_EV_USER_IRQ is not set +# CONFIG_I2C1_ER_USER_IRQ is not set +# CONFIG_I2C2_EV_USER_IRQ is not set +# CONFIG_I2C2_ER_USER_IRQ is not set +# CONFIG_SPI1_USER_IRQ is not set +# CONFIG_SPI2_USER_IRQ is not set +# CONFIG_USART1_USER_IRQ is not set +# CONFIG_USART2_USER_IRQ is not set +# CONFIG_USART3_USER_IRQ is not set +# CONFIG_EXTI15_10_USER_IRQ is not set +# CONFIG_RTC_Alarm_USER_IRQ is not set +# CONFIG_OTG_FS_WKUP_USER_IRQ is not set + +# +# User Interrupt Config +# +# CONFIG_DMA_Stream0_USER_IRQ is not set +# CONFIG_DMA_Stream1_USER_IRQ is not set +# CONFIG_DMA_Stream2_USER_IRQ is not set +# CONFIG_DMA_Stream3_USER_IRQ is not set +# CONFIG_DMA_Stream4_USER_IRQ is not set +# CONFIG_DMA_Stream5_USER_IRQ is not set +# CONFIG_DMA_Stream6_USER_IRQ is not set +# CONFIG_TIM1_BRK_USER_IRQ is not set +# CONFIG_TIM1_UP_USER_IRQ is not set +# CONFIG_TIM1_TRG_COM_USER_IRQ is not set # # Limitations @@ -63,3 +110,8 @@ CONFIG_KPROBES=y CONFIG_SYMMAP=y CONFIG_PANIC_DUMP_STACK=y # CONFIG_LOADER is not set + +# +# Test Case +# +CONFIG_EXTI_INTERRUPT_TEST=y diff --git a/include/platform/stm32f1/exti.h b/include/platform/stm32f1/exti.h new file mode 100644 index 00000000..9bd11e92 --- /dev/null +++ b/include/platform/stm32f1/exti.h @@ -0,0 +1,28 @@ +#ifndef PLATFORM_STM32F1_EXTI_H_ +#define PLATFORM_STM32F1_EXTI_H_ + +#include +#include + +/* EXTI mode */ +#define EXTI_INTERRUPT_MODE 0x0 +#define EXTI_EVENT_MODE 0x4 + +/* EXTI trigger type */ +#define EXTI_RISING_TRIGGER 0x8 +#define EXTI_FALLING_TRIGGER 0xc +#define EXTI_RISING_FALLING_TRIGGER 0x10 + +#define EXTI_LINE(x) ((uint32_t)0x1 << x) + +struct exti_regs { + volatile uint32_t IMR; + volatile uint32_t EMR; + volatile uint32_t RTSR; + volatile uint32_t FTSR; + volatile uint32_t SWIER; + volatile uint32_t PR; +}; + + +#endif diff --git a/include/platform/stm32f1/nvic.h b/include/platform/stm32f1/nvic.h index ce74f2dd..08cf49c5 100644 --- a/include/platform/stm32f1/nvic.h +++ b/include/platform/stm32f1/nvic.h @@ -190,4 +190,5 @@ inline static uint32_t NVIC_GetActive(IRQn_Type IRQn) (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0); } +int nvic_is_setup(int irq); #endif /* __PLATFORM_STM32F1_NVIC_H__ */ diff --git a/include/platform/stm32f1/nvic_private.h b/include/platform/stm32f1/nvic_private.h index d78f3a9f..275d769c 100644 --- a/include/platform/stm32f1/nvic_private.h +++ b/include/platform/stm32f1/nvic_private.h @@ -1,45 +1,217 @@ /* This header is only included internally. */ +/* This header is only included internally. */ +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_WWDG_USER_IRQ)) IRQ_VEC_N_OP(0) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_PVD_USER_IRQ)) IRQ_VEC_N_OP(1) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TAMP_STAMP_USER_IRQ)) IRQ_VEC_N_OP(2) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RTC_WKUP_USER_IRQ)) IRQ_VEC_N_OP(3) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_FLASH_USER_IRQ)) IRQ_VEC_N_OP(4) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RCC_USER_IRQ)) IRQ_VEC_N_OP(5) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI0_USER_IRQ)) IRQ_VEC_N_OP(6) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI1_USER_IRQ)) IRQ_VEC_N_OP(7) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI2_USER_IRQ)) IRQ_VEC_N_OP(8) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI3_USER_IRQ)) IRQ_VEC_N_OP(9) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI4_USER_IRQ)) IRQ_VEC_N_OP(10) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream0_USER_IRQ)) IRQ_VEC_N_OP(11) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream1_USER_IRQ)) IRQ_VEC_N_OP(12) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream2_USER_IRQ)) IRQ_VEC_N_OP(13) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream3_USER_IRQ)) IRQ_VEC_N_OP(14) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream4_USER_IRQ)) IRQ_VEC_N_OP(15) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream5_USER_IRQ)) IRQ_VEC_N_OP(16) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA_Stream6_USER_IRQ)) IRQ_VEC_N_OP(17) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_ADC_USER_IRQ)) IRQ_VEC_N_OP(18) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_TX_USER_IRQ)) IRQ_VEC_N_OP(19) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_RX_USER_IRQ)) IRQ_VEC_N_OP(20) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_RX1_USER_IRQ)) IRQ_VEC_N_OP(21) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_SCE_USER_IRQ)) IRQ_VEC_N_OP(22) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI9_5_USER_IRQ)) IRQ_VEC_N_OP(23) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_BRK_USER_IRQ)) IRQ_VEC_N_OP(24) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_UP_USER_IRQ)) IRQ_VEC_N_OP(25) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_TRG_COM_USER_IRQ)) IRQ_VEC_N_OP(26) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_CC_USER_IRQ)) IRQ_VEC_N_OP(27) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM2_USER_IRQ)) IRQ_VEC_N_OP(28) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM3_USER_IRQ)) IRQ_VEC_N_OP(29) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM4_USER_IRQ)) IRQ_VEC_N_OP(30) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C1_EV_USER_IRQ)) IRQ_VEC_N_OP(31) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C1_ER_USER_IRQ)) IRQ_VEC_N_OP(32) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C2_EV_USER_IRQ)) IRQ_VEC_N_OP(33) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C2_ER_USER_IRQ)) IRQ_VEC_N_OP(34) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SPI1_USER_IRQ)) IRQ_VEC_N_OP(35) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SPI2_USER_IRQ)) IRQ_VEC_N_OP(36) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART1_USER_IRQ)) IRQ_VEC_N_OP(37) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART2_USER_IRQ)) IRQ_VEC_N_OP(38) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART3_USER_IRQ)) IRQ_VEC_N_OP(39) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI15_10_USER_IRQ)) IRQ_VEC_N_OP(40) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RTC_Alarm_USER_IRQ)) IRQ_VEC_N_OP(41) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_FS_WKUP_USER_IRQ)) IRQ_VEC_N_OP(42) +#endif diff --git a/include/platform/stm32f429/exti.h b/include/platform/stm32f429/exti.h new file mode 100644 index 00000000..4342f603 --- /dev/null +++ b/include/platform/stm32f429/exti.h @@ -0,0 +1,28 @@ +#ifndef PLATFORM_STM32F429_EXTI_H_ +#define PLATFORM_STM32F429_EXTI_H_ + +#include +#include + +/* EXTI mode */ +#define EXTI_INTERRUPT_MODE 0x0 +#define EXTI_EVENT_MODE 0x4 + +/* EXTI trigger type */ +#define EXTI_RISING_TRIGGER 0x8 +#define EXTI_FALLING_TRIGGER 0xc +#define EXTI_RISING_FALLING_TRIGGER 0x10 + +#define EXTI_LINE(x) ((uint32_t)0x1 << x) + +struct exti_regs { + volatile uint32_t IMR; + volatile uint32_t EMR; + volatile uint32_t RTSR; + volatile uint32_t FTSR; + volatile uint32_t SWIER; + volatile uint32_t PR; +}; + + +#endif diff --git a/include/platform/stm32f429/nvic.h b/include/platform/stm32f429/nvic.h index 4936a291..e9949fbb 100644 --- a/include/platform/stm32f429/nvic.h +++ b/include/platform/stm32f429/nvic.h @@ -269,4 +269,5 @@ inline static uint32_t NVIC_GetActive(IRQn_Type IRQn) (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0); } +int nvic_is_setup(int irq); #endif /* __PLATFORM_STM32F429_NVIC_H__ */ diff --git a/include/platform/stm32f429/nvic_private.h b/include/platform/stm32f429/nvic_private.h index 1fbfe994..1f55ebbc 100644 --- a/include/platform/stm32f429/nvic_private.h +++ b/include/platform/stm32f429/nvic_private.h @@ -1,84 +1,410 @@ /* This header is only included internally. */ - +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_WWDG_USER_IRQ)) IRQ_VEC_N_OP(0) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_PVD_USER_IRQ)) IRQ_VEC_N_OP(1) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TAMP_STAMP_USER_IRQ)) IRQ_VEC_N_OP(2) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RTC_WKUP_USER_IRQ)) IRQ_VEC_N_OP(3) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_FLASH_USER_IRQ)) IRQ_VEC_N_OP(4) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RCC_USER_IRQ)) IRQ_VEC_N_OP(5) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI0_USER_IRQ)) IRQ_VEC_N_OP(6) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI1_USER_IRQ)) IRQ_VEC_N_OP(7) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI2_USER_IRQ)) IRQ_VEC_N_OP(8) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI3_USER_IRQ)) IRQ_VEC_N_OP(9) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI4_USER_IRQ)) IRQ_VEC_N_OP(10) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream0_USER_IRQ)) IRQ_VEC_N_OP(11) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream1_USER_IRQ)) IRQ_VEC_N_OP(12) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream2_USER_IRQ)) IRQ_VEC_N_OP(13) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream3_USER_IRQ)) IRQ_VEC_N_OP(14) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream4_USER_IRQ)) IRQ_VEC_N_OP(15) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream5_USER_IRQ)) IRQ_VEC_N_OP(16) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream6_USER_IRQ)) IRQ_VEC_N_OP(17) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_ADC_USER_IRQ)) IRQ_VEC_N_OP(18) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_TX_USER_IRQ)) IRQ_VEC_N_OP(19) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_RX_USER_IRQ)) IRQ_VEC_N_OP(20) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_RX1_USER_IRQ)) IRQ_VEC_N_OP(21) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN1_SCE_USER_IRQ)) IRQ_VEC_N_OP(22) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI9_5_USER_IRQ)) IRQ_VEC_N_OP(23) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_BRK_TIM9_USER_IRQ)) IRQ_VEC_N_OP(24) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_UP_TIM10_USER_IRQ)) IRQ_VEC_N_OP(25) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_TRG_COM_TIM11_USER_IRQ)) IRQ_VEC_N_OP(26) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM1_CC_USER_IRQ)) IRQ_VEC_N_OP(27) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM2_USER_IRQ)) IRQ_VEC_N_OP(28) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM3_USER_IRQ)) IRQ_VEC_N_OP(29) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM4_USER_IRQ)) IRQ_VEC_N_OP(30) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C1_EV_USER_IRQ)) IRQ_VEC_N_OP(31) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C1_ER_USER_IRQ)) IRQ_VEC_N_OP(32) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C2_EV_USER_IRQ)) IRQ_VEC_N_OP(33) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C2_ER_USER_IRQ)) IRQ_VEC_N_OP(34) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SPI1_USER_IRQ)) IRQ_VEC_N_OP(35) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SPI2_USER_IRQ)) IRQ_VEC_N_OP(36) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART1_USER_IRQ)) IRQ_VEC_N_OP(37) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART2_USER_IRQ)) IRQ_VEC_N_OP(38) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART3_USER_IRQ)) IRQ_VEC_N_OP(39) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_EXTI15_10_USER_IRQ)) IRQ_VEC_N_OP(40) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_RTC_Alarm_USER_IRQ)) IRQ_VEC_N_OP(41) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_FS_WKUP_USER_IRQ)) IRQ_VEC_N_OP(42) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM8_BRK_TIM12_USER_IRQ)) IRQ_VEC_N_OP(43) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM8_UP_TIM13_USER_IRQ)) IRQ_VEC_N_OP(44) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM8_TRG_COM_TIM14_USER_IRQ)) IRQ_VEC_N_OP(45) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM8_CC_USER_IRQ)) IRQ_VEC_N_OP(46) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA1_Stream7_USER_IRQ)) IRQ_VEC_N_OP(47) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_FSMC_USER_IRQ)) IRQ_VEC_N_OP(48) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SDIO_USER_IRQ)) IRQ_VEC_N_OP(49) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM5_USER_IRQ)) IRQ_VEC_N_OP(50) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_SPI3_USER_IRQ)) IRQ_VEC_N_OP(51) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_UART4_USER_IRQ)) IRQ_VEC_N_OP(52) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_UART5_USER_IRQ)) IRQ_VEC_N_OP(53) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM6_DAC_USER_IRQ)) IRQ_VEC_N_OP(54) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_TIM7_USER_IRQ)) IRQ_VEC_N_OP(55) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream0_USER_IRQ)) IRQ_VEC_N_OP(56) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream1_USER_IRQ)) IRQ_VEC_N_OP(57) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream2_USER_IRQ)) IRQ_VEC_N_OP(58) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream3_USER_IRQ)) IRQ_VEC_N_OP(59) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream4_USER_IRQ)) IRQ_VEC_N_OP(60) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_ETH_USER_IRQ)) IRQ_VEC_N_OP(61) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_ETH_WKUP_USER_IRQ)) IRQ_VEC_N_OP(62) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN2_TX_USER_IRQ)) IRQ_VEC_N_OP(63) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN2_RX0_USER_IRQ)) IRQ_VEC_N_OP(64) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN2_RX1_USER_IRQ)) IRQ_VEC_N_OP(65) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CAN2_SCE_USER_IRQ)) IRQ_VEC_N_OP(66) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_FS_USER_IRQ)) IRQ_VEC_N_OP(67) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream5_USER_IRQ)) IRQ_VEC_N_OP(68) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream6_USER_IRQ)) IRQ_VEC_N_OP(69) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DMA2_Stream7_USER_IRQ)) IRQ_VEC_N_OP(70) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_USART6_USER_IRQ)) IRQ_VEC_N_OP(71) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C3_EV_USER_IRQ)) IRQ_VEC_N_OP(72) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_I2C3_ER_USER_IRQ)) IRQ_VEC_N_OP(73) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_HS_EP1_OUT_USER_IRQ)) IRQ_VEC_N_OP(74) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_HS_EP1_IN_USER_IRQ)) IRQ_VEC_N_OP(75) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_HS_WKUP_USER_IRQ)) IRQ_VEC_N_OP(76) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_OTG_HS_USER_IRQ)) IRQ_VEC_N_OP(77) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_DCMI_USER_IRQ)) IRQ_VEC_N_OP(78) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_CRYP_USER_IRQ)) IRQ_VEC_N_OP(79) +#endif + +#if !defined(USER_INTERRUPT) || \ + (defined(USER_INTERRUPT) && defined(CONFIG_HASH_RNG_USER_IRQ)) IRQ_VEC_N_OP(80) +#endif + +#if !defined(USER_INTERRUPT) || (\ + defined(USER_INTERRUPT) && defined(CONFIG_FPU_USER_IRQ)) IRQ_VEC_N_OP(81) +#endif diff --git a/kernel/build.mk b/kernel/build.mk index 35388702..11850a8d 100644 --- a/kernel/build.mk +++ b/kernel/build.mk @@ -17,12 +17,8 @@ kernel-y = \ syscall.o \ systhread.o \ thread.o \ - user-log.o - -ifdef CONFIG_BOARD_STM32F4DISCOVERY -kernel-y += \ + user-log.o \ interrupt.o -endif KDB-$(CONFIG_KDB) = \ kdb.o diff --git a/kernel/ipc.c b/kernel/ipc.c index b5f62c43..3a574aaa 100644 --- a/kernel/ipc.c +++ b/kernel/ipc.c @@ -226,12 +226,10 @@ void sys_ipc(uint32_t *param1) user_log(caller); caller->state = T_RUNNABLE; return; -#ifdef CONFIG_BOARD_STM32F4DISCOVERY } else if (to_tid == TID_TO_GLOBALID(THREAD_IRQ_REQUEST)) { user_interrupt_config(caller); caller->state = T_RUNNABLE; return; -#endif } else if ((to_thr && to_thr->state == T_RECV_BLOCKED) || to_tid == caller->t_globalid) { /* To thread who is waiting for us or sends to myself */ @@ -299,11 +297,7 @@ void sys_ipc(uint32_t *param1) return; } } -#ifdef CONFIG_BOARD_STM32F4DISCOVERY } else if (from_tid != TID_TO_GLOBALID(THREAD_INTERRUPT)) { -#else - } else { -#endif thr = thread_by_globalid(from_tid); if (thr->state == T_SEND_BLOCKED && @@ -317,12 +311,10 @@ void sys_ipc(uint32_t *param1) caller->state = T_RECV_BLOCKED; caller->ipc_from = from_tid; -#ifdef CONFIG_BOARD_STM32F4DISCOVERY if (from_tid == TID_TO_GLOBALID(THREAD_INTERRUPT)) { /* Threaded interrupt is ready */ user_interrupt_handler_update(caller); } -#endif if (timeout) sys_ipc_timeout(timeout); diff --git a/platform/Kconfig b/platform/Kconfig index 40d58c62..fdb5ce51 100644 --- a/platform/Kconfig +++ b/platform/Kconfig @@ -65,4 +65,11 @@ endchoice if BOARD_STM32F4DISCOVERY source platform/stm32f4/Kconfig endif +if BOARD_STM32F429DISCOVERY +source platform/stm32f429/Kconfig +endif +if BOARD_STM32P103 +source platform/stm32f1/Kconfig +endif + endmenu diff --git a/platform/stm32-common/nvic.c b/platform/stm32-common/nvic.c index bdd20820..c4e098e4 100644 --- a/platform/stm32-common/nvic.c +++ b/platform/stm32-common/nvic.c @@ -25,7 +25,7 @@ void _undefined_handler(void) __attribute__((weak, alias("_undefined_handler"))); #define IRQ_VEC_N_OP DEFAULT_IRQ_VEC -#include "platform/stm32f4/nvic_private.h" +#include INC_PLAT(nvic_private.h) #undef IRQ_VEC_N_OP extern void (* const g_pfnVectors[])(void); diff --git a/platform/stm32f1/Kconfig b/platform/stm32f1/Kconfig new file mode 100644 index 00000000..c709e383 --- /dev/null +++ b/platform/stm32f1/Kconfig @@ -0,0 +1,175 @@ +menu "User Interrupt Config" + +config WWDG_USER_IRQ + bool "User WWDG IRQ" + default n + +config PVD_USER_IRQ + bool "User PVD IRQ" + default n + +config TAMP_STAMP_USER_IRQ + bool "User TAMP_STAMP IRQ" + default n + +config RTC_WKUP_USER_IRQ + bool "User RTC_WKUP IRQ" + default n + +config FLASH_USER_IRQ + bool "User FLASH_USER IRQ" + default n + +config RCC_USER_IRQ + bool "User RCC IRQ" + default n + +config EXTI0_USER_IRQ + bool "User EXTI0 IRQ" + default n + +config EXTI1_USER_IRQ + bool "User EXIT1 IRQ" + default n + +config EXTI2_USER_IRQ + bool "User EXIT2 IRQ" + default n + +config EXTI3_USER_IRQ + bool "User EXIT3 IRQ" + default n + +config EXTI4_USER_IRQ + bool "User EXIT4 IRQ" + default n + +config DMA_Stream0_USER_IRQ + bool "User DMA_Stream0 IRQ" + default n + +config DMA_Stream1_USER_IRQ + bool "User DMA_Stream1 IRQ" + default n + +config DMA_Stream2_USER_IRQ + bool "User DMA_Stream2 IRQ" + default n + +config DMA_Stream3_USER_IRQ + bool "User DMA_Stream3 IRQ" + default n + +config DMA_Stream4_USER_IRQ + bool "User DMA_Stream4 IRQ" + default n + +config DMA_Stream5_USER_IRQ + bool "User DMA_Stream5 IRQ" + default n + +config DMA_Stream6_USER_IRQ + bool "User DMA_Stream6 IRQ" + default n + +config ADC_USER_IRQ + bool "User ADC IRQ" + default n + +config CAN1_TX_USER_IRQ + bool "CAN1 TX User IRQ" + default n + +config CAN1_RX_USER_IRQ + bool "CAN1 RX User IRQ" + default n + +config CAN1_RX1_USER_IRQ + bool "CAN1 RX1 User IRQ" + default n + +config CAN1_SCE_USER_IRQ + bool "CAN1 SEC User IRQ" + default n + +config EXTI9_5_USER_IRQ + bool "EXTI9_5 User IRQ" + default n + +config TIM1_BRK_USER_IRQ + bool "TIM1_BRK User IRQ" + default n + +config TIM1_UP_USER_IRQ + bool "TIM1_UP User IRQ" + default n + +config TIM1_TRG_COM_USER_IRQ + bool "TIM1_TRG_COM User IRQ" + default n + +config TIM1_CC_USER_IRQ + bool "TIM1_CC User IRQ" + default n + +config TIM2_USER_IRQ + bool "TIM2 User IRQ" + default n + +config TIM3_USER_IRQ + bool "TIM3 User IRQ" + default n + +config TIM4_USER_IRQ + bool "TIM4 User IRQ" + default n + +config I2C1_EV_USER_IRQ + bool "I2C1_EV User IRQ" + default n + +config I2C1_ER_USER_IRQ + bool "I2C1_ER User IRQ" + default n + +config I2C2_EV_USER_IRQ + bool "I2C2_EV User IRQ" + default n + +config I2C2_ER_USER_IRQ + bool "I2C2_ER User IRQ" + default n + +config SPI1_USER_IRQ + bool "SPI1 User IRQ" + default n + +config SPI2_USER_IRQ + bool "SPI2 User IRQ" + default n + +config USART1_USER_IRQ + bool "USART1 User IRQ" + default n + +config USART2_USER_IRQ + bool "USART2 User IRQ" + default n + +config USART3_USER_IRQ + bool "USART3 User IRQ" + default n + +config EXTI15_10_USER_IRQ + bool "EXTI15_10 User IRQ" + default n + +config RTC_Alarm_USER_IRQ + bool "RTC Alarm User IRQ" + default n + +config OTG_FS_WKUP_USER_IRQ + bool "OTG_FS_WKUP User IRQ" + default n + +endmenu diff --git a/platform/stm32f429/Kconfig b/platform/stm32f429/Kconfig new file mode 100644 index 00000000..182ce1ac --- /dev/null +++ b/platform/stm32f429/Kconfig @@ -0,0 +1,330 @@ +menu "User Interrupt Config" + +config WWDG_USER_IRQ + bool "User WWDG IRQ" + default n + +config PVD_USER_IRQ + bool "User PVD IRQ" + default n + +config TAMP_STAMP_USER_IRQ + bool "User TAMP_STAMP IRQ" + default n + +config RTC_WKUP_USER_IRQ + bool "User RTC_WKUP IRQ" + default n + +config FLASH_USER_IRQ + bool "User FLASH_USER IRQ" + default n + +config RCC_USER_IRQ + bool "User RCC IRQ" + default n + +config EXTI0_USER_IRQ + bool "User EXTI0 IRQ" + default n + +config EXTI1_USER_IRQ + bool "User EXIT1 IRQ" + default n + +config EXTI2_USER_IRQ + bool "User EXIT2 IRQ" + default n + +config EXTI3_USER_IRQ + bool "User EXIT3 IRQ" + default n + +config EXTI4_USER_IRQ + bool "User EXIT4 IRQ" + default n + +config DMA1_Stream0_USER_IRQ + bool "User DMA1_Stream0 IRQ" + default n + +config DMA1_Stream1_USER_IRQ + bool "User DMA1_Stream1 IRQ" + default n + +config DMA1_Stream2_USER_IRQ + bool "User DMA1_Stream2 IRQ" + default n + +config DMA1_Stream3_USER_IRQ + bool "User DMA1_Stream3 IRQ" + default n + +config DMA1_Stream4_USER_IRQ + bool "User DMA1_Stream4 IRQ" + default n + +config DMA1_Stream5_USER_IRQ + bool "User DMA1_Stream5 IRQ" + default n + +config DMA1_Stream6_USER_IRQ + bool "User DMA1_Stream6 IRQ" + default n + +config ADC_USER_IRQ + bool "User ADC IRQ" + default n + +config CAN1_TX_USER_IRQ + bool "CAN1 TX User IRQ" + default n + +config CAN1_RX_USER_IRQ + bool "CAN1 RX User IRQ" + default n + +config CAN1_RX1_USER_IRQ + bool "CAN1 RX1 User IRQ" + default n + +config CAN1_SCE_USER_IRQ + bool "CAN1 SEC User IRQ" + default n + +config EXTI9_5_USER_IRQ + bool "EXTI9_5 User IRQ" + default n + +config TIM1_BRK_TIM9_USER_IRQ + bool "TIM1_BRK_TIM9 User IRQ" + default n + +config TIM1_UP_TIM10_USER_IRQ + bool "TIM1_UP_TIM10 User IRQ" + default n + +config TIM1_TRG_COM_TIM11_USER_IRQ + bool "TIM1_TRG_COM_TIM11 User IRQ" + default n + +config TIM1_CC_USER_IRQ + bool "TIM1_CC User IRQ" + default n + +config TIM2_USER_IRQ + bool "TIM2 User IRQ" + default n + +config TIM3_USER_IRQ + bool "TIM3 User IRQ" + default n + +config TIM4_USER_IRQ + bool "TIM4 User IRQ" + default n + +config I2C1_EV_USER_IRQ + bool "I2C1_EV User IRQ" + default n + +config I2C1_ER_USER_IRQ + bool "I2C1_ER User IRQ" + default n + +config I2C2_EV_USER_IRQ + bool "I2C2_EV User IRQ" + default n + +config I2C2_ER_USER_IRQ + bool "I2C2_ER User IRQ" + default n + +config SPI1_USER_IRQ + bool "SPI1 User IRQ" + default n + +config SPI2_USER_IRQ + bool "SPI2 User IRQ" + default n + +config USART1_USER_IRQ + bool "USART1 User IRQ" + default n + +config USART2_USER_IRQ + bool "USART2 User IRQ" + default n + +config USART3_USER_IRQ + bool "USART3 User IRQ" + default n + +config EXTI15_10_USER_IRQ + bool "EXTI15_10 User IRQ" + default n + +config RTC_Alarm_USER_IRQ + bool "RTC Alarm User IRQ" + default n + +config OTG_FS_WKUP_USER_IRQ + bool "OTG_FS_WKUP User IRQ" + default n + +config TIM8_BRK_TIM12_USER_IRQ + bool "TIM8_BRK_TIM12 User IRQ" + default n + +config TIM8_UP_TIM13_USER_IRQ + bool "TIM8_UP_TIM13 User IRQ" + default n + +config TIM8_TRG_COM_TIM14_USER_IRQ + bool "TIM8_TRG_COM_TIM14 User IRQ" + default n + +config TIM8_CC_USER_IRQ + bool "TIM8_CC User IRQ" + default n + +config DMA1_Stream7_USER_IRQ + bool "DMA1_Stream7 User IRQ" + default n + +config FSMC_USER_IRQ + bool "FSMC User IRQ" + default n + +config SDIO_USER_IRQ + bool "SDIO User IRQ" + default n + +config TIM5_USER_IRQ + bool "TIM5 User IRQ" + default n + +config SPI3_USER_IRQ + bool "SPI3 User IRQ" + default n + +config UART4_USER_IRQ + bool "UART4 User IRQ" + default n + +config UART5_USER_IRQ + bool "UART5 User IRQ" + default n + +config TIM6_DAC_USER_IRQ + bool "TIM6_DAC User IRQ" + default n + +config TIM7_USER_IRQ + bool "TIM7 User IRQ" + default n + +config DMA2_Stream0_USER_IRQ + bool "DMA2 Stream0 User IRQ" + default n + +config DMA2_Stream1_USER_IRQ + bool "DMA2 Stream1 User IRQ" + default n + +config DMA2_Stream2_USER_IRQ + bool "DMA2 Stream2 User IRQ" + default n + +config DMA2_Stream3_USER_IRQ + bool "DMA2 Stream3 User IRQ" + default n + +config DMA2_Stream4_USER_IRQ + bool "DMA2_Stream4 User IRQ" + default n + +config ETH_USER_IRQ + bool "ETH User IRQ" + default n + +config ETH_WKUP_USER_IRQ + bool "ETH WKUP User IRQ" + default n + +config CAN2_TX_USER_IRQ + bool "CAN2 TX User IRQ" + default n + +config CAN2_RX0_USER_IRQ + bool "CAN2 RX0 User IRQ" + default n + +config CAN2_RX1_USER_IRQ + bool "CAN2 RX1 User IRQ" + default n + +config CAN2_SCE_USER_IRQ + bool "CAN2 SCE User IRQ" + default n + +config OTG_FS_USER_IRQ + bool "OTG FS User IRQ" + default n + +config DMA2_Stream5_USER_IRQ + bool "DMA2 Stream5 User IRQ" + default n + +config DMA2_Stream6_USER_IRQ + bool "DMA2 Stream6 User IRQ" + default n + +config DMA2_Stream7_USER_IRQ + bool "DMA2 Stream7 User IRQ" + default n + +config USART6_USER_IRQ + bool "USART6 User IRQ" + default n + +config I2C3_EV_USER_IRQ + bool "I2C3 EV User IRQ" + default n + +config I2C3_ER_USER_IRQ + bool "I2C3 ER User IRQ" + default n + +config OTG_HS_EP1_OUT_USER_IRQ + bool "OTG_HS_EP1_OUT User IRQ" + default n + +config OTG_HS_EP1_IN_USER_IRQ + bool "OTG_HS_EP1_IN User IRQ" + default n + +config OTG_HS_WKUP_USER_IRQ + bool "OTG_HS_WKUP User IRQ" + default n + +config OTG_HS_USER_IRQ + bool "OTG_HS User IRQ" + default n + +config DCMI_USER_IRQ + bool "DCMI User IRQ" + default n + +config CRYP_USER_IRQ + bool "CRYP User IRQ" + default n + +config HASH_RNG_USER_IRQ + bool "HASH_RNG User IRQ" + default n + +config FPU_USER_IRQ + bool "FPU User IRQ" + default n +endmenu diff --git a/user/apps/build.mk b/user/apps/build.mk index a4e714a0..6790f14d 100644 --- a/user/apps/build.mk +++ b/user/apps/build.mk @@ -10,9 +10,9 @@ user-apps-dirs = \ ifdef CONFIG_EXTI_INTERRUPT_TEST user-apps-dirs += \ irq_test -endif - +else ifdef CONFIG_BOARD_STM32F429DISCOVERY user-apps-dirs += \ lcd_test endif +endif