|
|
  |
Несохранение стека при прерывании. |
|
|
|
Apr 18 2007, 09:00
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Сергей Борщ @ Apr 18 2007, 06:00)  "Это не к нам, это в медпункт". В какой-то версии для MSP430 было такое дурацкое ограничение, потом убрали. Зачем добавили сюда - не знаю, а проверять сейчас лень. Сделайте обработчики обычными функциями, в конец асм-вставку reti, а на ассемблере оформите вектора. Немного не так. В прежних версиях __task __interrupt вполне рулили, но начиная с версий 2.21 это запретили. Зато в версиях 3.хх появилось __raw, которое, как раз, и выполняет то, что нужно в связке __raw __interrupt - в этом случае в ISR никакие регистры компилятором не сохраняются/не восстанавливаются - это полностью забота пользователя.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 18 2007, 18:15
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(dxp @ Apr 18 2007, 08:00)  Немного не так. "Время сейчас такое - никому верить нельзя. Даже себе. Мне - можно." (с)Мюллер, "17 мгновений весны" Цитата __task, __raw
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|