Цитата(alx2 @ Feb 20 2013, 01:15)

Если я правильно понял вопрос, то узнать текущий режим можно чтением control регистра. Бит 0 определяет, находится ли процессор в привилегированном режиме или нет.
Совершенно верно. Только не годится для М0. Можно бит 1 - он показывает какой стек в работе. А еще можно unsigned __get_IPSR(void);
Все RTOS, которые рзделяют режим пользователя и супервизора гоняют приложения, естественно, в пользовательском режиме,а вот прерывания,те все равно в привелигированном, а поэтому используются 2 набора функций соответственно os_ и isr_. Я написал middleware, которое и определяет, какую функцию вызывать, а вот приложение этой проблемой больше не озабочено.