Auto-Launch Arm-None-Eabi-gdb после загрузки сценария

Рик Кимбалл
Пн 11 мая 2015 г. 14:46
Я собрал сценарий, который вы можете использовать для загрузки через STLINK, а затем автоматически запустить GDB. Я сделал это только для Linux, но вы сможете получить представление о том, что вам нужно сделать, чтобы он работал на OS/X и Win32/64, посмотрев на сценарии. Начнем с картинки:

Изображение

Когда вы нажимаете кнопку загрузки 2 XTERM. Вы можете увидеть, как моя Arduino IDE работает слева от изображения. Это самое низкое окно. Следующим вверх по стеку окон и справа находится XTRIDE, который запускает ST-UTIL Sulding на порту 4242. Наконец, окно, которое нас действительно волнует,-это верхнее окно, управляющее программой командной строки Arm-None-Eabi-gdb.

В этом окне GDB вы можете увидеть, что я настраиваю точку останова на функции Loop (): (gdb) break loop()

Mrburnette
Пн 11 мая 2015 г. 15:03
Аккуратный.
Но, что далека к графическому интерфейсу, к которому я привык с отладчиком PSOC4200 M0+ под Cypress.

Но все же легкий год впереди необходимости посыпать сериал.println () по всему эскизу.

Луча

Рик Кимбалл
Пн 11 мая 2015 г. 15:11
Я попробовал PSOC, и это удивительная среда, если вы запускаете Windows. Это собака медленная под виртуальной коробкой, хотя. Если бы не это было бы для этого, я бы, вероятно, играл с этими чипсами больше.

Если вы хотите полный опыт работы с графическим интерфейсом, вы можете заменить Arm-none-ebi-gdb чем-то вроде DDD, Eclispe Sandalone .. или что -то еще самое жаркое новое gdb -интерфейс. Я считаю, что командная строка довольно полезна, как только вы получите рукоятку по командам. Однако, если вы не используете эти команды каждый день, эти вещи довольно быстро исчезают из вашей памяти.

Mrburnette
Пн 11 мая 2015 г. 15:17
Однако, если вы не используете эти команды каждый день, эти вещи довольно быстро исчезают из вашей памяти. Вот почему у многих из моих старших друзей есть свои инициалы на прямых поясах! К сожалению, я думаю об этом в эти дни.

Рик Кимбалл
Пн 11 мая 2015 г. 15:56
Да, это одна из причин, по которой я сейчас публикую на форумах. Если я когда -либо смогу найти путь обратно на форум, я смогу прочитать то, что написал. :)

-Пример потока кода и точек останова-

Некоторые из общих команд, которые вы будете использовать для установки точек останова, - это те, которые управляют, когда отладчик останавливается: run - resets the stm32f103 and starts from the beginning break - set a breakpoint on a function or a line in a function continue - tell the debugger to run until a breakpoint is hit or the you press CTRL-C next - step over a line of c code, if the line of code is a function call, it will run the function but not go into it step - step into a line of c code, if that is a function it will then stop at each line in the function finish - exits whatever function you are running and stops at the first line of code in the caller after the function call where - show the line of code you are on and the call stack info breakpoints - show all the current breakpoints delete - deletes all the breakpoints print - used to display variables and registers.

Рик Кимбалл
Пн 11 мая 2015 г., 18:12
Mrburnette написал:Аккуратный.
Но, что далека к графическому интерфейсу, к которому я привык с отладчиком PSOC4200 M0+ под Cypress.

Mrburnette
Пн 11 мая 2015 г., 22:00
Рик Кимбалл написал:Mrburnette написал:Аккуратный.
Но, что далека к графическому интерфейсу, к которому я привык с отладчиком PSOC4200 M0+ под Cypress.

Рик Кимбалл
Пн 11 мая 2015 г., 22:41
Я посмотрю, смогу ли я понять, как сделать это автоматическое. Мне пришлось сделать много ручной установки, чтобы сделать Eclipse CDT автономной вещью работу.

Рик Кимбалл
Вторник 12 мая 2015 г. 14:07
Ну, я получил его для автозапуска и автоматически делаю все правильно. Это все еще ограничено Linux, хотя. Хотя я думаю, что OS/X будет работать с минимальными изменениями. Я заметил интересную проблему. Когда вы используете ST-UTIL в качестве сервера GDB, функция разборки Eclipse едва ли работает. Он не показывает смешанную функцию ASM/исходный код, даже если .Файл ELF имеет символы GDB. Если вы включите режим шага инструкции, он, похоже, не отслеживает текущий счетчик программы и в основном бесполезен.

Если вы переключитесь на использование OpenOCD в качестве сервера GDB. Это намного быстрее и показывает смешанный ASM/Source, как и следовало ожидать, и вы можете очень быстро и точно инструктировать.

Мне нужно очистить сценарий, чтобы избавиться от моих хакерских взломов. В основном я добавил 2 сценария (запуск_гдб и GDB) и изменил stlink_uploader. Я бросил сценарий оболочки GDB в Tools/Linux/Stlink в основном, чтобы я мог манипулировать аргументами, так как я не нашел способ переопределить имя параметров конфигурации запуска для исполняемого GDB.

Нет фотографий .. так же, как и раньше :)

Рик Кимбалл
Вторник 12 мая 2015 г., 21:24
Больше прогресса, я добавил вариант меню для загрузки и отладки:

Изображение

Здесь вы можете видеть, как я отлаживаю об ассоциируемом примере. У меня есть замазка, работающая в качестве серийного терминала на /dev /ttyusb0. Вы можете видеть, что у него есть некоторые данные, но я прошу функции записи, и вы можете увидеть следующий символ, который он собирается выводить, - это «E» (значение *str)

Изображение

Если вы заинтересованы в этом материале, присоединяйтесь к IRC, чтобы получить больше информации.

-рик

Rogerclark
Ср 13 мая 2015 г., 11:12
Привет, Рик,

К вашему сведению.

Я разместил в список рассылки разработчиков Arduino (я.E The IDE разработчики), чтобы узнать, как они намеревались поддержать его отладку в Arduino Zero

Ну, я еще не получил ответа от разработчиков (я никогда не), но кто -то предложил мне использовать DDD

Я пытался скомпилировать DDD в Windows, но это не так, так как похоже, что он никогда не был скомпилирован под Mingw в Windows

Поэтому я подумал, что попробую собирать на моей машине Linux 32.

Ну, это так же плохо. :-( но терпит неудачу по -разному

Во-первых, это дерн, чтобы установить все необходимые Libs разработки, нет, кажется, нет списка необходимых либеров или сценарий для Apt-Get Установить их для вас. (насколько я могу судить)

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

Когда я наконец прошел сцену сценария настройки и запустил, он не может компилироваться

Так...

Похоже, DDD - еще один стартер

Следовательно, Recepipse ищет лучшую ставку на данный момент, но...

Но я не могу найти никаких документов о том, есть ли версия Windows версии Eclipse Standalone Debugger.

Процент пользователей Linux, вероятно, на этом форуме, возможно, на 20%, возможно, ниже.

Поэтому, если мы не сможем получить решения по кросс -платформе, я не уверен, сколько будет занять там

Хотя, если мы получим работу с Windows, я думаю, это изменит правила игры ;-)

Ахулл
Ср 13 мая 2015 г., 23:01
Я не хочу звучать самодовольно, но DDD устанавливается в первый раз и без проблем запускается на Linux (Ubuntu 14.04.2 LTS)

Я думаю, что вы ищете волшебство... sudo apt-get install ddd libmotif-common libmrm4 libuil4 libxm4 ddd-doc pydb glibc-doc

Rogerclark
Ср 13 мая 2015 г., 23:09
@ahull

Спасибо

Я попробую

Это, однако, означает, что DDD - это решение только Linux, потому что мы не можем сделать то же самое

Ну, я знаю, что это не сработает при mingw


Я опубликовал на форуме Eclipse в надежде, что кто -то может помочь, как установить отладчик под Windows

Rogerclark
Чт 14 мая 2015 г., 10:08
Редактировать.

Я инсталел, используя пришление apt-get, и DDD теперь, кажется, работает, но у меня не будет времени до выходных, чтобы посмотреть, как его использовать.

КСТАТИ. Я разместил на форуме пользователей Eclipse, чтобы узнать о автономном отладке в Windows, но мой пост должен быть модерирован, поэтому я не знаю, когда когда -нибудь я получу ответ

victor_pv
Вт, 02 июня 2015 г., 19:33
Чтобы добавить некоторые в эту ветку, основываясь на работе Роджера и Рика, я написал партию для Windows, которая запускает Texane и GDB после загрузки DFU.
Я уверен, что то же самое можно сделать для загрузки Stlink, я просто не использую этот метод загрузки. Я хочу проверить это немного больше, а затем опубликую партию и измененный файл платформы здесь.

Martinayotte
Вт, 02 июня 2015 г., 21:39
Вы имеете в виду, что после загрузки с помощью dfu-util вы начинаете Texane/ST-UTIL для отладки с GDB ?
Я постараюсь Linxify ваш сценарий, когда он станет доступным, потому что я все еще не получил свой клон Stlink от Китая.

victor_pv
Ср. 03 июня 2015 г. 20:23
Martinayotte написал:Вы имеете в виду, что после загрузки с помощью dfu-util вы начинаете Texane/ST-UTIL для отладки с GDB ?
Я постараюсь Linxify ваш сценарий, когда он станет доступным, потому что я все еще не получил свой клон Stlink от Китая.

Martinayotte
Вт, 09 июня 2015 г., 22:43
@victor, не могли бы вы прикрепить свой пакетный файл здесь ? (Я только что получил сегодня свою Stlink от Китая :) )

Martinayotte
Ср 10 июня 2015 г. 1:39
Я начал играть со своей Stlink сегодня вечером !
Похоже, я прекрасно работаю с платой STM32F4Stamp (F405) с TXEANE/ST-UTIL и GDB, это будет хорошо для моей будущей отладки.
Но попробовал то же самое на моем клоне Maple Mini Baite, ST-UTIL ответил «Stlink-Common.C: неизвестный идентификатор чипа! 0xe0042000 " ... :(
Есть что -то, что я пропустил ? Эти клоны байта действительно используют подлинный чип ? или это ошибка в Техане ?

Рик Кимбалл
Ср 10 июня 2015 г. 1:43
Это потому, что Maple Mini отключает выводы SWD.

https: // github.com/rogerclarkmelbourne/ ... rd.CPP#L48

Вы можете удерживать штифт Boot1 и нажать сброс. Это позволит вам хотя бы войти. Лучшее решение - удалить этот код и никогда не использовать булавки SWD, за исключением отладки.

-рик

Rogerclark
Ср 10 июня 2015 г. 1:46
Мартин

В досках определено.TXT, который включил выводы SWD.

На Maple Mini Builds SWD будет выключен по умолчанию.

У вас есть этот набор в флагах загрузки

-Dconfig_maple_mini_no_disable_debug = 1

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

Рик, мы разместили практически в то же время .. (ты только что победил меня; 0)

Martinayotte
Ср 10 июня 2015 г., 2:02
Рик Кимбалл написал:Это потому, что Maple Mini отключает выводы SWD.
[...]
Лучшее решение - удалить этот код и никогда не использовать булавки SWD, за исключением отладки.

victor_pv
Ср 17 июня 2015 г., 3:25
Чтобы запустить Texane и GDB в Windows после загрузки DFU, я изменил свою платформу.Файл TXT, чтобы иметь новую опцию загрузки, которая скопирована из DFU One, за исключением этой последней строки: tools.maple_upload_gdb.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" "{runtime.ide.path}/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/bin/arm-none-eabi-gdb" "{build.path}/{build.project_name}.elf"

Martinayotte
Ср 17 июня 2015 г., 19:54
Спасибо, Виктор !

Я проверю это, когда у меня появится шанс, и я буду линифицировать сценарий ... ;)

Ciao !

victor_pv
Чт 18 июня 2015 г. 14:37
Посмотрите, что сделал Рик с запуском GDB для Blackmagic Gres.
В последнее время у меня не было много времени, чтобы играть с GDB, но я действительно хотел бы, чтобы это было скорее графическое приложение :(

Martinayotte
Чт 18 июня 2015 г. 14:44
Я тоже хочу получить GDB -графический интерфейс в ближайшее время, потому что я немного ржавым с GDB Cmdline. :?

Martinayotte
Чт 18 июня 2015 г. 14:46
Кстати, ребята, просто чтобы сообщить вам, я играл с OpenOcd с Stlink, и я решил попробовать это также на своем LPC1768.
После того, как я изо всех сил пытался получить первоначальный сброс, я заставил его работать ! Итак, я тоже могу отлаживать свой LPC1768 ! :)

michael_l
Пн 31 августа 2015 г., 8:44 вечера
Рик: Не могли бы вы поделиться своими сценариями для автоматической загрузки & Начните отладку. Спасибо. Также спасибо за отличное руководство.

В другой ветке http: // www.STM32duino.com/viewtopic.PHP?F = 29&t = 522 Я пытаюсь отладка Eclipse, работая с использованием Win32 и OpenOcd с ST-Link на доске Nucleo. Он работает отлично и легко настраивать с плагинами GNU Arm. IDE делает все волшебство с плагином GNU OpenOCD, чтобы подключиться к цели и предоставить сценарии для GDB тоже. Единственная и очень раздражающая проблема в том, что IDE не может найти источник для .Ино! Ржу не могу. Он может найти источники для всего остального, что я тестировал. Я был бы очень рад услышать комментарии, если у вас есть идеи, что попробовать дальше. Я просто чувствую, что я так близок, что еще не хочу сдаваться. Видя ваш скриншот с .Ино -источник дал мне еще немного мотивации, чтобы продолжить. Хорошо, это было в Linux, но в любом случае ... :-) Спасибо.

Рик Кимбалл
Пн, 31 августа 2015 г., 20:48
Вы пробовали добавить каталог, где .Ино живет в вашем пути поиска GDB?

В приглашении GDB вы можете добавить в каталог поиска файлов, используя команду "Directory". Здесь я добавляю каталог эскизов blink_std ... где/mnt/vbox/shared/arduino_stm32rk_sketch - это настройка моего предпочтения Arduino Sketch: (gdb) directory Source directories searched: $cdir:$cwd (gdb) directory /mnt/vbox/shared/Arduino_STM32RK_Sketch/blink_std Source directories searched: /mnt/vbox/shared/Arduino_STM32RK_Sketch/blink_std:$cdir:$cwd (gdb) list setup 17 // the setup function runs once when you press reset or power the board 18 void setup() { 19 // initialize digital pin 13 as an output. 20 pinMode(PC13, OUTPUT); 21 } 22 23 // the loop function runs over and over again forever 24 void loop() {

Рик Кимбалл
Пн 31 августа 2015 г., 21:06
michael_l написал:Рик: Не могли бы вы поделиться своими сценариями для автоматической загрузки & Начните отладку. Спасибо. Также спасибо за отличное руководство.

Mrburnette
Пн 31 августа 2015 г., 23:43
О да, и я забочусь только о Linux. Теперь это прямое заявление! : o

Мне действительно, очень нужно ужесточить и уйти от дерьма M $.


Луча
(MCSE, когда -то...)

Rogerclark
Пн 31 августа 2015 г., 23:57
Мне действительно, очень нужно ужесточить и уйти от дерьма M $. Если бы это было так легко.

Я думаю, что это будет несколько лет (или, возможно, никогда), что я смогу уйти из Windows для работы, так как есть много коммерческого SW, которое работает только в Windows :-(

Однако, если Windows 10 существенно не изменится в следующем году или двух. Я подозреваю, что Windows 7 станет последней ОС MS, которую я буду работать для своего собственного использования, а также для бизнеса.
Если мне нужно использовать Windows 10, со встроенным навязчивым шпионским программ.

ZMEMW16
Вторник 01 сентября 2015 12:16 утра
Что касается времени, мне потребовалось всего 14 лет, чтобы получить официально санкционированный ящик Linux в сети компании.
Я ушел на пенсию 4 недели позже :-)

Первые трещины в стене были
1) Компилятор GNU ADA примерно в 94 году
2) Экономия офиса U $ & Стоимость Windows на установке «что -то», также я должен писать и играть с драйверами устройств Linux

Стивен

Стевех
Вторник 08 сентября 2015 3:39
Поскольку Linux все еще, после всех этих лет, имеет только 1.3% доля настольных компьютеров, она остается отличной для веб-серферов, которые не нуждаются в MS Office или специализированные приложения только для Windows. (Я очень старался использовать альтернативу офиса, но для не тривенных документов, поскольку мы используем в реальной деловой работе, она просто не работает).
И среди моего большого репертуара приложений я много использую, включая встроенные системные инструменты, приложения для финансового управления, Linux и часто, OS X, просто не являются жизнеспособными.

Мне тоже не нравится монополия Microsoft, но некоторые из нас предпочли бы платить 80 долларов каждые 4 года.

ZMEMW16
Вторник 08 сентября 2015 г. 8:36 утра
Стевех написал:Мне тоже не нравится монополия Microsoft, но некоторые из нас предпочли бы платить 80 долларов каждые 4 года.

Rogerclark
Вторник 08 сентября 2015 11:07
Стевех написал:Мне тоже не нравится монополия Microsoft, но некоторые из нас предпочли бы платить 80 долларов каждые 4 года.

Rogerclark
Ср 12 октября 2016 г. 8:06 вечера
Сообщение спама было удалено из этой темы.

Пользователь будет заблокирован.

Рик Кимбалл
Ср 12 октября 2016 г. 8:08 вечера
* пахнет жареным спамом

ZMEMW16
Ср 12 октября 2016 г. 8:10 вечера
Интересно, знает ли его жена и что она думает об этом?

SRP

ArrowMax
Пн 27 февраля 2017 г. 13:42
@Rick kimball
Не могли бы вы снова поделиться своими сценариями для автоматической загрузки & Начните отладку.
Ваш репозиторий GitHub опущен, и я не смог найти его на вашей странице GitHub.

Я хочу перенести этот проект Linux в Mac OS X

Рик Кимбалл
Пн 27 февраля 2017 г. 16:34
Я удалил мой личный GitHub, так как он стал слишком устаревшим, и все, что я хотел изменить, были включены в основной багажник.

Модификации GDB были просто изменения в платформе.TXT и Poard.текст. Тем не менее, эти файлы менялись так часто, что стало больно не отставать и не ломать вещи. Поскольку в этом не было большого интереса, я как бы позволил ему упасть на обочине и не могу найти модификации, которые я сделал.

В платформе.txt я добавил новый инструмент, и его командная строка сделала все волшебство. Для этой командной строки инструментов я начал два XTERM, когда вы сделали загрузку. Один XTRIDE управлял утилитой STLINK (выступая в качестве прокси-сервера GDB), другой XERM RAN RAM-NONE-EABI-GDB. Команда GDB, подключенная к удаленной цели: 4242, стерла вспышку, загрузила новую версию программы, а затем установила временный разрыв на установке, а затем выпустила сброс MON, продолжить.

В доске.TXT я добавил новый пункт меню, в котором использовался новый метод программирования

Если вы используете Linux и BMP в качестве метода загрузки, вы можете использовать эту линию изменение на платформу.текст платформа.изменение TXT написал:инструменты.bmp_upload.загрузить.pattern = xterm -e "{path} {cmd}" -q -cd "{build.Путь} "{upload.verbose} -ex "layout src" -ex "set target -async off" -ex "set inform off" -ex "set mem inactavible -by defail off" -ex "Целевой exted -remote {serial.порт} "-ex" monitor swdp_scan "-ex" attach 1 "-ex" stop "-ex" file {build.Project_name}.ELF "-ex" загрузка "-ex" настройка tbreak "-ex" run "