Если задача должна быть вытеснена (а FreeRTOS - вытесняющая ОС),
это можно сделать, лишь прервав задачу прерыванием. Внутри
прерывания, вместо восстановления контекста прерывания "как было до
прерывания", восстанавливается контекст более приоритетной задачи.
И вот это нетиповое использование прерывания, с возвратом не в
прежний контекст прерывания, а в новый, и, по моему мнению, не
совместимо с аппаратным восстановлением контекста. Приходится пользоваться специальными средствами управления прерываниями - по необходимости, запрещать аппаратное восстановление контекста прерывания в пользу программного восстановления контекста другой задачи. По крайней мере один такой способ есть. Но мне интересно, как товарищ Клен решил эту задачу - оставил HPE включённым, при этом, восстанавливая контекст не прерывания, а задачи?