Content originally posted in LPCWare by on Thu Apr 19 13:20:00 MST 2012
If I understand your question correctly, you want to jump from a FreeRTOS application into a boot loader, and at this time stop FreeRTOS running because it is causing a problem?
If this is the case, I suspect the problem is caused by the RTOS tick interrupt, which will still be executing when you are running your bootloader code.
The tick interrupt can be stopped by stopping the SysTick timer, in the CPU core.
If your boot loader does not use interrupts, then a simple fix will be to simply disable interrupts globally before jumping to the bootloader.
FreeRTOS leaves a sub-set of interrupts completely unaffected by critical sections, therefore, if you bootloader does need interrupts, then enter a critical section (taskENTER_CRITICAL()) before jumping to the boot loader, and set the interrupts used by the bootloader to a priority above the configMAX_SYSCALL_INTERRUPT_PRIORITY setting found in FreeRTOSConfig.h.