Здравствуйте! Прочитал описание на scmRTOS v2xx - возникла пара вопросов:
1. Стек, который я задаю в опциях проекта IAR - я так понимаю, он используется только в ф-ции main пока не произойдет вызов Run()? Т.е. его можно выставить очень маленьким?
2. На стр 40 в описании прерываний для прямой передачи управления есть такой текст:
Цитата
Когда возникает прерывание, управление передается обработчику преры-
вания, который работает со стеком прерванного процесса. Это означает, что стек
процесса должен иметь размер, достаточный для работы как кода самого процес-
са, так и кода обработчиков прерываний. Причем дополнительные требования к
размеру стека определяются самым потребляющим обработчиком прерывания.
Более того, эти требования распространяются на все процессы, т.е. любой процесс
должен иметь размер стека с учетом возможности работы в этом стеке самого
«толстого» обработчика прерывания. В случае вложенных прерываний ситуация
еще более усугубляется.

На основании этого далее делается вывод о необходимости переключать стек при входе в прерывание (и сохранять контекст).
А в описании передачи управления через программное прерывание написано, что так как сохранять контекст при входе в прерывание не обязательно, то должно хватить того стека, который есть у процесса.
Но ведь если прерывание "тяжелое" с вызовом невстраиваемых ф-ций и разрешением других прерываний, то процитированное становится справедливым и в этом случае? Т.е. получается что передачу управления через программное прерывание следует применять только в случае "легких" прерываний?