Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено асибо 22 ноября 2004 г. 18:43
В ответ на: От блин, щас только добрался до этой ветки. Прочту все, что уже написано и отвечу. отправлено асибо 22 ноября 2004 г. 18:12

>при улёте программы, можно впасть в бесконечный цикл забивки
>области памяти >константой, например. И тот самый регистр флагов
>корректной работы будет загаживаться регулярно.
> Паранойя - скажете вы? Паранойя, отвечу я. ;О)
>Т.к. человек, делающий устойчивую вещь, обязан быть параноиком.

Эт то не паранойя, эт возможная ситуация. Кстати, уже писал об этом в субботу (132313.shtml). Все это относится к любому способу сброса собаки.

> Далее: в зависимости от структуры программы, в фоне есть место
>(одно или несколько, соотв. режимам работы), в которых программа
> обязана побывать хотя бы раз(суперцикл/ы или планировщик в ОС),
> если всё нормально(и, если она туда попала после сбоя, то результат
> сбоя может быть скорректирован/нивелирован без перезагрузки).
> Вот туда параноики и ставят сброс собаки.

Один сброс на весь суперцикл? Обычно так и делают, и это неграмотное решение. Цикл может прекрасно крутиться обрабатывая ЧАСТЬ задач. Корректный сброс ОБЯЗАН это учитывать. Если программа не совсем примитивная, придется расставлять флаги, и проверять их до сброса. А где будет стоять проверка и сброс уже без разницы. В прерывании так же хорошо как и в основном цикле.

> Резюме: бессмысленно нагружать систему ещё дополнительным
> переменным. Смысла никакого, а потенциально слабое звено добавляется.
> Штаны через голову остаются в силе ;О)

Не видите смысла в флагах и проверках? Ничего, жизнь заставит, по-другому надежного сброса не сделать. Упираться то можно долго, но выбора то нет. Правда такова: правильный сброс собаки сделать очень непросто, тут и головой подумать придется.



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

Ответы



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

E-mail: info@telesys.ru