Live Monitoring переменные STM32 для Mac

OTW
Пт 20 апреля 2018 г., 15:40
Привет!

Я ищу приложение, которое позволяет жить в прямом эфире STM32 переменных.
Я считаю, что STM-Studio-STM32 полностью соответствует моим требованиям, но я не могу использовать его, так как я пользователь Mac.
Вы можете порекомендовать мне альтернативу?

Rogerclark
Пт 20 апреля 2018 г., 22:43
Я думаю, ты имеешь в виду, что хочешь отладчика

И Eclipse, и VSCode - это кросс -платформная и поддержка с использованием отладчика, однако, когда многие люди изо всех сил пытаются заставить их работать на Windows, я думаю, что может быть еще сложнее заставить их работать на Mac

Рик Кимбалл
Сб 21 апреля 2018 г. 12:21
Забавно, ты должен задать этот вопрос. На днях я рассмотрел возможность включения вывода SWO кода Blackmagic зонда. В этом квесте я наткнулся на тот факт, что выход SWO очень низкий наклад. Самая лучшая часть, вы можете использовать его без какого -либо отладочного оборудования. Вам просто нужен недорогой eBay USB->Серийный ключ, чтобы получить выход.

Обзор этой техники можно найти, прочитав этот Artlcle:

http: // блог.Японский.io/itm/

Не обращать внимания на то, что автор говорит о языке ржавчины вместо c++. Мясо этой техники, которая может помочь вам в Mac OS/X, можно найти, если вы прокрутите примерно на полпути вниз. Найдите заголовок "автономный SWO". По сути, вам нужна хост -программа для декодирования вывода ITM, и вам необходимо добавить некоторый код в источник STM32F103, который включает DWT и использует StateMetns ITM_PRINT.

На хосте Linux я использовал декодер ITM из проекта Black Magic Desrok под названием Swolisten.

https: // github.com/blacksphere/blackmag ... Воолистен.в

Swolisten написан для работы в двух режимах. Первый режим гласит конечную точку USB, которую использует зонд Black Magic. Второй режим Swolisten открывает последовательное устройство USB (/dev/ttyusb0 ... на Linux) и декодирует каждое сообщение и представляет выход на именованной трубе, по одному для каждого канала. Второй режим, чтение USB -последовательного устройства - это то, что мы хотим. В коде Blackmagic есть Readme под названием что -то вроде «Использование SWO Debug», если вы пьете вокруг.

Чтобы запустить это на Linux, используйте следующие команды в двух Windows:

$ swolisten -p/dev/ttyusb0 -v -b swo/-s 4000000

И во втором окне просто запускается:

$ cat swo/chan00

Теперь, когда у вас есть установка на стороне хоста, окончательная часть головоломки - это код, который вам необходимо добавить в свой источник STM32F103. К сожалению, у меня нет легко доступного примера для ядра Роджера. Тем не менее, я написал код, который вы можете использовать в качестве примера, который использует заголовок Cubemx CMSIS, который вы можете найти здесь:

https: // Gist.GitHub.com/rickkimball/55e ... D52BBCCEADD

В основном вы настраиваете модуль DWT, чтобы включить выход ITM. Если вы хотите вывести значение какой -то переменной, которую вы называете функцией CMSIS, называемой itm_print (). В этом примере, который я предоставил, для вывода значения требуется всего 17 циклов. Конечно, если вы добавите Fancy Print Formatting, вы значительно замедлите его. Подход, который будет работать лучше для того, что вы хотите сделать, может заключаться в том, чтобы вывести необработанные значения на отдельных каналах и позволить стороне хоста делать форматирование печати.

Извините, если эта рецензия оставляет много вопросов, однако есть много статей о печати SWO вывода.

То, что удивило меня использованием SWO, - это то, что вы могли бы использовать недорогой USB -ключ, такой как FTDI, CP2102 или PL2303HX, и запустить их на 4MBIT без проблем. Прежде чем посмотреть SWO, я подумал, что мне нужно коммерческое профессиональное отладочное исследование, которое поддерживает SWO с соответствующим программным обеспечением хоста. Оказывается, это на самом деле проще, если вы просто используете отдельный UART, подключенный к PIN -код TDO. Это, безусловно, дешевле.

Наслаждаться!

Sheepdoll
Сб 21 апреля 2018 г. 1:28
Я думаю, что OP ищет анализ кода в реальном времени. Где можно увидеть обновления регистров во время работы кода.

Отлаживания GDB, которые работают на Eclipse, являются STEP Repeat Defugs, поэтому они запускают одну инструкцию, а затем сбрасывают регистры через команду Read Register. Eclipse и другие IDE, как правило, делают это прозрачно, оглядываясь на материалы отладки в файлах ELF и DWARF, или это то, что файлы кофей. Это дает иллюзию наблюдения за переменными C.

Большая часть этого кода построена на моделях Visual Studio, поэтому существует ограниченная поддержка для таких платформ, как (Mac и Unix), рынок никогда не был достаточно большим для серьезных разработчиков, чтобы справиться Так много вкусов, это может быть магазин мороженого. Таким образом, мы получаем Java, например, затмение, что -то вроде чего или иначе, чем вроде как худшее из этого.

Подключение к штифту SWO звучит довольно многообещающе, но, кажется, все еще существует необходимость выполнения всего исходного анализа и моделирования с переменной областью, которые предоставляет полный интерфейс отладки. Некоторые из них также обеспечивают анализ формы волны, по крайней мере, в демонстрации выставки. Базовое требование состоит в том, что все это требует визуального или визуального .Чистая инфраструктура, которая, по -видимому, является самым низким общим знаменателем, который компании нанимают стажеров, чтобы быстро кодировать из библиотечных API, а не на самом деле программировать его.

Сегодня мне понравился Дилберт, где они хотят, чтобы 3D распечатали блокчейн в HTML, чтобы создать биткойн. Я подозреваю, что есть много пользователей, которые хотят сделать такую ​​ерунду сейчас с Proteus или Protel, или тем, что когда-либо инструмент SIM- сухо) в наши дни.

Рик Кимбалл
Сб 21 апреля 2018 г. 1:55 утра
[Sheepdoll - Сб 21 апреля 2018 г. 1:28] - Я думаю, что OP ищет анализ кода в реальном времени. Где можно увидеть обновления регистров во время работы кода.
Я, наверное, не до конца понял, о чем они просили. На самом деле, я думал, что OP говорил о отладчике на основе Святого Эклипса. Однако, глядя на это снова, это программное обеспечение, по -видимому, является чем -то, что использует функции ITM, ETM и DWT с графиком и журналом. * Какой ITM_PRINT является функцией подмножества *.

Есть люди, использующие программное обеспечение Sigrok Sigrok Opens Sign.

https: // www.Сигрок.org/blog/newprotoco ... -itm-etmv3

Rogerclark
Сб 21 апреля 2018 г., 3:53 утра
Я не знаю, правильно ли написан вопрос.

Я не думаю, что это стоит тратить больше времени, пока требование не будет уточнено.

OTW
Сб 21 апреля 2018 г. 9:09
Роджер, я не ищу отладчика, так как я уже работал.
У меня также есть логический анализатор.
Я ищу приложение, которое позволяет визуализировать и отображать переменные из MCU без прерывания выполнения программы.
Ниже я сбросил ссылку, как работает STM-Studio-STM32.

https: // www.YouTube.com/watch?v = wrmqyfypyoi

В настоящее время я использую простой скрипт GDB, чтобы увидеть, как меняются некоторые переменные. Это очень полезно, но не очень удобно, и я понятия не имею, как это влияет на выполнение программы MCU.
shell openocd -f /usr/local/Cellar/open-ocd/0.10.0/share/openocd/scripts/board/stm32f4discovery.cfg -c "init" &> /dev/null & file /Users/grzes/Documents/AC6/AC6Hello/Debug/AC6Hello.elf target remote localhost:3333 #monitor reset run display outX display outY display outZ set $loop = 0 while(1) set $loop = $loop + 1 display shell sleep 1 echo \n if $loop == 20 echo "exit"\n shell killall openocd quit end end

Sheepdoll
Сб 21 апреля 2018 г., 18:42
Я ищу приложение, которое позволяет визуализировать и отображать переменные из MCU без прерывания выполнения программы.
Ниже я сбросил ссылку, как работает STM-Studio-STM32.

https: // www.YouTube.com/watch?v = wrmqyfypyoi
Я следил за этой ссылкой на страницу загрузки. Он выглядит из файла PDF -начала, что эта программа требует Java. Так что это может быть похоже на куб и может работать на Mac, используя двигатель Java через файл JAR, встроенный в *.Exe Старая версия инструмента Cube будет работать таким образом.

Я еще не пробовал это, так как у меня есть машина Winxp, чтобы проверить его сначала и посмотреть, что установлено, где.

Если код записан на Java, то можно использовать маточку JAR, чтобы увидеть код и изменить его для запуска под разными версиями Java.

Похоже, STM-Studio-STM32-более старый инструмент и не был обновлен в течение нескольких лет. Может быть что -то, что заменяет это.

Вот несколько сценариев, которые установили и запустили куб эпохи 2015 года, этот тип скрипта может установить и запустить sstmstudio_setup.Exe Software также. ST заменил необходимость в обертке Java на предварительно построенный MAC -исполняемый файл.
# run the installer $ sudo /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar ~/Downloads/SetupSTM32CubeMX-4.8.0.exe # this install the STM32CubeMX.exe in Applications. The exe is really a jar. I ran it from the terminal

OTW
Солнце 22 апреля 2018 г. 11:33
Sheepdoll, это очень интересно, что вы написали, я сделал ему шанс, но, к сожалению, я получил после вывода:
rMacBookProGrzes:~ grzes$ sudo /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar ~/Documents/STM32/STM\ Studio/STMStudio_setup.exe Password: Error: Invalid or corrupt jarfile /Users/grzes/Documents/STM32/STM Studio/STMStudio_setup.exe

Sheepdoll
Ср. 02 мая 2018 11:03
Так что у меня наконец -то появилась возможность установить STMStudo на машине Winxp и скопировать *.JAR -файл в Mac.

Когда я пытаюсь запустить банку из командной строки, используя настройки в ярлыке Windows, я получаю $ java -Xms512m -Xmx512m -jar STMStudio.jar Native library not available for the current platform (mac os x x86_64)

OTW
Сб 5 мая 2018 г. 16:14
Я начал разработать приложение Native Mac OS для мониторинга переменных.
Я основываюсь на этом вопросе от Stackoveflow:
https: // Stackoverflow.COM/Вопросы/197 ... UT-VIA-USB

Я использую openocd для чтения формы значения Указанный адрес памяти.
Оно работает.
Теперь я работаю над тем, как получить глобальные переменные от исполняемого файла.

Я также просмотрел папку STM-Studio и нашел там плагины GDB и ST Link.
Я полагаю, что он использует драйвер ST Link для связи с MCU и GDB для извлечения переменных из исполняемого файла.
Основываясь на том, что я предполагаю, что нет возможности успешно запустить STM-Studio на Mac OS X.

Sheepdoll
Сб 5 мая 2018 г., 18:19
[OTW - Сб 5 мая 2018 г. 16:14] - Я начал разработать приложение Native Mac OS для мониторинга переменных.
Я основываюсь на этом вопросе от Stackoveflow:
https: // Stackoverflow.COM/Вопросы/197 ... UT-VIA-USB

Я использую openocd для чтения формы значения Указанный адрес памяти.
Оно работает.
Теперь я работаю над тем, как получить глобальные переменные от исполняемого файла.

Я также просмотрел папку STM-Studio и нашел там плагины GDB и ST Link.
Я полагаю, что он использует драйвер ST Link для связи с MCU и GDB для извлечения переменных из исполняемого файла.
Основываясь на том, что я предполагаю, что нет возможности успешно запустить STM-Studio на Mac OS X.
Должен иметь возможность запустить stmstudio на Mac с повторной сборкой файла JAR. Если вы посмотрите на программу, у нее уже есть обнаружения для Mac OS и Sunos. Они в настоящее время эхо в неподдерживаемом сообщении при запуске файла JAR. Ком, кажется, проходят через Stdio (Stdin, Stdout и Stderror.) Java предоставляет графический интерфейс.
Хитрой будет настройка кода моста, который работает в родном пространстве.
Я сам подумал о том, чтобы попробовать это, так как Stmstudio может быть полезным инструментом. Я также думаю, что Java может сделать переднюю часть трубного органа. (Ну, это уже через Джоргана через Миди.) Этот интерфейс стремится обеспечить более прямой мониторинг внутренних состояний.

STM32 с Eclipse, STM32Cube, GNU ARM и J-Link.

Arduino Studio

Проблема с Arduino IDE и STM32F103C