Цитата(AHTOXA @ Aug 10 2009, 12:12)

Обнаружил странное поведение. Если в прерывании от системного таймера использовать TISRW_SS (это так по умолчанию, scmRTOS_ISRW_TYPE = TISRW_SS), а в других прерываниях TISRW, то всё работает. Как только я пытаюсь использовать TISRW_SS в любом другом прерывании, то всё рушится.
Если совсем не использовать TISRW_SS, то всё работает как надо.
Вопрос такой - это так и должно быть, или этот косяк возник при портировании на msp-gcc?
Надо смотреть код конструктора/деструктора обертки TISRW_SS. Там должно при первом входе в прерывание происходить переключение указателя стека на отдельный стек прерываний. При вложенных прерываниях переключения стека уже производиться не должно. При выходе из первого по вложенности прерывания в основную программу указатель стека должен переключиться на стек прерванного процесса. Возможно, обертка TISRW_SS не анализирует вложенность прерываний и пытается каждый раз переключить укзатель стека. Надо посмотреть это место.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков