[an error occurred while processing this directive]
Только Вы, AK, кое о чём умалчиваете(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено AlexD 27 сентября 2002 г. 10:09
В ответ на: Объясняю "на пальцах" :-) отправлено AK 26 сентября 2002 г. 16:23

на асм перед тем, как вызвать свою delay() и прыгать чёртекуда Вы освобождаете
регистровый файл от промежуточных и локальных переменных, не так ли?
Т.е. фактически сохраняете контекст (пусть не в стеке, суть дела не меняется).
В Си же, такого механизма нет. Значит необходимо использовать сохранение
контекста в стеке - а это неизбежный асм модуль. И чего мозги пудрить?
В случае вытесняющей многозадачности, когда переключение задач может происходить
по инициативе ядра, требуется сохранять полный контекст - все регистры и статус.
В случае же кооперативной, когда переключение происходит ТОЛЬКО по инициативе
задачи, можно не сохранять статус и рабочие регистры (см. доку на компилер).

Я не знаю как там сделано в Salvo, пусть знающие расскажут (любопытно, кстати
взглянуть, может кто поделится исходниками?)
Предпочитаю Finite State Machine. Дёшево и сердито.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru