Спасибо, интересно. Кстати, по поводу запретов прерываний в
критических секциях и фатальных последствий от этого. Эта проблема
на самом деле решаема на программном уровне, но приходится конечно
поработать пальчиками :-) Про аппаратное решение проблемы - у ARM CM3 и выше имеется регистр BASEPRI, который позволяет "отсечь" прерывания, которые не будут запрещаться. Конечно, в таких прерываниях нельзя использовать функции RTOS, но проблему фатальных последствий получается избежать. У меня есть такой проект, где в RTOS (TN-Kernel) используется BASEPRI.
У WCH RISC-V (у серии CH57x/58x/59x - может и у других) есть регистр PFIC_ITHRESDR. Который вроде бы делает то-же что и BASEPRI. Но надо проверять - описание очень убогое, непонятно написано.
А по поводу программного решения проблемы - надо просто функции RTOS по запрету/разрешению прерываний переписать под свой конкретный проект, и там реализовать выборочный запрет.