[an error occurred while processing this directive]
Обязательность применения внутреннего WD _обратно_ пропорциональна квалификации программиста, внешнего - квалификации схемотехника
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено =AVR= 30 августа 2006 г. 12:40
В ответ на: Вопрос по WDT и AVR отправлено <font color=gray>Ljutik</font> 30 августа 2006 г. 01:32

Чем ниже квалификация программиста, тем меньший контроль и понимание поведения программы он имеет, аналогично с квалификацией схемотехника и пониманием работы железа. WD для таких ребят категорически обязателен к применению (причем и внешний не помешает), как надувной круг или надувные наплечники для обучающихся плаванию - вроде и плыть будет, и не потонет, ежели что.

По мере накопления опыта и углубления понимания сути вещей можно постепенно отказываться от перестраховки - например, убрать внешний WD и эффективно использовать внутренний АППАРАТНЫЙ, который, например, в AVRах более чем надежен. Понимание приходит постепенно, и программист начинает интуитивно защищать критические моменты - вставлять безусловные таймауты в поллинг, заполнять свободную память кода восстанавливающими инструкциями, регулярно реинициализировать периферию, жестко ограничивать пределы "дальнобойности" указателей и т.д. Но причины и характер катастрофических сбоев весьма многообразны и коварны, и WD в большинстве случаев все же может сослужить хорошую службу.

Перевод МК на все более мелкую технологию изготовления и, как неизбежное следствие, снижение напряжения питания ядра, своей периферии и внутренней памяти ведет к значительному падению его помехозащищенности - чем мельче полупроводниковые структуры, тем меньшая энергия достаточна для непреднамеренного изменения состояния ячеек памяти и регистров. Для большинства современных МК применение WD становится просто обязательным, и приемы защиты кода должны становиться более совершенными. К сожалению, последнее становится практически невозможным, т.к. для сложных МК основная масса программ пишется на ЯВУ, да еще и усугубляется повальным применением той или иной ОС.

Вряд ли найдется владелец смартфона или КПК, который никогда не сталкивался с зависанием такого устройства без всяких видимых причин, и это в тепличных карманно-настольных условиях - про неблагоприятное помеховое окружение для таких устройств даже и говорить не нужно. Примитивный WD в таких случаях весьма неоднозначен - устройство перезагрузится, но могут быть потеряны и испорчены данные и т.д. Чем сложнее и ответственнее устройство, тем тщательнее нужно подходить к использованию WD и методам повышения жизнеспособности изделия.

Итоги такие:

1. Эффективно и корректно будут работать ТОЛЬКО комбинированные методы защиты от сбоев и зависаний.

2. WD желательно применять всегда.

3. Програмно-отключаемый внутренний WD за таковой не считать, применять внешний.

4. При грамотном и высококвалифицированном подходе к программированию и схемотехнике можно свести необходимость применения WD к минимуму, но не к нулю

5. Всё ИМХО

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

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание