У 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? (или Добавьте в Прошивку Гласность) |
Комментарии (13)

besitzeruf
15.02.2026 22:02Отвратительнейшая утилита. ИМХО.

danil_12345 Автор
15.02.2026 22:02Отвратительнейшая утилита. ИМХО
Полностью в Вами согласен! Уж лучше J-Scope или тот же STMStudio (который map поедал)

danil_12345 Автор
15.02.2026 22:02Отвратительнейшая утилита. ИМХО
Да. Вы правы! Голосование говорит само за себя. cube monitor - отстой.


iganiv
15.02.2026 22:02Передрали сеггеровский J-Scope, походу. Реально удобная прога (у сеггера). Единственное - можете закидывать меня какашками - абсолютно все ПО такого типа, написанное на джаве - это 99.99% тормозной мусор с кучей ошибок (самый явный пример - микрочиповский MPLab X). Но даже этот тормозной мусор лучше, чем Keil или IAR за миллионы рублей денег (привет Миландру с его «импортозамещением»).

danil_12345 Автор
15.02.2026 22:02Передрали сеггеровский J-Scope, походу. Реально удобная прога (у сеггера).
Спасибо Вам, что дали наводку на J-Scope. Попробовал. Понравилось. С сегодняшнего дня я бросаю STM32CubeMonitor в помойку и отдаю приоритет J-Scope.

ColdHam
15.02.2026 22:02Не то чтобы мне хотелось защищать миландр, но хочу отметить что в новых МК на RISC v (mdr1206xxx) Кейл отвалился ТК он всё-таки корнями уходит в arm, iar - да, поддерживается, но также есть мануалы и статьи на оф сайте по настройке eclipse или vscode для работы

AndronNSK
15.02.2026 22:02А что, для STM нет IDE с отладкой, чтобы не пользоваться мутными утилитами?
Как я помню, 10 лет назад я брал GDB, Eclipse и отлаживался без утилит.

sami777
15.02.2026 22:02Ну как же нет, все уже давно есть! Просто эти программы как раз из того времени пришли, когда полноценных IDE не было, например, у меня на рабочем столе до сих пор пылится STMStudio - как раз то, что было до того, что описал автор. А так на текущий момент Atolic true studio и CubIDE - полноценные IDE, поддерживающие полноценную отладку не только через SWD, но и через SVW.

danil_12345 Автор
15.02.2026 22:02"у меня на рабочем столе до сих пор пылится STMStudio - как раз то, что было до того, что"
Хорошая новость.
У Вас остался какой-либо дистрибутив STMStudio версии 2.х? Тот который работает с *.map файлами.
sami777
15.02.2026 22:02Увы, нет. Сейчас посмотрел версию установленного у меня продукта (дистрибутив есть) - вер. 3.6.
sim2q
Не ну аналоговый аналог тоже можно сделать, но как то это сразу бросает тень на всю статью.
С STM32CubeMonitor не смог справиться, пришлось даже использовать специально старый линковщик для отладки с соотв флагами и какой то скрипт, но всё равно уже что то ломается.
danil_12345 Автор
STM32CubeMonitor - это ярчайший пример того, как контора ST угробила хороший продукт STMStudio в пользу какой-то мути типа CubeMonitor .
На радость фирме Segger со своим J-Scope!
sim2q
.