Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Eclipse plug-in для Sming

Тема в разделе "Sming Open Source Framework", создана пользователем sharky, 9 апр 2015.

  1. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Всем привет!
    -----------------------------------------------------------
    ВАЖНО: Перед установкой свежей версии из ecle.ploys.org нужно снести старую вручную!

    Отрефакторил структуру, настроил деплои, плагин теперь лежит по адресу:
    В эклипсе Help -> Install new software...
    Указать http://ecle.ploys.org/ в качестве сайта в графе "Work with"

    Домен только прописал, может занять некоторое время на апдейт днсов
    -----------------------------------------------------------

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

    Так-как раньше плагины под эклипс не писал, то начать решил с простого: скана ком-портов, выбора на какой заливать, и выбора скорости порта для прошивки. Но хотелось бы заранее получить фидбэк в виде списка хотелок к функциональности этого плагина, чтоб заранее знать какие темы копать.

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

    Прототип возможно будет уже сегодня-завтра, выкину на гитхаб.

    Итак краткий список текущих идей:
    1. Управление ком портом для прошивки
    2. Настройка местоположения СДК
    3. Автоскан библиотек, аля как в ардуино ИДЕ

    Милости прошу дополнять хотелками.

    WORKLOG:

    05.05
    Вернулся из отпуска, спасибо за фидбэк.

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

    29.04
    Проба пера с деплоем и апдейтсайтом плагина:

    В эклипсе Help -> Install new software...
    Указать http://eclipse.ploys.org/ в качестве сайта в графе "Work with"

    ---
    Базовый терминальчик завершен. Можно пробовать.
    Порты автоматом сканит при тыке на комбо выбора порта.
    Получает/отправляет, лампочками мигает, параметры порта можно менять на лету, свитчи пинов RTS/DTR работают.

    Гитхабовый тайтл маленько причесал, тудушки накидал и скриншотик.
    Перехожу к настройкам билда/флэша проектов, начну со сминговых.

    Хотя, пожалуй, для начала разберусь как плагины дистрибьютить, чтоб можно было просто устанавливать и пользоваться без лишних эклипсовых приблуд аля PDE.
     
    Последнее редактирование: 7 май 2015
    pvvx, Victor и JustACat нравится это.
  2. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Ммм:
    1) создание проекта по примеру (копирование с внесением изменений во все нужные файлы). То есть, есть у нас пример Basic_Serial - жмем на нем некую кнопку, указываем новое имя проекта, и у нас новый проект с этим именем, но по содержанию как Basic_Serial
    2) создание чистого пустого проекта. (тоже что и 1, в принципе, но за основу нужно взять какой-то совсем пустой пример)
    3) по работе ком-порта хотелось бы полной автоматики на 3 варианта:
    а) при запуске прошивки, у нас оно прошивается автоматом и все
    б) при запуске прошивки прошивается, и затем сразу открывается окно встроенного терминала (на нужной скорости конечно), чтобы не пропустить ничего, что ESP выплюнет в лог
    в) при запуске прошивки прошивается, и затем сразу открывается окно некоего внешнего терминала (своей какой-то программы), в идеале чтобы оно закрывалось (убивалось) при новом запуске прошивки

    Ну и при работе с makefile и библиотеками там надо разбираться, как я понял, там в makefile прописываются все пути к библиотекам, если новую докинул библиотеку, то надо к ней путь прописывать. Было бы неплохо как-то подстановку путей ко всем библиотекам в некоей папке делать автоматом при компиляции (чтобы оно подставлялось в команду makefile).

    Вообще я не в курсе, как это все в эклипсе устроено и не знаю, можно ли, но в идеале конечно было бы здорово, чтобы настройки этих всех библиотек, скорости, номера порта, пути к буту и т.п. были не в макефайле, а в настройках среды. А то так для каждого проекта приходится ручками при необходимости все настройки в файле менять. Не то, чтобы это было плохо, но неудобно конечно.
    А так, сделал какие-то общие настройки по путям к библиотекам, порту и скорости прошивки (+ скорости терминала, лучше отдельно, т.к. они могут быть разные), пути к буту для прошивки последнего, возможно какие-то еще настройки типа: "прошивать blank.bin" или "прошивать чего-то-там-defaults.bin" при каждой прошивке.
    В общем, много всего придумать можно :)
     
    Последнее редактирование: 9 апр 2015
  3. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Спасибо за ответ.

    По сути оно так и будет в первом варианте, суть проста: в мэкфайле указываем переменные, плагин эти переменные собственно сетит.
    Без плагина их сейчас можно передать из окружения ОС или дописыванием параметра в диалоге настройки билда там где билд-команда,
    типа так: mingw32-make.exe -f ${ProjDirPath}/Makefile COM_PORT=COM4, пробовал - работает.

    Мэйк я хочу на 2 разделить, общая часть которая не меняется нигде практически и тянется одна на все проекты для определенного типа прошивки (сминг например), и проектные мейкфайлы, почитал маленько по этой теме, они умеют инклюдиться.
     
    Victor и JustACat нравится это.
  4. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Немного разобрался, продвинулся.
    На данный момент очень сырое, частично работает терминальчик, шустренько так набирает вес.

    Репа с исходниками тут: https://github.com/ploys/eclipse-embed-plugin

    Чтоб запустить из исходников нужно следующее:
    http://gyazo.com/e2b4e070f6b85496d19684c0a94b38fc

    Потом импортим проект и открываем plugin.xml, в редакторе будет кнопка запустить.
    Выглядит это как-то так: http://gyazo.com/ee668398ddae3517516c68c175eb301b
     
    JustACat нравится это.
  5. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Какой функционал уже работает? Оно умеет передавать параметры в make, да? (ком порт и т.п.)
     
  6. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Еще нет. Завтра добью базовый ф-л терминала, возьмусь за билд-флоу
     
    JustACat нравится это.
  7. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    День прошел довольно продуктивно, базу терминала почти закончил, скролится, лампочками моргает, параметры порта понимает, осталось отправку добить. После займусь билд циклом. По наитию допилю всякие плюшки к терминалу типа хекса, кодировок итп, хотелки можно сюда кидать.
    На гитхабе свежак, кто хочет может потестить.

    Всем хорошего настроения и стабильного питания.
     
    JustACat нравится это.
  8. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    sharky, прекрасно, лично я больше всего жду билда (а для начала просто выбора параметров), т.к. мне самому этого больше всего не хватает сейчас.
     
  9. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Постараюсь завтра прототипчик нарисовать. Ты PDE поставил уже? Плагин из исходников запускается у тебя?
     
  10. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Ммм, возможность дернуть DTR и RTS UART-порта вручную. Причем даже если UART отключен (тогда при дергании UART подключается, ножка дергается, UART отключается - это для RTS - для сброса ESP).
    Автовключение терминала сразу после удачной (без ошибок) прошивки, если установлена соответствующая галочка где-то (ой, как не хватало всегда этого в ардуино для отладки) и автоотключение и переход на консоль сборки перед прошивкой.
     
  11. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Дерги пинами предусмотрены и завтра уже будут работать. Только автооткрытие порта при дерге пином не очень гуд идея. Их можно поставить в какое-то состояние, потом открыть порт, он при открытии учтет.
     
  12. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    С билдом разберусь - запилю. Думаю самое сложное здесь будет узнать успешно ли все собралось :)
    Хотя можно по галке постоянно терминал открывать после флэша на пепяку.
     
  13. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    ну может, я просто это все для сброса обычно использую. Чтобы физическую кнопку еще не городить дополнительно :) А для сброса чем меньше надо нажимать - тем лучше.
    А так получается: подключил UART, RTS зажал, RTS отпустил и не забыть еще отключить обратно UART (вдруг в тестируемой схеме он используется для связи с другим МК).
    Либо: зажал RTS, подключил UART, отключил UART, а RTS отпустить забыл, и думаешь потом - почему при подключенном UART ESP не стартует :-Р
    Но это я так, просто высказываю возможные use-case.
    Возможно, стоит в таком случае сделать прямо отдельную горячую клавишу или кнопку: Reset (с возможностью ее включать/отключать), которая как раз и будет делать такую именно последовательность: подключили UART (если не был подключен), RTS зажали, RTS отпустили, отключили UART (если не был подключен в самом начале)?
    А по логу из консоли не получится? Этот лог читать из плагинов нельзя?
    Да, как вариант, но все же при неудачной прошивке (либо сборке) открывать терминал (тем более, если при этом прячется консоль) бессмысленно.
     
  14. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Ну пинодрыг там сверху и светится зеленым когда включен. Ткнул его и для ресета connect/disconnect на порт.
    Позже мож макросы сделаю для всяких кастомных задач.

    Ну и панельку терминала можно рядом с консолью повесить и не прятать вовсе.

    Попробуй поставь плагин, потыкай.
     
  15. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    sharky, с удовольствием поставлю и потыкаю, но пока времени нет. Работа. (еще и модераторством нужно немножко хоть заниматься :-Р )
     
  16. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    sharky, А TCP терминал в дальнейшем планируется? :) А то я обновление по воздуху реализовал, в ближайшем будущем думаю и терминальную сессию по TCP реализовать (типа Telnet). Так что было бы вероятно удобно все в одом месте иметь (есть UART работаем по нему, поднялось WiFi соединение отсоединили провод, продолжаем по воздуху).
     
  17. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Никто не мешает наворотить чего угодно. Сейчас главное сделать модульно все, чтоб потом можно было расширять. Немного разобрался в процессе деплоя плагинов завтра постараюсь выложить чтоб можно было ставить/обновлять через help-> install software без танцев с бубном.
     
  18. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Прекрасная идея, я думаю это сильно упростит инсталяционный процесс.
     
  19. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Попробуй бинарником поставить, я там написал как в верхнем сообщении. Отпишись получилось/нет если нет то какие ошибки выдает.
     
  20. sherr

    sherr Читатель

    Сообщения:
    36
    Симпатии:
    6
    Можно, я отпишусь. Eclipse Luna, JRE 1.8.025 кажется, Debian 32byte. Поставилось без проблем, терминал пробовал пока только на приём -
    работает, но изредка подтормаживает и добавляет пробелы . Хорошее начало, так держать !
     
    JustACat нравится это.

Поделиться этой страницей