У меня есть программа 3.x ChibiOS на STM32F4 микроконтроллера, где я использую сторожевого IWDG для сброса микроконтроллера на ошибки, как это:Отключение STM32 IWDG во время отладки
int main() {
iwdgInit();
iwdgStart(&IWDGD, &wd_cfg);
while(true) {
// ... do stuff
}
}
Если я теперь присоединить мой отладчик и , в любой момент, остановите программу (вручную или через точку останова), микроконтроллер будет сброшен после таймаута, определенного конфигурацией сторожевого таймера (и, следовательно, вызовет проблемы в моем процессе отладки)
Как отключить это поведение, т.е. как я могу отключить IWDG, когда ядро остановлено из-за отладчика?
Я попытался отключить его полностью, однако мне нужно оставить его работать, чтобы поймать нежелательные сбросы IWDG.
IWDG отключена по умолчанию, так что вы просто не можете оставить его выключенным, пока вы начнете испытывать окончательный код. Если вы хотите сделать обучающие программы для STM, вам намного лучше в вики STM32. Переполнение стека - это Q & A, а не учебный сайт. – Olaf
@ Olaf a) Будьте уверены, что мои учебники выглядят совершенно иначе, чем это. Это конкретный вопрос с конкретным ответом, другими словами Q & A. Что вы имеете в виду в STM32 wiki? б) Ваше предположение неверно. Хотя в раннем развитии это может сработать, у меня довольно много случаев, когда мне нужно * IWDG для сброса, если заканчивается таймер WDG, например. для получения данных о (неправильном) поведении при сетевой нагрузке высокой нагрузки (перезагружается ли сторожевой таймер?). Ожидание, пока производство с этим было бы глупо. Также ответ на этот вопрос очень важен для производственных испытаний. –
@Olaf Итак, вопрос STM32 не должен задаваться * вообще *, потому что это все в документах? Я действительно не думаю, что этот аргумент работает. Если вы считаете, что это вопрос, в котором недостаточно исследований, ниспроверки и/или голосования, чтобы закрыть. Я полагаю, вы уже это сделали. Пока вы это делаете, я собираюсь написать больше решений для реальных проблем, извините ... –