Перейти к содержанию

    
https://www.google.ru/?q=PlatformIO

Просто нажать ENTER

Да я вчера посмотрел, но так и не понял и зачем нужна эта полуплатная хрень, с непонятной регистрацией, заточенная, как я понял, под ардуино?

 

Поделиться сообщением


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

Ардуино там не сильно причем. Насчет платности не заметил.

Нужна примерно за тем же, что и остальные IDE.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня так и не работает полноценно отладка:

  • во время работы программы не получается остановить выполнение нажатием на кнопку "пауза".
  • во время работы программы не получается установить брейкпоинты. Точнее, на них не происходит остановка выполнения.
  • иногда не выключается с первого раза отладка. Со второго раза отладка останавливается, но к openocd после этого не подключиться - приходится перезапускать openocd.

Через telnet команда halt отрабатывает нормально.

 

Так понял, на все эти проблемы открыты issue на https://github.com/Microsoft/vscode-cpptools

 

STM32f205, gcc-4.8.4, cmake, vs code 1.13.1, openocd-0.10.0, macOS 10.12.5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ардуино там не сильно причем. Насчет платности не заметил.

Нужна примерно за тем же, что и остальные IDE.

Ну если то же самое делается без привлечения лишних сущностей, то вопрос зачем PlatformIO так и не раскрыт... Ну разве что есть желание отправлять телеметрию разработчикам :)

 

У меня так и не работает полноценно отладка:

  • во время работы программы не получается остановить выполнение нажатием на кнопку "пауза".
  • во время работы программы не получается установить брейкпоинты. Точнее, на них не происходит остановка выполнения.
  • иногда не выключается с первого раза отладка. Со второго раза отладка останавливается, но к openocd после этого не подключиться - приходится перезапускать openocd.

Странно у меня все работает, покажите launch.json. Какие версии у Вас VS Code и cpptools? Почему gcc такой старый (очень может быть, что проблема в этом)?

 

Можно в launch.json добавить:

 "logging": 
         {
            "engineLogging":true,
         },

 

И посмотреть, где возникает проблема с обменом между отладчиком и IDE.

 

У меня последние версии VS Code/cpptools и последняя версия gcc с ARM-developer. Проблем с отладкой нет, в последней версии даже пофиксили мелкие неудобства.

 

Есть проблемы по части IntelliSense (точнее новой его реализации), я об этом общался с разработчиками - пока причину не нашли. Впрочем меня и старый вариант IntelliSense вполне устраивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смена версии gcc до 6.3.1 не повлияла на результаты.

launch.json:

{"configurations": [

     {
        "name": "OpenOCD & gdb",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceRoot}/build/Src/Aurora",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": [],
        "externalConsole": false,
        "logging": {
           "engineLogging":false,
           "moduleLoad": true,
           "exceptions": true
        },
        "preLaunchTask": null,
        "osx": {
           "MIMode": "gdb",
           "miDebuggerPath":"/opt/local/arm-toolchain/bin/arm-none-eabi-gdb",            
           "setupCommands": [
                 {"text":"-target-select remote localhost:3333"},
                 {"text":"-interpreter-exec console \"monitor reset halt\""},
                 {"text":"-interpreter-exec console \"monitor continue\""}
            ],
           "launchCompleteCommand": "exec-continue",
           "logging": {"engineLogging":true}

        }
     }
  ]
}

Версии VS Code 1.13.1, ms-vscode.cpptools 0.11.4

Так понимаю, проблема в реализации MIEngine под OSX.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Так понимаю, проблема в реализации MIEngine под OSX.

По всему да (у меня даже чуть старее VSCode 1.12.2 и cpptools 0.11.4, launch.json без существенных отличий от моего). Если в баглисте на cpptools этой проблемы еще нет, то стоит написать. Я писал несколько раз, все исправили довольно оперативно (я правда принимал активное участие в локализации проблем), кроме последней проблемы с новым IntelliSense.

 

Не помню с какой версии, но теперь можно в launch.json setupCommands писать в виде обычных gdb команд, а не mi-команд - как по мне, так удобнее.

 

Кстати поддержка отладчиком Natvis-файлов очень классная вещь.

Изменено пользователем Шаманъ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ну если то же самое делается без привлечения лишних сущностей, то вопрос зачем PlatformIO так и не раскрыт...
Если это еще актуально, platformio отчасти решает некоторые наболевшие моменты по управлению проектом:
  • контроль и версионирование зависимостей
  • простота установки тулчейнов
  • обертки для автодетекта портов программаторов (приятно для разработчиков, и вдвойне приятно для конечных юзеров)
  • у них там есть еще какие-то платные навороты по автоматическому тестированию на реальных железках, но я туда не вникал - не надо
  • ну то что оно сразу умеет во все популярные stm32/avr/esp8266 - не знаю стоит ли выделять, в принципе это много кто умеет.
Если вас устраивает подчеркивать свое "разработческое мастерство", прописывая в репе зависимости субмодулями и ручками устанавливая компиляторы - вполне можно обойтись и без platformio. А если хочется чтобы любой сторонний разработчик с минимальными усилиями поднял среду на любой операционке и не отвлекался на суету - очень удобный вариант. Факстически, после того как откроете в paltformio проект, оно по конфигу само всосет все чего не хватало.

 

Короче, нужность зависит от задач проекта и ваших личных предпочтений. Я перечислил то что бросилось в глаза, а дальше решайте сами. У себя использую, доволен. Правда, не с VScode а с Atom, исторически сложилось.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вышел плагин

https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug

Работает отлично. Я использую jlink. Единственное что раздражает, что всезначнеи в десятичном виде. Но ятак понял это вопрсо не к плагину а к самой vs. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 12/24/2018 at 3:13 PM, Andrey75 said:

Работает отлично.

Я бы не сказал. Я копался в коде - куча ошибок там, MI интерфейс сделан криво, очень криво. Хотел довести до ума, поисправлял некоторые ошибки, сделал частично отображение в шестнадцатеричной, двоичной, восьмеричной системе, но забросил, ибо глюков там очень много и некоторые очень существенные (типа неправильного показа памяти/периферии).

On 12/24/2018 at 3:13 PM, Andrey75 said:

Но ятак понял это вопрсо не к плагину а к самой vs.

Нет, это к плагину.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не сталкивался с проблемами. Наверное просто они у меня не проявлялись.

Может законтрибьютите автору что уже сделали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 1/2/2019 at 11:43 PM, Andrey75 said:

Я не сталкивался с проблемами. Наверное просто они у меня не проявлялись.

К сожалению я стаклкивался, и несколько раз. Пока не понял в чем дело это очень сильно затормозило работу. В итоге вернулся к прежним cpptools.

Копаясь в коде обнаружил очень странное именование переменных в командах посылаемых gdb. Это в ряде случаев приводит к неправильному отображению значений элементов массивов.

В итоге, как по мне, для проектов немного сложнее ""hello world" этот плагин может создать больше проблем, чем решить. Хотя задумка хорошая.

Может законтрибьютите автору что уже сделали?



Это несколько проблематично, т.к. у меня нет всего фреймворка (а устанавливать и настраивать нет времени), чтобы писать на TypeScript и потом компилировать в JavaScript и собирать плагин как положено, поэтому я прямо подредактировал выходной JavaScript (в принципе перенести изменения обратно в исходник на TypeScript не проблема). Т.е. мне нужно будет потратить определенное время, чтобы это сделать, которого у меня нет. Можно в принципе в обсуждении проекта на гитхабе сделать тему и выложить JavaScript файлы - пусть народ допиливает, но терзают меня сомнения, что кто-то будет это делать.

Если бы не фундаментальные проблемы с именованием элементов массивов/струтур в командах отсылаемых gdb, то можно было бы пилить этот плагин и дальше, а так думаю перспективнее приложить усилия к cpptools.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти