R EmBlocks Patch-Tweaker

EmBlocks — отличная IDE для embedded разработки на С/С++.
Она довольно часто обновляется, но в ней пока сохраняется несколько недостатков, которые я для себя исправил и объединил в твикер.

Автор очень активно реагирует на предложения и с новыми версиями функционал моих патчей и твиков часто включается в состав дистрибутива Em::Blocks.
На этой странице я буду выкладывать свежую версию.
Текущия версия твикера совместима с EmBlocks 2.xx

R EmBlocks patch-tweak V1.2.0.87

Как пользоваться:

  1. Распаковать содержимое архива в любую папку.
    При установке патча на свежую версию запустите EmBlocks хотя бы один раз, чтобы она создала свой файл настроек.
  2. Затем из папки EmBlocks запустить REmBlocksToolsPatch.exe.
  3. Нажмите Load config, затем Tweak Em::Blocks — программа запишет измененный конфиг на место.

В файле «patch.conf» содержится ветка <tools> вставки в конфиг, программа загружает его и позволяет отредактировать пути к ST-LINK_CLI.exe. Если отредактировали, нажмите Replaсe Tools path перед сохранением конфига.

Если у вас XP или почему-то не загружается конфиг, вы можете выбрать .conf файл вручную сняв галку «Default .conf directory» и нажав Load config.

Запустите EmBlocks и проверьте, что в меню Tools появились нужные пункты.

Патч можно применять как на свежеустановленной версии, так и при апгрейде.

Возможности версии v1.2.0.87

  • Все изменения недеструктивны
  • Шаблоны проектов и скрипты помещаются в профиль пользователя, не изменяя стандартные шаблоны EmBlocks, их всегда можно удалить.
  • Любую часть патча можно отменить сняв галочку
  • Возможность сделать бэкап профиля KeyBindings с именем RaJa
  • Местоположение EmBlocks определяется из реестра.
  • Файл конфигурации EmBlocks по умолчанию загружается из профиля пользователя, но сняв галку можно выбрать вручную.
  • Папка конфигурации предлагается автоматически по версии установленного EmBlocks

Функционал Templates&scripts патча (в версии Em::Blocks 2.xx можно не использовать):

  • Шаблоны проектов STMicro изменены:
  • На вкладке выбора процессора теперь две галки для генерации .HEX файлов
  • Create hex file (Release target) (стандартная)
  • Create hex file (Debug target) (я добавил для прошивки с STLink Utility CLI)
  • Добавлена галка для включения SPL в состав проекта
  • Изменил настройку по-умолчанию для отладчика ST-Link с JTAG на SWD
  • В Project->Build options->defines добавлено (если выбрана соответствующая галка):
    • USE_STDPERIPH_DRIVER
    • путь .\SPL к библиотеке «STM32 Standard Peripherals Library»
  • Шаблоны проектов описанного мной типа немного изменены.
  • SPL есть для STM32F10x, STM32F4xx
  • CMSIS 3.0 для Cortex-M3
  • В шаблоне проекта файл stm32f10x_conf.h в папке Inc
  • В состав проекта в папке SPL включена Std Periph Library v3.5.0,
    для подключения любого модуля достаточно раскомментировать соответствующую строку:
  • В stm32f10x_conf.h по умолчанию сразу раскомментированы :
    stm32f10x_gpio.h и stm32f10x_rcc.h,
    остальные можно раскомментировать по необходимости

  • Изменения в структуре EmBlocks
  • Утилита для добавления в пустое меню Tools трех утилит для прошивки с помощью ST-Link и ST-Link/V2.
  • Добавление KeyBindings

Что дают изменения:

  • Проект готов к прошивке сразу после создания визардом
  • Удобные горячие клавиши прошивки

Скачать

R EmBlocks Patch-Tweaker: 24 комментария

  1. >>Изменил настройку по-умолчанию для отладчика ST-Link с JTAG на SWD

    наверное не все пользуются ST-Link., как вы думаете?

    • Уверен. Но для проектов на STM32 это оптимальный вариант. Дешев, быстр, поддерживает все необходимые функции.


  2. Если у вас XP или почему-то не загружается конфиг, вы можете выбрать .conf файл вручную сняв галку «Default .conf directory» и нажав Load config.

    при выборе файла ругается: «Системе не удаётся найти указанный путь. Line: 0»

    • с помощью процмона выяснил, что прога пытается патч искать тоже в этой же папке, что и конф.
      Когда подсунул туда патч, прога опять начала ругаться, где видно, что она также ожидает найти папку патч в папке «програм файлс-емблокс». Засунул туда тоже.
      После этого прога меняет конфиг, но всё равно ругается — «акцесс виолейшн реад оф адрес0000000».
      После создания проекта раскомментарены две строчки:
      #include «stm32f10x_gpio.h»
      #include «stm32f10x_rcc.h»

      видимо, всё же отработало.
      Кнопка с заменой путей компилятора — не работает (ничего не происходит), да и путь по умолчанию захардкоден.

  3. Чем EmBlocks отличается от обычного CodeBlocks кроме наличия визарда? Мне нравится эта среда разработки, но я не хочу ставить отдельно еще одного клона. Я хочу использовать CodeBlocks для программирования STM32. Можно ли как-нибудь перенести все возможности EmBlocks в обычный CodeBlocks?

    • Это не клон. EmBlocks основана на CodeBlocks, но уже довольно прилично отличается.
      Функционал можно изучить на сайте Emblocks.
      Из важного:
      Тесная интеграция с компилером благодаря внесенным в него изменениям, встроенная поддержка дебаггеров ST-Link, J-Link. При отладке можно просматривать содержимое переменных при наведении мышкой и вообще по отладке он существенно превосходит CodeBlocks. Настройка targets и опций компилера существенно удобнее и шире. Собственно, везде чувствуется, что CodeBlocks заточен под разработку на С++ для PC и использование всяческих фреймворков, а для микроконтроллеров большая часть его возможностей просто неприменима.
      У меня установлены обе среды, в CodeBlocks я пишу для AVR и просто куски кода на C/C++. Для STM32 разработка удобнее в Emblocks. Я бы и для AVR писал в EmBlocks, но нет готовых визардов, в одной из версий я переносил часть их, но потом потерял эту версию.
      Честно говоря для Embedded разработки мне EmBlocks нравится больше. Есть версия CodeBlocks специально подготовленная для разработки под STM32 и Arduino, она основана на CodeBlocks 12. У меня она была установлена — неудобно. Чуть лучше, чем обычный CodeBlocks, но все равно не то. Все наколеночное. Если устраивает UNIX way с его vim и консольной разработкой — CodeBlocks вполне подойдет. А если хочется удобств — лучше поставить EmBlocks и настроить под себя.

      • Спасибо за ответ. А в EmBlocks сохранились все возможности CodeBlocks для программирования PC на С++?

        • Сомневаюсь. Вообще специализированная IDE всегда лучше. Единственные, кому удалось сделать универсальную IDE — Embarcadero (бывшая Borland). Но на Pascal или Delphi для МК написать ничего не удастся, к сожалению.
          Как IDE общего назначения Codeblocks слабовата тоже — RAD средств нету. Автодополнение кривоватое. Интеграция с компилером и дебаггером куда хуже чем в VS или RAD Studio. По сравнению с миром unix, конечно, подарок. Но до развитых IDE не дотягивает. Единственный плюс — нативная, а не на Java.

          • На оф.сайте доступна версия 1.45. Она совместима с патчем или искать 1.43?

          • Для новой версии патч уже менее актуален. Я общаюсь с автором и многие мои доработки он включил в новую версию. Осталось только меню Tools и раскладка горячих клавиш актуальна в патче. Она будет работать по идее.

  4. При нажатии Load hex начинается загрузка, но потом выскакивает ошибка Unable to open file! Что это может означать? Я установил EmBlocks и ничего не менял, патч не ставил.

    • Смог установить патч. Теперь другая проблема. Не работает отладка.
      Building to ensure sources are up-to-date
      Build succeeded
      Selecting target:
      Debug
      Adding file: bin\Debug\HelloWorld.elf
      Adding source dir: C:\EmBlocks_Projects\HelloWorld\
      Adding source dir: C:\EmBlocks_Projects\HelloWorld\
      Starting debugger:
      done
      Setting breakpoints
      Debugger finished with status 1

      • К сожалению, тут никакой инфы нет. Какой отладчик используете? ST-Link, или другой? Драйвер отладчика стоит? В настройках Debug проекта правильно выбран отладчик?

        • Использую плату STM32VLDiscovery. Там стоит отладчик ST-Link первой версии. Драйвер стоит, отладчик выбран ST-Link.
          При попытке отладки появляется окно «Debug error: Debug Server is closed/terminated, debug session will stop.»

          • С ней встроенный дебаггер работать не будет. Он работает только с второй версией — первая урезанная. Есть возможность поставить другой драйвер, чтобы она виделась не как mass storage, а как дебаггер, тогда работать будет. Но не будет работать с ST-Link Utility и с CooCox. если это не пугает — дравер Zadig в помощь.

          • насколько я знаю — нет. они конструктивно отличаются. Но ST-Link V2 в китае с доставкой в Москву стоит от 6 до 25 баксов примерно.
            К тому же можно купить STM32F4 discovery — там ST-Link v2 встроен.

  5. Здравствуйте. А возможно ли добавить в EmBlock перемещение строк с помощью горячих клавиш как например в emIDE — ALT+UP перемещает строку вверх, ALT+DOWM перемещает строку вниз. Пробовал подсунуть файл resources.zip от emIDE такие пункты в меню Edit -> Special commands -> Line появляются, но не работают. Т.е. такой функционал не реализован. Подскажите где еще копать, чтобы его добавить. Я так понимаю это можно сделать с помощью скриптов самого EmBlock/

  6. На оффсайте уже EmBlocks 2.10. Совместим ли твикер EmBlocksPatch v1.2.0.87 с этой версией, или он только для версии 2.00. Если только с ней, то где ее скачать не подскажете? Спасибо.

    • С 2.10 не проверял, но с большой долей вероятности да.
      Я только вернулся из путешествия по Беларуси и поэтому был не на связи практически.

  7. А можно ли из уже установленной программы +ваш твикер сделать portable версию?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.