ESP32 Урок 12. Отладка. Смотрим регистры контроллера



В уроке 10, в котором мы научились подключить отладчик к плате с контроллером ESP32, нам не удалось увидеть регистры контроллера (его периферии).

Благодаря подсказке посетителя данного ресурса, мне удалось всё же это сделать. Для этого нам нужен будет файл с расширением svd с адресами регистров, который мы должны подключить к лаунчеру для отладки.

В Espressif IDE снова откроем проект с именем BLINK01 из урока 3 (кстати, я, наконец-то прикрепил к статье исходный код проекта) и зайдём в настройки лаунчера для отладки. Во-первых, сначала исправим ошибку во вкладке Common в строке подключения лог-файла. Закрывающая фигурная скобка была не на месте. Поставим её на место

 

 

Файл svd с описанием регистров несложно найти в интернете. Мне попались таких два, один поменьше, другой побольше. Пока сильной разницы я в их содержании не ощутил, те регистры, которые мне нужно было мониторить, присутствуют в них обоих. На всякий случай я внизу страницы выложу архив с обоими.

Поместим файл svd (я поместил оба) в каталог с проектом

 

 

Перейдём в конфигурации лаунчера на вкладку SVD Path и подключим один из файлов

 

 

Именно этот файл нормально подключается. В нем нет многих регистров, основные есть. Я пробовал его пересобрать с помощью специальной утилиты, только получился он ещё меньше, видимо под новый комплект esp idf сборщик не очень подходит. К сожалению, Espressif нам данного файла не предоставляет. Я добавил кое-какие регистры ещё, в том числе некоторые регистры из периферии IO_MUX.

Сохраним конфигурацию.

Подключим наши платы к ПК, запустим отладку и остановим код вот здесь

 

 

 

Перейдём на вкладку Peripheral (или откроем её, у кого она ещё не открыта) и увидим там наши регистры

 

 

Установим галку в группу GPIO, можно сразу в несколько. Выбираем именно нужную для мониторинга периферию. Нас пока интересует именно GPIO

 

 

И теперь во вкладке Memory мы увидим все регистры интересующей нас группы с их значениями

 

 

Отлично! Запустим код, дождёмся, когда он остановится на том же месте в бесконечном цикле, и увидим изменения в регистре

 

 

Возможно, в зависимости от состояния переменной s_led_state, изменения произойдут со второго раза.

И теперь каждый раз после запуска кода и остановки значение регистра будет меняться.

В данный момент мы смотрели состояние вот этого регистра контроллера

 

 

Биты данного регистра показывают состояние ножек портов ввода-вывода, настроенных на выход.

 

 

Также мы видим изменения в данном поле другого регистра

 

 

Подключим также периферию IO_MUX и посмотрим состояние битов, предназначенных для настройки мультиплексора для регистра GPIO2

 

 

Сравнивая с регистрами, предназначенными для других портов мы видим, например, что у нас сбросился бит, отвечающий за настройку на вход

 

 

Ну, и раз у нас так хорошо всё и быстро получилось, давайте попробуем поработать с отладкой другого проекта — проекта урока 4, в котором мы работали с кнопкой. Подключим данный проект и создадим и настроим подобный прошлому проекту лаунчер для отладки.

Подключим кнопку, прошьём проект и запустим отладку.

Точку останова поставим здесь

 

 

Запустим проект на выполнение и, как только код остановится в точке, посмотрим состояние регистров

 

 

Мы видим, что у GPIO4, настроенного на вход, бит FUM_IE установлен.

Нажмём кнопку и удерживая её запустим код на выполнение.

Мы получим изменение здесь

 

 

и здесь

 

Вот таким образом мы теперь можем видеть состояние регистров различной периферии контроллера ESP32.

Итак, на данном уроке мы продолжили знакомство с возможностью отладки кода контроллера ESP32 и также нам удалось подключить возможность мониторинга регистров данного контроллера.

Всем спасибо за внимание!

 

 

Данная статья в Дзен.

 

Предыдущий урок Программирование МК ESP32 Следующий урок

 

Архив с файлами svd

 

Недорогие отладочные платы ESP32 можно купить здесь: Недорогие отладочные платы ESP32

Логический анализатор 16 каналов можно приобрести здесь

Многофункциональный переходник CJMCU FT232H USB к JTAG UART FIFO SPI I2C

 

Смотреть ВИДЕОУРОК в YouTube (нажмите на картинку)

ESP32 Отладка. Смотрим регистры контроллера

Смотреть ВИДЕОУРОК в Дзен (нажмите на картинку)

ESP32 Отладка. Смотрим регистры контроллера

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*