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 каналов можно приобрести здесь

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

 

 

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

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

 

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

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

 

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

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

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

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

*