watchdog и утечки памяти

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
Post Reply
mmm
Posts: 3
Joined: 17 Feb 2022 10:07

watchdog и утечки памяти

Post by mmm »

Здравствуйте.

Реализован ли watchdog, и если да, то покажите, пожалуйста пример как его использовать и как в цикле контролировать память на утечки. По непонятной причине z-uno 1 периодически зависает. А на z-uno 2 все стабильно.

Спасибо!
User avatar
PoltoS
Posts: 7579
Joined: 26 Jan 2011 19:36

Re: watchdog и утечки памяти

Post by PoltoS »

Да, реализован в Z-Uno 1 и Z-Uno 2
User avatar
PoltoS
Posts: 7579
Joined: 26 Jan 2011 19:36

Re: watchdog и утечки памяти

Post by PoltoS »

При перезагрузке она даже пришлёт код ошибки сбоя
mmm
Posts: 3
Joined: 17 Feb 2022 10:07

Re: watchdog и утечки памяти

Post by mmm »

PoltoS wrote:
17 Feb 2022 13:39
Да, реализован в Z-Uno 1 и Z-Uno 2
Скажите, пожалуйста, где можно посмотреть пример кода реализации watchdog и контроля памяти
p0lyg0n1
Posts: 242
Joined: 04 Aug 2016 07:14

Re: watchdog и утечки памяти

Post by p0lyg0n1 »

Здравствуйте!
На Z-uno 1 нет WatchDog внутри пользовательского кода. Он используется только в функции Reboot для принудительной перезагрузки чипа. Утечка памяти там также не возможна, но возможно переполение стека. С большой вероятностью это именно оно, если тот же код стабильно работает на 2-ой(где целых 2кБ только пользовательского стека).
В большинстве случаев можно увидеть проблему с помощью включения диагностических сообщений. В скетч добавьте в начало до setup() вот такую строку:

Code: Select all

ZUNO_ENABLE(LOGGING_EVENTS LOGGING_DBG);
После этого будут выводится системные сообщения/события/пакеты в Serial0(TX0). Вам нужны системные события - сообщения вида TTTTTTT:EV P0 P1, где TTTTTTT - время в микросекундах от старта, EV - событе, P0/P1 - параметры события. Переполнение стека EV = A0.
Подробнее про системные события можно прочитать здесь:
https://z-uno.z-wave.me/Reference/ZUNO_ ... T_HANDLER/
Если увидите, что проблема в стеке, то в дальнейшем необходимо оптимизировать его использование в вашем коде. Сократите число параметров функций, уменьшите число локальных переменных, вложенность функций, используйте глобальные переменные.

С уважением,
Александр.
mmm
Posts: 3
Joined: 17 Feb 2022 10:07

Re: watchdog и утечки памяти

Post by mmm »

Спасибо, Александр!
Post Reply