Перейти к содержанию
    

Надо флаг состояния "амнезия" завести или ногу какую-л подергать... :) Иначе описанная Вами ситуация напоминает профессиональное хождение по канату...

Да, флаг 'амнезия' для тех у кого контроллер сходит с ума даже не пройдя инициализацию это сильный ход :).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может дело в том, что сам setup слишком долог? Может быть поместить стринги и массивы/структуры констант во flash, чтобы разгрузить setup от копирования большого объема данных из flash в SRAM? Тогда setup быстрее работать станет и успеет отработать за время стандартного watchdog'а.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может дело в том, что сам setup слишком долог?
Об этом с самого начала ветки толкуют. Причем и топикстартер это уже понял. Странно, что вы упоминание функции __low_level_init в начале топика или пропустили или не поинтересовались ее описанием в IAR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но тем не менее пытаетесь рассказывать, как "надо трясти пальму" :(. WD это есть последний. САМЫЙ последний шанс за живучесть. Причем далеко не всегда однозначно безболезненно применимый и всенепременно пользоваться этим шансом на первых микросекундах полета совершенно не обязательно. Как впрочем, как и вообще пользоваться WD - меня, например, ну очень расстроит переферийный контроллер втихаря перезапустившийся по собственному WD и забывший все, что ему приказывали делать.
Это не пальма... А тот случай когда контроллер один одинёшенек или основной. Речь ведь об этом изначально идёт. А Вы приводите доводы из другой оперы. Для большинства посетителей этого форума, как мне кажется, ситуация с наличием периферийного контроллера не столь частое явление (у меня соотоношение 1:20). Исходя из этого, и из личного опыта я бы рекомендовал не пренебрегать wdt, bod, настоящим генератором вместо кварцевого резонатор и прочими средствами, повышающими надёжность функционирования. Имеешь wdt - так пользуйся грамотно. Вот и всё, что я хочу сказать на сей счёт.

С рождеством Вас!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы приводите доводы....

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

Имеешь wdt - так пользуйся грамотно. Вот и всё, что я хочу сказать на сей счёт.

Я рад, что заставил Вас задуматься об использовании WD, а то раньше вообще было без WD хоть ложись и помирай а если вдруг его нет, то "ставить однозначно внешний".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не доводы это просто один из самых очевидных примеров, когда встроенный WD не нужен. Случаи, когда и одиночный контроллер пусть лучше явно "повесится", чем забудет, что делал и начнет что-то делать заново/другое тем самым дезинформируя пользователя, тоже имеют место быть. У меня срабатывание WD практически никогда не приводит к молчаливому выходу на рабочий режим - это прежде всего индикация моей железной или софтовой халтуры.
Вынужден согласиться. И если честно, считаю применение WD с последующим принятием ответственных решений делом крайне опасным в большинстве случаев. Бывает очень сложно программно проанализировать ВСЕ аварийные ситуации и принять такие решения.

Выходить или нет на рабочий режим после срабатывания WD и вообще инициализировать или нет WD у меня обычно находится в конфигурации изделия.
Вот бы еще пару примеров рассмотреть по данному поводу. Особенно когда небезосновательно принимается решение - РАБОТАТЬ!!! )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

очень расстроит переферийный контроллер втихаря перезапустившийся

Ну, причина сброса может быть обработана.

Разница наших подходов в общем-то понятна - у меня контроллер моторчика или нескольких помп/клапанов, а у Вас коммуникационный контроллер, обвешанный защищенными интерфейсами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...