What actually happens during a semantic operation of vTaskSuspendAll? I see that it just increments a variable, where is that variable taken into account? What happens to the stack pointer - does it move to the MSP during the suspension?
What I’m really driving at is I really want a scheduler full stop. I have a firmware update routine that is going to blow away the flash and reset. Once it starts, it crushes 4k of RAM that is being used as a buffer to transfer the new image from an EEPROM to the flash.
I want to make sure that the stack pointer has moved back to the MSP in lieu of lingering on the stack area of that last running task which may well be in the 4k that gets crushed.
be adequate to begin this operation or would it be safer to put all of this in the NMI ?