Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Оживление зависших LPC 24,29 и др WD-ом без сброса CPU
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
NEMINT
Выход из зависшей ветки через сброс по WDT приведёт к перезапуску CPU, что для ответственного приложения недопустимо. Один из вариантов решения проблемы:
- в конфигурации WDT запрещаем сброс CPU и разрешаем прерывание от WDT
- в main, в главном цикле, как обычно, периодически обнуляем WDT
Но как из прерывания __irq void Watchdog_Handler(void) вернуться не в зависшую ветку, а в главный цикл?
C благодарностью приму советы от уважаемых коллег
DpInRock
Цитата
что для ответственного приложения недопустимо

А кто мешает ответственному приложению определять причины рестарта при рестарте (Power on, WDT и прочая)?
Это было бы ответственно.

А вот то, что предлагаете вы (или стремитесь к этому) - это безответственно с одной стороны, и бесполезно - с другой.
В самом деле, подумайте, контекст до прерывания был - веточный. Далее - прерывание. Далее - переход в другое место. Итого. "Другое место" будет работать в конттексте "ветки".

Если так любите зависающие задачи - поставьте какую-либо многозадачную систему (переключатель задач) и подвешивайте их сколько угодно.
Они легко снимаются, запускаются, перезапускаются. Выбор таких систем велик.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.