From ab0995fca2837cecc9a5fa71019ad880f347aabe Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Wed, 13 Apr 2022 08:36:09 +0000 Subject: [PATCH] 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 --- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0_1.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti1.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10_15.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti11.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti12.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti13.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti14.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti15.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-31-33.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-35_38.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-40_41.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16_34.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti17.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti18.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19-21.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20_21.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22-29.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti22.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti23.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2_3.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti3.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti30_32.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti33.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti45.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4_15.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5_9.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti6.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti7.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti8.inc | 3 ++- os/hal/ports/STM32/LLD/EXTIv1/stm32_exti9.inc | 3 ++- readme.txt | 2 ++ 41 files changed, 82 insertions(+), 40 deletions(-) diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0.inc index e02707bc1..7d7af9bae 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0_1.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0_1.inc index d20141b4a..a2cb4051d 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0_1.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti0_1.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti1.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti1.inc index c7a9de1d5..fc692b183 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti1.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti1.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10.inc index f4c099070..ef614c6f8 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10_15.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10_15.inc index 3288dc969..7e233e7c4 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10_15.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti10_15.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti11.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti11.inc index a099741f1..d79518d37 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti11.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti11.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti12.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti12.inc index f6e7a36a8..97ca3e847 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti12.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti12.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti13.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti13.inc index d2df15059..c2dceb523 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti13.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti13.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti14.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti14.inc index 7072e0c12..cb0d494f5 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti14.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti14.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti15.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti15.inc index b28c0daef..2d747b338 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti15.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti15.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-31-33.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-31-33.inc index 8625316fd..8c705042d 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-31-33.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-31-33.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-35_38.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-35_38.inc index 11fa96ff1..251d620a6 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-35_38.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-35_38.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-40_41.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-40_41.inc index b8aebe4b9..1e7cc5954 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-40_41.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16-40_41.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16.inc index d09ef3a32..ce9583362 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16_34.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16_34.inc index c29a45dd2..4e199d8df 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16_34.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti16_34.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti17.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti17.inc index c2bbe0d0c..8087e1373 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti17.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti17.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti18.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti18.inc index 81e829072..cd6046724 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti18.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti18.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19-21.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19-21.inc index f127b07ee..eea7de62f 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19-21.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19-21.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19.inc index ef4b8f8e1..c63c12ad4 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti19.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2.inc index d5ddc40a7..1a77cb513 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20.inc index 1d1b6af4a..ee8e97984 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20_21.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20_21.inc index 500f533c8..1f036ed0a 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20_21.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti20_21.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21.inc index 350091bc5..cc0c8f8c7 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22-29.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22-29.inc index 95ea58709..27310655d 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22-29.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22-29.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22.inc index 973efd5c5..813cd44cf 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti21_22.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti22.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti22.inc index e958615a6..c96878c39 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti22.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti22.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti23.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti23.inc index 3180234aa..1a13e3292 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti23.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti23.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2_3.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2_3.inc index 5c8ed9aed..9fea59f00 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2_3.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti2_3.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti3.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti3.inc index 9c9be73b3..d635b4d06 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti3.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti3.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti30_32.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti30_32.inc index b8c1f4118..d87798b46 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti30_32.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti30_32.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti33.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti33.inc index 3ad874f60..96a627bc3 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti33.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti33.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4.inc index a39e83d4c..2858df2ff 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti45.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti45.inc index b04ab5fcc..cc089baf1 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti45.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti45.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4_15.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4_15.inc index ddb6663de..3b4125568 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4_15.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti4_15.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5.inc index df4d8b312..efdabe40b 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5_9.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5_9.inc index 9a52fa6cf..9034a4a36 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5_9.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti5_9.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti6.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti6.inc index fc83df776..dd1e7b1c3 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti6.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti6.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti7.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti7.inc index 4f76a6be9..90f4c27a8 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti7.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti7.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti8.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti8.inc index f3d3bea36..954d1edd2 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti8.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti8.inc @@ -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 diff --git a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti9.inc b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti9.inc index acdb384c6..0f00f30fc 100644 --- a/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti9.inc +++ b/os/hal/ports/STM32/LLD/EXTIv1/stm32_exti9.inc @@ -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 diff --git a/readme.txt b/readme.txt index a65dcf4c8..8676b0c1d 100644 --- a/readme.txt +++ b/readme.txt @@ -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.