ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
25 марта
1503332 Топик полностью
Adept (04.03.2025 14:48, просмотров: 79) ответил Make_Pic на Имеем STM32H743 и внешний WDT ожидание сброса 1.6 сек. Запускам процедуру стирания сектора, время стирания превышает время сброса. Имеем постоянный сброс во время стирания. Как разруливать такой процесс? Можно как то делать сброс во время процедуры стирания?
я бы попробовал повесить линию сброса собаки на аппаратную ножку таймера и перед обновлении флеша конфигурировал бы его на автоматический ногодрыг по переполнению, к примеру. По-моему однажды сконфигурированный таймер, до аппаратного ресета будет работать независимо от состояния флеши (не пробовал, но возможно да) Навсегда так делать не надо (а то пропадёт смысл вачдога, но на период обновления флеши, - вполне), кстати само 

"взбадривание собаки" я обычно делаю тоже по сложному условию. Завожу "регистр" (ячейу памяти), в которой каждый битик - флаг своей критически важной процедуры программы. При сбросе собаки устанавливаю этот регистр в 0xFF, а каждая процедура (период исполнения которой гарантированно меньше периода вачдога, сбрасывает свой флажок в этом "регистре". В главном цикле, в процедуре сброса WDT "дёргаю собаку", только если регистр флагов - нулевой.

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)