Цитата(shreck @ Jan 23 2007, 16:38)

Не понял. Нормально что? Сохранение регистров в стек пользовательского процесса перед переключением на стек прерывания при входе в isr? Так ведь переключение на стек прерывания и задуманно для того, чтобы не сохранять регистры в стек текущего процесса. Разве не так?
Сохранение регистров сразу в стек прерываний реально возможно только в процессорах с аппаратным переключением на стек прерываний. В MSP430, к сожалению, такой возможности нет. Переключение на стек прерываний выполняется программно и, конечно, уже после пролога, сгенеренного компилятором. Смысл переходить на стек прерываний есть только в случае вложенных прерываний и/или если прерывание потребляет много стека. Если прерывание вложенные не разрешает и стек значительно не потребляет, то и использовать переключение на стек прерываний не целесообразно.
А всякие финты с __raw, как уже сказали, в v3 убраны, т.к. как показала практика в этом кроется чуть ли не 90% причин неработоспособности программы. Тут требуется очень аккуратное использование (включая руление опциями компилятора) и отслеживание вручную результатов компиляции, т.к. поведение очень компиляторозависимое. Теперь код на входе в прерывание хоть и не такой оптимальный, зато вполне безопасный и не зависит от "причуд" компилятора.

На MSP430, кстати, очень маленький пролог - всего 4 регистра, т.ч. получается все достаточно неплохо. В в AVR картина намного печальнее.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков