+\r
+ ldr r3, =pxCurrentTCB /* Obtain location of pxCurrentTCB. */\r
+ ldr r1, [r3]\r
+ ldr r0, [r1] /* The first item in pxCurrentTCB is the task top of stack. */\r
+ adds r0, #32 /* Discard everything up to r0. */\r
+ msr psp, r0 /* This is now the new top of stack to use in the task. */\r
+ movs r0, #2 /* Switch to the psp stack. */\r
+ msr CONTROL, r0\r
+ isb\r
+ pop {r0-r5} /* Pop the registers that are saved automatically. */\r
+ mov lr, r5 /* lr is now in r5. */\r
+ cpsie i /* The first task has its context and interrupts can be enabled. */\r
+ pop {pc} /* Finally, pop the PC to jump to the user defined task code. */\r
+\r