[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: у PIC16 стек возвратов кольцевой...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Михаил Евстафьев 08 января 2002 г. 21:01
В ответ на: Ответ: Ответ внутри отправлено Александр Веер 08 января 2002 г. 15:03

А указатель стека программно недоступен.
Так что очищать его не нужно.
Передача управления на адрес 0 - это и будет warm boot без последствий.
Мой коллега написал программу, которая вся состоит из одного обработчика прерывания. При этом он не сохраняет контекст при входе, никогда не делает возврата из обработчика прерывания, а только разрешает вложенные прерывания и циклится в обработчике. Т.е. стек только заполняется и никогда не освобождается. А в программе нигде не встречается команда запрета прерывания.
Коллега считает, что таким образом он обеспечил защиту от сбоев, где бы обработчик прерывания ни завис, он всегда по новому прерыванию перезапускается сначала.
Я отношу это к курьезам, но программа у него работает...

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

Ответы



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

E-mail: info@telesys.ru