AnsweredAssumed Answered

NVIC_EnableIRQ() and kin shall handle exceptions

Question asked by waclawek.jan on Apr 4, 2017
Latest reply on Oct 13, 2017 by waclawek.jan

According to PM0214, CMSIS functions NVIC_EnableIRQ(), NVIC_DisableIRQ(), NVIC_SetPendingIRQ(), NVIC_CleartPendingIRQ(),  NVIC_GetPendingIRQ() should support both interrupts and exceptions (of course those where this is applicable).

The implementation of these functions in [STM32F4xx_DSP_StdPeriph_Lib_V1.8.0]\Libraries\CMSIS\Include\core_cm4.h does not conform to this description, not supporting exceptions - even the comment to those function says it:

  \param [in]      IRQn  External interrupt number. Value cannot be negative.


This is nonsensical, especially since the remaining two functions of the same group from the same table - NVIC_SetPriority() and NVIC_GetPriority() - do support both interrupts and exceptions.


Please, fix the 5 functions mentioned above to handle both interrupts and exceptions.


Should there be concerns for backward compatibility/efficiency, please provide alternative functions with the full functionality, and of course make the respective changes to the documentation too.


Now I of course know that both the PM's template and the headers come directly from ARM so this is upon them to fix, but I believe there's an order of magnitude higher chance this ever getting dealt with properly if ST's engineers raise a request to ARM, rather than some Jan Waclawek.




Jan Waclawek