[an error occurred while processing this directive]
Прерывания - дело тонкое. Там очень осторожным надо быть.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Никогда точно не знаешь в какой момент может возникнуть прерывание. Естественно, требуется все регистры сохранять. А это - время. И, ко всему прочему, нужен стек, Мало того, что функции он требуется. Так еще и для прерывания сверх того стек необходим. Могу еще добавить, что начинающие как-то не обращают особого внимания на локальные переменные. Часто и массивы там же объявляют. В результате - переполнение стека и непредсказуемое поведение программы. Причем, ошибка может обнаружиться далеко не сразу.
Составить ответ
|||
Конференция
|||
Архив
Ответы
Стек - то само собом. Главное, что за время sprintf-а то самое прерывание может произойти ещё раз. и таво... пока память не кончится. — -mse- (13.08.2005 00:20 213.132.70.164 , пустое )
сомневаюсь что человек разрешил вложенные прерывания. — DASM (13.08.2005 00:26 217.118.78.1 , пустое )
Дабы не быть голословным дилетантом, вот текст -> — Андрей Сорокин (13.08.2005 00:30 212.109.32.13 , пустое , ссылка )
Я никогда не ставлю printf в прерывании. А кроме размера стека, есть еще проблема быстродействия - может придти второе прерывание. Запретил - потерял, разрешил - завис. — Vladimir Ljaschko (13.08.2005 13:12 82.209.197.76 , пустое )
Вот, собственно, о чем я и говорил. Во втором случае у Вас как раз — Bill (13.08.2005 00:41 195.239.108.123 , 424 байт)
Чес говоря, разбирацца впадлу... — -mse- (13.08.2005 00:38 213.132.70.163 , 382 байт)
ну так я не понял, буфер пробовал глобальным делать ? — DASM (13.08.2005 00:37 217.118.78.1 , пустое )
Ну да... — Андрей Сорокин (13.08.2005 00:39 212.109.32.13 , пустое )
а что плохого в стековых массивах ? одни премущества. Только cstack нормально поставить — DASM (12.08.2005 23:51 217.118.78.1 , пустое )
Это камень в мой огород (+) — Андрей Сорокин (12.08.2005 23:38 212.109.32.13 , 217 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru