zltigo 2 6 января, 2010 Опубликовано 6 января, 2010 · Жалоба Надо флаг состояния "амнезия" завести или ногу какую-л подергать... :) Иначе описанная Вами ситуация напоминает профессиональное хождение по канату... Да, флаг 'амнезия' для тех у кого контроллер сходит с ума даже не пройдя инициализацию это сильный ход :). Это решается много естественнее - в этом случае контролем работоспособности периферийных занимается центральный контроллер, он-же их сбрасывает, он-же приводит их в надлежащее состояние после сброса. И никаких собственных WD у периферийных, за полной их ненадобностью, не задействуется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 6 января, 2010 Опубликовано 6 января, 2010 · Жалоба А может дело в том, что сам setup слишком долог? Может быть поместить стринги и массивы/структуры констант во flash, чтобы разгрузить setup от копирования большого объема данных из flash в SRAM? Тогда setup быстрее работать станет и успеет отработать за время стандартного watchdog'а. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 6 января, 2010 Опубликовано 6 января, 2010 · Жалоба А может дело в том, что сам setup слишком долог?Об этом с самого начала ветки толкуют. Причем и топикстартер это уже понял. Странно, что вы упоминание функции __low_level_init в начале топика или пропустили или не поинтересовались ее описанием в IAR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 6 января, 2010 Опубликовано 6 января, 2010 · Жалоба Но тем не менее пытаетесь рассказывать, как "надо трясти пальму" :(. WD это есть последний. САМЫЙ последний шанс за живучесть. Причем далеко не всегда однозначно безболезненно применимый и всенепременно пользоваться этим шансом на первых микросекундах полета совершенно не обязательно. Как впрочем, как и вообще пользоваться WD - меня, например, ну очень расстроит переферийный контроллер втихаря перезапустившийся по собственному WD и забывший все, что ему приказывали делать.Это не пальма... А тот случай когда контроллер один одинёшенек или основной. Речь ведь об этом изначально идёт. А Вы приводите доводы из другой оперы. Для большинства посетителей этого форума, как мне кажется, ситуация с наличием периферийного контроллера не столь частое явление (у меня соотоношение 1:20). Исходя из этого, и из личного опыта я бы рекомендовал не пренебрегать wdt, bod, настоящим генератором вместо кварцевого резонатор и прочими средствами, повышающими надёжность функционирования. Имеешь wdt - так пользуйся грамотно. Вот и всё, что я хочу сказать на сей счёт. С рождеством Вас! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 6 января, 2010 Опубликовано 6 января, 2010 · Жалоба А Вы приводите доводы.... Это не доводы это просто один из самых очевидных примеров, когда встроенный WD не нужен. Случаи, когда и одиночный контроллер пусть лучше явно "повесится", чем забудет, что делал и начнет что-то делать заново/другое тем самым дезинформируя пользователя, тоже имеют место быть. У меня срабатывание WD практически никогда не приводит к молчаливому выходу на рабочий режим - это прежде всего индикация моей железной или софтовой халтуры. Выходить или нет на рабочий режим после срабатывания WD и вообще инициализировать или нет WD у меня обычно находится в конфигурации изделия. Имеешь wdt - так пользуйся грамотно. Вот и всё, что я хочу сказать на сей счёт. Я рад, что заставил Вас задуматься об использовании WD, а то раньше вообще было без WD хоть ложись и помирай а если вдруг его нет, то "ставить однозначно внешний". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivainc1789 0 7 января, 2010 Опубликовано 7 января, 2010 · Жалоба Это не доводы это просто один из самых очевидных примеров, когда встроенный WD не нужен. Случаи, когда и одиночный контроллер пусть лучше явно "повесится", чем забудет, что делал и начнет что-то делать заново/другое тем самым дезинформируя пользователя, тоже имеют место быть. У меня срабатывание WD практически никогда не приводит к молчаливому выходу на рабочий режим - это прежде всего индикация моей железной или софтовой халтуры.Вынужден согласиться. И если честно, считаю применение WD с последующим принятием ответственных решений делом крайне опасным в большинстве случаев. Бывает очень сложно программно проанализировать ВСЕ аварийные ситуации и принять такие решения. Выходить или нет на рабочий режим после срабатывания WD и вообще инициализировать или нет WD у меня обычно находится в конфигурации изделия.Вот бы еще пару примеров рассмотреть по данному поводу. Особенно когда небезосновательно принимается решение - РАБОТАТЬ!!! ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 7 января, 2010 Опубликовано 7 января, 2010 · Жалоба очень расстроит переферийный контроллер втихаря перезапустившийся Ну, причина сброса может быть обработана. Разница наших подходов в общем-то понятна - у меня контроллер моторчика или нескольких помп/клапанов, а у Вас коммуникационный контроллер, обвешанный защищенными интерфейсами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться