Мне нужно включить аппаратные WDT в системы на базе ESP32 и rp Pico, работающие под управлением micropython. Я использую Thonny IDE, и с тайм-аутом 8 с на Pico я могу прервать (Cntrl-C) систему и быстро удалить основной с доски. Затем это позволяет мне продолжить разработку кода. Этот подход работает с тайм-аутом 8 с, но если бы я работал с гораздо более короткими задержками, я не уверен, что это произойдет. Меня беспокоит то, что main.py не может измениться? Кто-нибудь может порекомендовать лучший способ справиться с этим.
Гарри
PS: относительный новичок в Python. Чем больше я знаю, тем больше я знаю, что я не знаю!
Что работает для меня: добавьте time.sleep() на 5 секунд в начале вашего кода, где вы можете убить скрипт от Тонни, используя CTRL+C, до того, как WDT будет инициирован. Таким образом, вам не нужно вручную удалять файл с платы, вы просто останавливаете его выполнение перед WDT.
если это поможет вам с вашим вопросом и ответить на него - отметьте его как принятый ответ :)
Я попробовал это, и, конечно же, если вы подключите плату к USB-порту компьютера, вы можете остановить выполнение с помощью Ctrl-C до того, как произойдет вызов WDT. В моем случае это не похоже на конец истории, потому что дальше происходит то, что я получаю сообщение «задняя часть закрыта», что означает, что IDE прекращает прослушивание. Использование кнопки Thonny Start/Stop возвращает вам контроль, но это равносильно перезагрузке, и вы возвращаетесь к тому, с чего начали. В итоге мне все еще нужно удалить основную, чтобы выйти из этого цикла. В любом случае добавление этой задержки в соответствии с предложением - хорошая идея. Спасибо.
Да, для своей разработки я использовал плагин VSCode + Pymakr, и он у меня хорошо работал. Я попробую Тонни...
ну, я использую комплект разработчика ESP32 v1 с Micropython 1.19.1 и Thonny 3.3.13 в Windows, и он отлично работает. После CTRL+C ни доска, ни бэкэнд не перезапускаются. Может быть, это по-другому для пикоборда
Это действительно интересно знать. Я собираюсь сделать еще немного поработать над этим и отчитаться.
Это звучит так просто, что должно быть так ;-) Мой код разделен на загрузку и основную часть, поэтому я думаю, что я мог бы использовать ту же технику, чтобы остановить загрузку до того, как основная запустится. Очень ценю, спасибо.