У ST есть утилита STM32CubeMonitor , которая позволяет по SWD/JTAG следить за конкретными переменными в физической памяти (REG, RAM, ROM) микроконтроллера. Передаешь STM32CubeMonitor *.elf файл и подключаешь по SWD Target. Причем эта Tool(а) позволяет строить графики по значениями переменных в памяти. Это как утилита ArtMoney в случае с взломом компьютерных игр на PC, только для микроконтроллера. STM32CubeMonitor удобна при отладке систем автоматического управления (ПИД регуляторы), цифровых фильтров, триггеров Шмитта и прочей DSP обработки.

Постановка задачи
Научиться наблюдать за конкретной переменной в RAM памяти в реальном масштабе времени.
Определения
SWD - двухпроводной полудуплексный интерфейс для программирования микроконтроллеров.
target устройство - то, что мы программируем. Электронная плата с микроконтроллером.
Что надо из оборудования?
Название | Назначение |
Программатор ST-Link/V2-1 | Переходник между интерфейсом USB и интерфейсом SWD |
Кабель USB mini | Для соединения LapTop-a и программатора |
Перемычки гнездо-гнездо | Для соединения внешней PCB и программатора по интерфейсам SWD и UART. |
Target устройство | То что мы будем программировать |
Что надо из ПО?
Прежде всего вам потребуется программа STM32 ST-Link Utility, чтобы загрузить прошивку в микроконтроллер. Далее при помощи утилиты setupSTM32CubeMonitor_1.11.0.exe мы будем просматривать интересующие нас переменные в работающей прошивке.
Программная часть.
Вот так выглядит GUI программы STM32CubeMonitor. По умолчанию там уже нарисована типовая классическая схема для большинства случаев применения.

Вот главное окно

Фаза 1. Подготовить бинарь с отладочными символами.
Подготовить бинарь с отладочными символами. Надо собрать прошивку с ключами компилятора -g -gdwarf-2.
Фаза 2. Прошить микроконтроллер.
Прошивку, которую мы и будет отлаживать надо сперва прописать в NOR Flash память микроконтроллера.

Фаза 3. выбор программатора
Очевидно, что первым делом надо выбрать программатор, инт��рфейс программатора и битовую скорость интерфейса связи между микроконтроллером и программатором.

Фаза 4. Загрузить .elf файл
Чтобы программа поняла какие в прошивке есть переменные их надо импортировать из elf файла. Делается это в узле VariableNode.

Нажимаем Add и появляется подтверждение выбора переменных. Нажимаем кнопку Done

Остается нажать deploy и DashBoard. После чего появляется график зависимости переменной от времени.

Итоги
Удалось научиться пользоваться утилитой STM32CubeMonitor. Программное обеспечение STM32CubeMonitor в самом деле позволяет выводить значения глобальных переменных (по сути считывая значение с ОЗУ) в виде графиков. Однако интерфейс своеобразный и потребует привыкания.
Ссылки
STM32CubeMonitor | URL |
STM32CubeMonitor | |
Разбираеися с CubeMonitor | |
Как пользоваться STM32CubeMonitor (графики, приборы) и зачем нужно | https://cxemka.com/103-kak-polzovatsja-stm32cubemonitor-grafiki-pribory-i-zachem-nuzhno.html |
Программатор из обломка платы Nucleo | |
Пошаговая GDB отладка прошивки STM32 из консоли cmd | |
16 Способов Отладки и Диагностики FirmWare | |
Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB | |
Обзор утилиты TunerPro (или const volatile) | |
STMStudio — отладка в реалтайме. Ещё один урок | |
Пошаговая GDB отладка ARM процессора из консоли в Win10 | |
Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность) |
