I have some quesions about this check list:
-
About point 4 and 9
The implement of portSET_INTERRUPT_MASK() and portSET_INTERRUPT_MASK_FROM_ISR() seems to be the same. They also read primask and disable irq, what is the difference between them? In last smp version v202110, portSET_INTERRUPT_MASK_FROM_ISR() should call vTaskEnterCritical(), isn’t it necessary in this version? -
About point 14
vTaskSwitchContext now takes core ID as parameter to switch context of the core ID in pxCurrentTCBs.
vTaskSwitchContext( xCoreID ) will change pxCurrentTCBs[xCoreID]. Does it mean a core can change the running task on another core? In my understanding, vTaskSwitchContext() is called when the core needs to do context switch after a interrupt and only switch the context in inself.