У 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

http://www.emcu.eu/stm32cubemonitor/

Разбираеися с CubeMonitor

https://www.zenembed.com/ru/cubemon

Как пользоваться STM32CubeMonitor (графики, приборы) и зачем нужно

https://cxemka.com/103-kak-polzovatsja-stm32cubemonitor-grafiki-pribory-i-zachem-nuzhno.html

Программатор из обломка платы Nucleo

https://habr.com/ru/articles/975880/

Пошаговая GDB отладка прошивки STM32 из консоли cmd

https://habr.com/ru/articles/979122/

16 Способов Отладки и Диагностики FirmWare

https://habr.com/ru/articles/681280/

Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB

https://habr.com/ru/articles/673522/

Обзор утилиты TunerPro (или const volatile)

https://habr.com/ru/articles/965828/

STMStudio — отладка в реалтайме. Ещё один урок

https://www.drive2.ru/b/2049876/

Пошаговая GDB отладка ARM процессора из консоли в Win10

https://habr.com/ru/articles/694708/

Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность)

https://habr.com/ru/articles/694408/

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь утилитой STM32CubeMonitor?
19.05%да4
80.95%нет17
Проголосовал 21 пользователь. Воздержавшихся нет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой программой вы просматриваете параметры в прошивках?
14.29%STM32CubeMonitor1
71.43%STMStudio5
0%TunerPRO0
0%TsMaster0
14.29%Vector1
0%Segger J-Scope0
Проголосовали 7 пользователей. Воздержались 12 пользователей.