Как насчет настройки отладки с помощью Blackmagic Dest

Рик Кимбалл
Вт 28 апреля 2015 г. 13:56
Одним из первых отладчиков, поддерживающих отладку серийного провода, была вещь, называемая зондом Black Magic (BMP). Он имеет как пользовательское оборудование, так и компонент прошивки с открытым исходным кодом. Интерес для толпы STM32Duino, представляет факт, что оригинальная платформа является чипом STM32F103C8. Таким образом, теоретически вы могли бы получить его на одной из ваших досок eBay Micro STM32F103 (примечание: еще не пробована). Это дало бы альтернативу отладчику программиста Stlink.

Я думаю, что лучшая особенность заключается в том, что он представляет собой последовательное устройство, которое говорит о устройстве дистанционного последовательного протокола GDB. Это означает, что вам не нужно Openocd или Texanne Stlink, чтобы поговорить с ним. Еще лучше, что это просто устройство CDC_ACM, поэтому вам не нужны специальные драйверы ОС для взаимодействия с ним. Он отображается как Comx: в Windows или A /dev /ttyacmx на Linux. Использование Arm-none-eabi-gdb -ex 'target remote /dev /ttyacm0 "Mlink.CPP.ELF и вы можете загрузить и отлаживать свои программы STM32 Arduino. Это также облегчает наличие постоянного интерфейса отладчика / программиста на разных платформах ОС.

Вы можете прочитать больше об этом здесь:

https: // github.com/blacksphere/blackmagic/wiki

-рик

Рик Кимбалл
Вт 28 апреля 2015 г. 13:58
Кстати: @Roger, вы можете посмотреть на его код DFU, чтобы увидеть, как они справляются с сбросом после загрузки новой прошивки

Бобк
Чт 30 апреля 2015 г., 22:52
Я смотрел на BMP раньше, это было (и все еще) слишком дорого в моей книге. Хорошо, я ценю оборудование & Разработка стоит деньги, и даже инженеры OSS должны оплачивать счета.

Но я могу получить очень хороший адаптер JTAG за 20 долларов и использовать его с помощью Emblocks, которые все отличаются от коробки.

Я смотрел на создание перекрестного программиста (используя запасную целевую плату в качестве программиста). Ребята MCHCK достигли этого (решение, специфичное для Freescale K20). Эрих Стигер также изучает это, вероятно, также специфичный для K20, хотя.

MBED есть код для OpenSda, он находится в состоянии потока, хотя. Это будет включать в себя много повторного изобретения колеса и не изменит цену (это все это усилие стоит 15 долларов?), и на самом деле не добавляет никакой ценности по сравнению с другими предложениями.

Мой вывод здесь заключается в том, что отладка с открытым исходным кодом (OpenOCD, BMP и т. Д.) Приятно иметь, но запатентованные решения являются более практичной альтернативой. Достаточно сложно получить надежный API приложения!

Рик Кимбалл
Пт, 01 мая 2015 г. 12:06
Теперь, когда я перечитываю то, что я написал, кажется, что я продвигаю аппаратное обеспечение BMP. Я не пытался это сделать. На самом деле, я пытался подчеркнуть, что эти китайские доски eBay за 4 доллара и программное обеспечение BMP станут хорошим программистом SWD / отладчиком.

Я собрал и загрузил прошивку OpenSource BMP на плату Discovery STM32F4 и использовал ее для успешной программы и отладки с несколькими различными чипами ARM, NXP LPC1114 и LPC812 и STM32F051. Платформа прошивки STM32F4 уже является частью исходного кода. Это просто вопрос компиляции и загрузки, а затем подключение некоторых проводов к вашей плате STM32. Я также установил прошивку BMP на плате Ti Stellaris. Это также работает, и есть вилка кода BMP, который вы можете скачать и установить.

Я нахожу идею использования клонов за 4 доллара и программного обеспечения BMP, чтобы сделать самообеспеченного программиста / отладчика воплощением OpenSource, который можно было полностью. Извините, если я запутал людей с моим первым постом.

-рик

Rogerclark
Пт, 1 мая 2015 г. 1:50
Рик,

У меня есть клон Stlink, а также программист JTAG (клон).

Я посмотрел на BMP некоторое время назад, но я согласен с @BOBC в этом, официальный BMP был слишком дорогим для меня.

Я знаю, что @ahull имеет Stlink, работая с интерфейсом командной строки GDB, и я посмотрю ссылку, которую вы прислали мне на отдельный

Я также посмотрю на клоны BMP, как будто они стоят всего 4 доллара, это стоит покупать, на всякий случай....

Я посмотрел на интеграцию JTAG в репо, но, похоже, разные производители существуют разные производители,
Кроме того, я не мог заставить свой JTAG успешно загрузить и запустить эскиз. Возможно, это потому, что это клон и может даже не работать правильно, но у меня не было времени, чтобы даже проверить, даже загружает ли мой JTAG код.

Что я думаю, будет почти изменение игры, это отладка схемы. Попытка отладки с использованием серийного.Принт болезнен.

Интересно, что команда IDE намеревалась сделать с нулем, так как даже сейчас материал рекламы имеет что -то в рамках отладки.

Редактировать.

Рик, можешь отправить ссылку на один из этих клонов. Я не могу найти ни одного :-(

Рик Кимбалл
Пт, 1 мая 2015 г., 2:04
BOBC написал:Я смотрел на BMP раньше, это было (и все еще) слишком дорого в моей книге. Хорошо, я ценю оборудование & Разработка стоит деньги, и даже инженеры OSS должны оплачивать счета.

Рик Кимбалл
Пт, 01 мая 2015 г., 3:40
Rogerclark написал:Рик, можешь отправить ссылку на один из этих клонов. Я не могу найти ни одного :-(

Rogerclark
Пт, 01 мая 2015 г., 4:06 утра
Рик

Спасибо за эти ссылки.

Было немного неясно, как я собираю https: // github.com/blacksphere/blackmag ... ORMS/STM32

У макияжа верхнего уровня нет конкретных целей
Так что я не совсем понимаю, что это компиляция, я.e прошивка BMP или что -то еще

ммм.

Мне придется посмотреть еще один взгляд

Рик Кимбалл
Пт, 01 мая 2015 г., 4:25
Сделать grobe_host = blah

где Blah является одним из каталогов в Blackmagic/SRC/платформах, таких как F4discovery или Native, или Stlink или Swlink или TM4C

Я думаю, что каталог STM32 используется всеми целевыми платформами STM32.

Rogerclark
Пт, 01 мая 2015 г., 4:26 утра
Спасибо

Попробую позже...

Rogerclark
Пт, 01 мая 2015 г., 11:33
Рик,

Я попытался составить BMP из репо, с которым вы связаны https: // github.com/blacksphere/blackmagic, Использование Windows и Mingw

Но LiboPencm3 не будет компилировать :-(

Завтра я попробую завтра на Linux

Rogerclark
Солнце 3 мая 2015 г. 10:20 утра
К сожалению, репо тоже не компилируется под Linux.

Много ошибок линкера о коде не подходит, но также и

CDCACM.C неопределенная ссылка на TRACE_BUF_DRAIN

Я не думаю, что стоит попытаться отладить BMP.

Его Easties просто для использования Texane-Stlink, по крайней мере, чтобы начать с того, что он использует приопритентное оборудование.


Я постараюсь настроить автономный отладчик Eclipse CDT на машине Linux, но, похоже, мне нужно сначала сделать полную установку Eclipse CDT - стыд автономный отладчик, кажется, не может установить «автономный» ;-)

Я дам вам знать, как я.

Рик Кимбалл
Сб 16 мая 2015 г. 11:07
Поэтому я пошел дальше и заставил BMP -код работать для общих плат STM32F103C8. Вы можете найти загруженную, которая содержит предварительно скомпилированные двоичные файлы и исходный код здесь: http: // www.STM32duino.com/viewtopic.PHP?F = 37&t = 122

Я думаю, что я плохо сделал свои попытки объяснить, почему BMP - это хорошо, я собираюсь добавить несколько причин, почему это лучший подход как для загрузки, так и для отладки. Перечислены в любом конкретном порядке (BMP == прошивка зонда Black Magic):
  • BMP - это коммерческий продукт, который предоставляет свой код в качестве открытого исходного кода.
  • BMP занимает место 3 двоичных файлов, которые вы поддерживаете в рамках этого порта.
    • Вам не нужен ST-Write, потому что BMP позволит вам загружать файлы.
    • Вам не нужна Texanne/ST-UTIL на стороне хоста для отладки, сервер GDB встроен в прошивку BMP.
    • DFU-UTIL не обязан размещать код на доску сейчас.
    • Единственный требуемый побочный код хоста уже предоставлен (Arm-None-Eabi-GDB). Это часть GCC ARM Linaro, которую вы получаете при установке компилятора Due.
  • BMP не является собственностью, как устройство ST-Link. ST никогда не выпускал внутренний протокол для устройства ST-Link. Texane Code и Openocd смогли добавить поддержку после того, как кто-то обработал протокол USB для ST-Link. Это может измениться в будущем.
  • BMP обеспечивает загрузку записи Flash и отладку на одном и том же интерфейсе.
  • BMP предоставляет виртуальный COM -порт бесплатно. Эти дешевые клоны eBay ST-Link не делают, они являются ST-Link V2, а не v2.1. Когда вы используете виртуальный COM -порт и аппаратный USART в своем коде Arduino, который вы получаете в этом отношении:
    • Usbesserial в Libmaple не бесплатен. Это уходит в Flash, RAM и CPU вдали от вашего кода. Он должен обслуживать данные USB и сердцебиение по очень строгому графику, и он займет время с другими обработкой прерываний.
    • Когда вы сбрасываете свою целевую доску, вы теряете какие -либо последовательные соединения. Если вы находитесь в эмуляторе терминала, он уйдет.
    • USBERIAL CODE использует RAM и Flash, которые вы можете использовать для вашей программы. Код USART намного меньше и использует процессор только при отправке или получении данных. Когда последовательные данные не текут, не используется процессор.
    • Вам не нужно покупать FTDI/CH302/CP210X/PL2303HX/Generic USB в серийный ключ.
  • Вам никогда не придется тветывать бутинки, чтобы иметь возможность программировать устройство. BMP имеет возможность подключаться к сбросу, что похоже на вытягивание штифта Boot0 High.
  • BMP был первоначально написан в серии STM32F103C. Это то же самое оборудование, которое мы используем.
  • Вы можете загрузить среду разработки из ничего. Весь исходный код доступен для всего.
  • BMP написан с использованием libopencm3. Проект LiboPencm3 может быть хорошей альтернативой Libmaple в будущем. С тем же API он поддерживает больше серии STM32, чем Libmaple. Кроме того, он также был перенесен в другие чипы ARM Coretx-M от других поставщиков (NXP, TI).
  • Я уверен, что мог бы придумать больше, если вы не уверены :)
В любом случае, я собираюсь изменить платформу.TXT и доски.TXT, чтобы поддержать это.

-рик

Rogerclark
Солнце 17 мая 2015 г. 12:47
Я думаю, что для большинства людей смогут это сделать, вам нужно будет подробно документировать, как создать BMP для различных устройств, а также программировать аппаратное обеспечение, а также как подключить BMP и как его использовать

Это должно быть сделано как для Windows, так и для Linux, так как большинство пользователей находятся в Windows

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

Это позор, потому что я думаю, что в отладке схемы была бы огромной выгодой для всех.

Это также ситуация с курицей и яйцом, я не думаю, что люди покупают оборудование, E.глин. Stlink, (или другая доска для запуска BMP), так как в настоящее время нет простого способа его использовать. И... Поскольку вряд ли у кого -то есть аппаратное обеспечение, не так много импульсов, чтобы разобраться с SW.

Рик Кимбалл
Солнце 17 мая 2015 г. 12:52 утра
Мое видение этого кода состоит в том, что люди просто покупают одну из этих досок и загружают поставленные бинарные из них, используя последовательное устройство. IDE сделает оставшуюся работу. Мои цели сейчас довольно ограничены. Шаг 1, предоставьте загрузчик Burn Bootloader для программиста «BMP», который делает именно это. Шаг 2, предоставьте пункт меню, который позволяет загружать с помощью BMP в дополнение к Stlink и Serial.

-рик

Rogerclark
Солнце 17 мая 2015 г., 3:35
Рик

Звучит отлично. Я действительно думал о опции Burn Bootloader, но я не уверен, как это исправлено в IDE.

Я посмотрел в 3 -й стороне Doc Doc https: // github.com/arduino/arduino/wiki ... зацикция

и это было бесполезно
Burn Bootloader

Тодо...
:ржу не могу:

Но я вижу в том же документе инструменты.Avrdude.загрузчик.шаблон = [......]
[.....]
Так что я думаю, это вопрос обратной машины, что делает AVR

Интересно, что IDE действительно громкий об этом, если вы выберете неверную комбинацию платы и программиста, вы получаете груз сообщений Java
Ошибка во время сжигания загрузчика.
Ява.ланг.NullPointerException

и т. д
и т. д
что не очень хорошо