MCUCapture - утилита для захвата данных из массива в памяти микроконтроллера


В отличие от STM Studio, моя программа предназначена для работы именно с массивами, а не отдельными переменными.
Можно просматривать содержимое массива структур (на скриншоте выше как раз такой случай). Это может быть полезно, если в массиве содержатся данные, захваченные из нескольких каналов АЦП.
Также программу можно использовать для сохранения данных, считанных из массива, в файл на ПК.
Дополнительно реализован захват данных из RAM framebuffer, и отображение на экране ПК (т.е. возможность делать скриншоты). Пока поддерживаются только Ч/Б индикаторы OLED (к примеру SDD1306) и LCD (к примеру ST7565R):

Использование программы
Соединение с микроконтроллером производится при помощи программы OpenOCD.Управление захватом данных производиться элементами в панели «Data Source».
- В первую очередь нужно указать расположение массива в памяти «Start address» и его размер «Array size, bytes». Эти параметры можно установить автоматически, используя файлы *.elf, *.out, *.afx, сгенерированные компилятором. Для этого нужно нажать кнопку «Addr. from ELF»:
- Нажатие на кнопку «Manual Read» запускает считывание данных из массива. Так как при этом контроллер не останавливается, то данные могут изменится, и графики выйдут некорректными.
- Если нажать на кнопку «Wait End WP», то на последний байт данных будет установлен write watchpoint, т.е. при записи в эту ячейку RAM MCU остановит выполнение программы. После этого утилита автоматически захватит данные из RAM, уберет watchpoint, и выведет MCU из режима Halt. Этот режим нельзя использовать, если данные записываются в RAM при помощи DMA.
- Если нажать на кнопку «Wait Trigger», то на переменную, заданную в настройках Capture Trigger, будет установлен value watchpoint, т.е. MCU остановит выполнение программы, если в эту переменную будет записано определенное значение. В остальном все аналогично предыдущему режиму. Важно отметить, что в текущей версии OpenOCD работа с value watchpoint для Cortex-M не реализована, так что мне пришлось пропатчить OpenOCD. Ссылка на моя реализацию
- +8
- 21 декабря 2019, 15:02
- citizen
Ох, спасибо тебе, мил человек! Как же вовремя, как раз то, чего не хватало для полного счастья! Теперь будет чем перегонять данные с МК в Octave.
Было бы с чего — поставил бы плюсик в рейтинг!
Было бы с чего — поставил бы плюсик в рейтинг!
- sdv_cyborg
- 27 декабря 2019, 14:10
- ↓
Комментарии (3)
RSS свернуть / развернуть