Disabled priority check on STM32 EXTI interrupts when the default ISR is disabled. This allows for fast interrupts.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15582 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2022-04-13 08:36:09 +00:00
parent c3f8edd463
commit ab0995fca2
41 changed files with 82 additions and 40 deletions

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI0_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI0_PRIORITY)
#if !defined(STM32_DISABLE_EXTI0_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI0_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI0_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI0_1_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI0_1_PRIORITY)
#if !defined(STM32_DISABLE_EXTI0_1_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI0_1_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI0_1_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI1_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1_PRIORITY)
#if !defined(STM32_DISABLE_EXTI1_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI1_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI10_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI10_PRIORITY)
#if !defined(STM32_DISABLE_EXTI10_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI10_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI10_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI10_15_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI10_15_PRIORITY)
#if !defined(STM32_DISABLE_EXTI10_15_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI10_15_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI10_15_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI11_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI11_PRIORITY)
#if !defined(STM32_DISABLE_EXTI11_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI11_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI11_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI12_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI12_PRIORITY)
#if !defined(STM32_DISABLE_EXTI12_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI12_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI12_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI13_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI13_PRIORITY)
#if !defined(STM32_DISABLE_EXTI13_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI13_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI13_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI14_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI14_PRIORITY)
#if !defined(STM32_DISABLE_EXTI14_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI14_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI14_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI15_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI15_PRIORITY)
#if !defined(STM32_DISABLE_EXTI15_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI15_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI15_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI16_31_33_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_31_33_PRIORITY)
#if !defined(STM32_DISABLE_EXTI16_31_33_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_31_33_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI16_31_33_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI1635_38_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1635_38_PRIORITY)
#if !defined(STM32_DISABLE_EXTI1635_38_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1635_38_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI1635_38_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI164041_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI164041_PRIORITY)
#if !defined(STM32_DISABLE_EXTI164041_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI164041_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI164041_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI16_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_PRIORITY)
#if !defined(STM32_DISABLE_EXTI16_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI16_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI16_34_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_34_PRIORITY)
#if !defined(STM32_DISABLE_EXTI16_34_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI16_34_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI16_34_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI17_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI17_PRIORITY)
#if !defined(STM32_DISABLE_EXTI17_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI17_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI17_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI18_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI18_PRIORITY)
#if !defined(STM32_DISABLE_EXTI18_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI18_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI18_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI1921_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1921_PRIORITY)
#if !defined(STM32_DISABLE_EXTI1921_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI1921_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI1921_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI19_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI19_PRIORITY)
#if !defined(STM32_DISABLE_EXTI19_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI19_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI19_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI2_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI2_PRIORITY)
#if !defined(STM32_DISABLE_EXTI2_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI2_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI2_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI20_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI20_PRIORITY)
#if !defined(STM32_DISABLE_EXTI20_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI20_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI20_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI20_21_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI20_21_PRIORITY)
#if !defined(STM32_DISABLE_EXTI20_21_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI20_21_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI20_21_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI21_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI21_PRIORITY)
#if !defined(STM32_DISABLE_EXTI21_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI21_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI21_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI212229_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI212229_PRIORITY)
#if !defined(STM32_DISABLE_EXTI212229_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI212229_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI212229_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI21_22_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI21_22_PRIORITY)
#if !defined(STM32_DISABLE_EXTI21_22_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI21_22_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI21_22_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI22_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI22_PRIORITY)
#if !defined(STM32_DISABLE_EXTI22_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI22_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI22_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI23_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI23_PRIORITY)
#if !defined(STM32_DISABLE_EXTI23_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI23_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI23_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI2_3_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI2_3_PRIORITY)
#if !defined(STM32_DISABLE_EXTI2_3_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI2_3_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI2_3_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI3_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI3_PRIORITY)
#if !defined(STM32_DISABLE_EXTI3_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI3_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI3_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI30_32_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI30_32_PRIORITY)
#if !defined(STM32_DISABLE_EXTI30_32_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI30_32_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI30_32_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI33_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI33_PRIORITY)
#if !defined(STM32_DISABLE_EXTI33_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI33_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI33_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI4_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI4_PRIORITY)
#if !defined(STM32_DISABLE_EXTI4_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI4_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI4_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI45_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI45_PRIORITY)
#if !defined(STM32_DISABLE_EXTI45_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI45_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI45_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI4_15_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI4_15_PRIORITY)
#if !defined(STM32_DISABLE_EXTI4_15_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI4_15_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI4_15_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI5_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI5_PRIORITY)
#if !defined(STM32_DISABLE_EXTI5_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI5_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI5_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI5_9_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI5_9_PRIORITY)
#if !defined(STM32_DISABLE_EXTI5_9_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI5_9_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI5_9_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI6_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI6_PRIORITY)
#if !defined(STM32_DISABLE_EXTI6_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI6_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI6_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI7_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI7_PRIORITY)
#if !defined(STM32_DISABLE_EXTI7_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI7_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI7_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI8_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI8_PRIORITY)
#if !defined(STM32_DISABLE_EXTI8_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI8_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI8_PRIORITY"
#endif

View File

@ -35,7 +35,8 @@
#error "STM32_IRQ_EXTI9_PRIORITY not defined in mcuconf.h"
#endif
#if !OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI9_PRIORITY)
#if !defined(STM32_DISABLE_EXTI9_HANDLER) && \
!OSAL_IRQ_IS_VALID_PRIORITY(STM32_IRQ_EXTI9_PRIORITY)
#error "Invalid IRQ priority assigned to STM32_IRQ_EXTI9_PRIORITY"
#endif

View File

@ -74,6 +74,8 @@
*****************************************************************************
*** Next ***
- NEW: Disabled priority check on STM32 EXTI interrupts when the default
ISR is disabled. This allows for fast interrupts.
- NEW: Added support for UART9 and USART10 on STM32H7.
- NEW: Improved MFS to use explicitly non-cacheable buffers for potentially
DMA-accessible I/O areas.