EmBlocks — отличная IDE для embedded разработки на С/С++.
Она довольно часто обновляется, но в ней пока сохраняется несколько недостатков, которые я для себя исправил и объединил в твикер.
Автор очень активно реагирует на предложения и с новыми версиями функционал моих патчей и твиков часто включается в состав дистрибутива Em::Blocks.
На этой странице я буду выкладывать свежую версию.
Текущия версия твикера совместима с EmBlocks 2.xx
Как пользоваться:
- Распаковать содержимое архива в любую папку.
При установке патча на свежую версию запустите EmBlocks хотя бы один раз, чтобы она создала свой файл настроек. - Затем из папки EmBlocks запустить REmBlocksToolsPatch.exe.
- Нажмите 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 EmBlocksPatch v1.2.0.87 — EmBlocks 2.00+
- R EmBlocksPatch v1.2.0.27 — EmBlocks 1.30+
- R EmBlocksPatch v1.1.0.23 — EmBlocks <1.30
>>Изменил настройку по-умолчанию для отладчика ST-Link с JTAG на SWD
наверное не все пользуются ST-Link., как вы думаете?
Уверен. Но для проектов на STM32 это оптимальный вариант. Дешев, быстр, поддерживает все необходимые функции.
—
Если у вас XP или почему-то не загружается конфиг, вы можете выбрать .conf файл вручную сняв галку «Default .conf directory» и нажав Load config.
—
при выборе файла ругается: «Системе не удаётся найти указанный путь. Line: 0»
У меня нет XP, чтобы проверить. Сделай скриншот.
с помощью процмона выяснил, что прога пытается патч искать тоже в этой же папке, что и конф.
Когда подсунул туда патч, прога опять начала ругаться, где видно, что она также ожидает найти папку патч в папке «програм файлс-емблокс». Засунул туда тоже.
После этого прога меняет конфиг, но всё равно ругается — «акцесс виолейшн реад оф адрес0000000».
После создания проекта раскомментарены две строчки:
#include «stm32f10x_gpio.h»
#include «stm32f10x_rcc.h»
видимо, всё же отработало.
Кнопка с заменой путей компилятора — не работает (ничего не происходит), да и путь по умолчанию захардкоден.
Исправил, скачай обновленную версию
Чем 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 и раскладка горячих клавиш актуальна в патче. Она будет работать по идее.
При нажатии 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?
насколько я знаю — нет. они конструктивно отличаются. Но ST-Link V2 в китае с доставкой в Москву стоит от 6 до 25 баксов примерно.
К тому же можно купить STM32F4 discovery — там ST-Link v2 встроен.
Здравствуйте. А возможно ли добавить в EmBlock перемещение строк с помощью горячих клавиш как например в emIDE — ALT+UP перемещает строку вверх, ALT+DOWM перемещает строку вниз. Пробовал подсунуть файл resources.zip от emIDE такие пункты в меню Edit -> Special commands -> Line появляются, но не работают. Т.е. такой функционал не реализован. Подскажите где еще копать, чтобы его добавить. Я так понимаю это можно сделать с помощью скриптов самого EmBlock/
Я не разработчик EmBlocks. Поэтому такие вопросы лучше задать на форуме EmBlocks.
На оффсайте уже EmBlocks 2.10. Совместим ли твикер EmBlocksPatch v1.2.0.87 с этой версией, или он только для версии 2.00. Если только с ней, то где ее скачать не подскажете? Спасибо.
С 2.10 не проверял, но с большой долей вероятности да.
Я только вернулся из путешествия по Беларуси и поэтому был не на связи практически.
А можно ли из уже установленной программы +ваш твикер сделать portable версию?