taskDISABLE_INTERRUPTS to disable *all* maskable initerrupts?
Posted by
xz8987f on October 23, 2016
Hello,
On http://www.freertos.org/a00020.html#taskDISABLE_INTERRUPTS it says:
*taskDISABLEINTERRUPTS
task. h
Macro to disable all maskable interrupts.
This macro should rarely be called directly. Use taskENTERCRITICAL() and taskEXITCRITICAL() instead.
**
But checking Cortex-M4 ports, it only disable interrupts up to
~~~
/**
* task. h
*
* Macro to disable all maskable interrupts.
*
* defgroup taskDISABLEINTERRUPTS taskDISABLEINTERRUPTS
* ingroup SchedulerControl
*/
define taskDISABLEINTERRUPTS() portDISABLEINTERRUPTS()
~~~
And in the ARM_CM4F port it is implemeted as:
#define portDISABLE_INTERRUPTS() vPortRaiseBASEPRI()
Which only masks interrupts up to configMAXSYSCALLINTERRUPT_PRIORITY.
I understand that taskENTERCRITICAL() would mask up to configMAXSYSCALLINTERRUPTPRIORITY, but according to the description taskDISABLEINTERRUPTS should maks *all* interrupts (and not only up to configMAXSYSCALLINTERRUPTPRIORITY)?
Thanks,
Erich
taskDISABLE_INTERRUPTS to disable *all* maskable initerrupts?
Posted by
rtel on October 23, 2016
You are right – I think this is a case of very old documentation, which I will correct. Thanks for the heads-up.