Как стать автором
Обновить

Комментарии 6

На ESP32 беспроводно смотрю логи через телнет https://github.com/h2zero/esp-libtelnet - Remote console over telnet for esp32 devices. Можете там почерпнуть идею о перенаправлении stdout и stderr.

Когда надо отлаживать что-то что нельзя тормозить то использую свободные ноги (или навешиваю расширитель пинов на регистре или ещё какой вариант), которыми дёргаю одной командой в контрольных точках. Затем осциллографом или хорошим LA контролирую изменения на этих пинах. Наглядно видно что куда зачем и т.д. Пины реюзабельны (добавление контекста в виде второго пина, например), так что всё зависит только от воображения. Математику отлаживаю классически, через SWD и OpenOCD. Вывод в UART обычно пишу свой, чтобы был максимально маленьким и использовал аппаратуру (прерывания, DMA). Но он бывает нужен реально редко.

Хороший метод! когда процессы быстрые, однотипные и частые. Логи скорее для сложной логики внутри mcu

Текстовые логи они нужны, но у них задача не для отладки всего а в основном просто передать текущее состояние сложных логических машин. У меня есть проект с RTOS, который с ключом DEBUG собирается с UART, куда несколько задач гадят всяким в виде "[Задача]: Сообщение". Чтобы понять что происходит и как они реагируют на внешние раздражители - хватает. Но в боевом режиме эта отладка - это лишняя нагрузка на ядро, поэтому и ключ присутствует. А одна команда "дёрнуть ногой" позволяет отслеживать моменты с затратами всего десятка наносекунд.

SEGGER's Real Time Transfer (RTT) часто использую

Поддерживаю.. Уже давно в OpenOCD внедрили. Можно настроить как угодно разное кол-во вводов/выводов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории