Em::Blocks / EmBitz IDE

Есть такая замечательная интегрированная среда разработки для ARM микроконтроллеров — Em::Blocks. Построена она на базе IDE общего назначения Code::Blocks.
На данный момент новая версия с новым названием EmBitz.
Em::Blocks screenshot
Автор, к сожалению, больше уделяет внимания политике, чем чем разработке, но несмотря на некоторые недостатки, эта среда наиболее удобная и быстрая из имеющихся бесплатных и многих платных альтернатив.


Поэтому я выкладываю для скачивания актуальные на момент написания статьи версии:
EmBlocks 2.30 40 MB
EmBitz_0.40 beta 44 MB

Также есть ссылка на Google Drive с дистрибутивами различных инструментов, включая Emblocks и Embitz

Em::Blocks 1.43 patch

В версии Em::Blocks 1.43 появилась новая структура шаблонов для STM32.
Теперь они более грамотно организованы.
В патч-твик я добавил SPL для STM32F10x и STM32F4xx, а также CMSIS 3.0 для STM32 на ядре Cortex-M3 (серия F1 и F2).
Твикер теперь недеструктивно настраивает среду — все изменения легко откатить — оригинальные файлы не изменяются.
Также можно сбэкапить профиль KeyBindings для перехода между версиями.

Замечу, что в пределах major версий папка профиля сохраняется. Напрмиер, для всех версий 1.4x папка будет 1.40.
Скачать R EmBlocks patcher-tweaker v1.2.0.27

Em::Blocks 1.41 patch

Вышла Em::Blocks 1.41

Патч для версий 1.40 и 1.41 как и для всех последюущих версий будет доступен на своей постоянной страничке R EmBlocksPatch.

В этой версии патча я удалил поддержку ColinkEx — пользоваться этим отладчиком удобно только под CooCox IDE — у них неполноценный commandline API — нужно много чего править в конфиг файлах отладчика для прошивки и отладки.

Если кому-то она нужна, то добавляется очень просто. Можно взять из предыдущей версии патча все, что для нее нужно.

По просьбе читателей добавил выбор вручную папки .config файла (для тех кто на XP)

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,
    остальные можно раскомментировать по необходимости

Читать далее

Em::Blocks 1.31 patch

Вышла Em::Blocks 1.31, и я как обычно выпустил для нее патч. Функционал тот же, но с учетом изменений в новой версии. Ничего не ломает, только добавляет те же плюшки, что и обычно. Немного заодно обновил шаблоны проектов.

Установка

Ставится как обычно:

  • Устанавливаем EmBlocks 1.31
  • Копируем содержимое архива с патчем в папку к EmBlocks с заменой файлов
  • Запускаем один раз среду, чтобы она создала свой профиль
  • Запускаем REmBlocksToolsPatch.exe, жмем Save Updated Config, чтобы добавить пункты меню для прошивки с помощью ST-Link, ST-Link /V2 и CoLinkEx.

Готово, можно пользоваться.

Em::Blocks 1.30

Вышла Em::Blocks 1.30, и я как обычно выпустил для нее патч. Функционал тот же, но с учетом изменений в новой версии. Ничего не ломает, только добавляет те же плюшки, что и обычно. Немного заодно обновил шаблоны проектов.

Обновления собственно версии 1.30

  • Live watch variables ( ‘L’ ive and ‘U’ pdate as shortcuts)
  • Compiler options on file level
  • Debug session saving in .eds file (option)
  • GDB 7.6 as debugger (fixes macro loop -g3 )
  • STLinkGDB supports F429/F439
  • Fix: EmBlocks Bare-metal size reports
  • Fix: Long time before mixed mode assembler view is loaded
  • Fix: Switch frame in callstack is working ( ‘alt-‘ mouse click)
  • Fix: Crash new project while debug session is active
  • Fix: Adding watches dialog appears after OK.
  • Fix: Debugger memory window first line without address field

Установка

Ставится как обычно:

  • Устанавливаем EmBlocks 1.30
  • Копируем содержимое архива с патчем в папку к EmBlocks с заменой файлов
  • Запускаем один раз среду, чтобы она создала свой профиль
  • Запускаем REmBlocksToolsPatch.exe, жмем Save Updated Config, чтобы добавить пункты меню для прошивки с помощью ST-Link, ST-Link /V2 и CoLinkEx.

Готово, можно пользоваться.

Дорабатываем зарядник Turnigy Accucel 6

Многим знакомо универсальное зарядное устройство iMax B6 и его клона Turnigy Accucel 6.

Оно умеет заряжать

  • Литий-полимерный LiPo и литий-ионные LiIon аккумуляторы
  • Никель-кадмиевые NiCd, столь любимые производителями электродрелей
  • Никель-металлогидридные Ni-Mh, идущие в комплекте с недорогими радиуправляемыми моделями
  • Свинцовые Pb, которые можно найти в автомобиле, мото, UPS и много где еще.

Стоит недорого, принимает питание 11-17В от БП или автомобильного аккумулятора, позволяя заряжать прямо в поле.
Но это еще не все. Зарядник можно подключить к компу и получить наглядные графики зарядки/раздрядки аккумуляторов, наглядно оценив на графике, в каком диапазоне напряжений сосредоточена основная часть заряда, как аккумулятор реагирует на разные зарядные и разрядные токи, насколько проседает напряжение под нагрузкой и много чего еще интересного.
Вот только с завода эта зарядка уже пару лет идет без такой возможности. Производитель пожадничал и не поставил пару микросхем и копеечных элементов, а производитель iMax B6 вообще шнурок и софт продает отдельно по цене сопоставимой с самой зарядкой.
Будем исправлять

Em::Blocks 1.20

Вышла Em::Blocks 1.20, в которой довольно много вкусностей:

  • Semihosting as library option for EmBlocks Bare-metal ARM
  • Semihosting checkbox in debug interfaces JLink and STlink
  • Live data implemented on memory watch and debugger variable tooltip.
  • New STlinkGDB server with live data and semihosting support
  • Syntax highlight on GNU linker scripts
  • Yagarto toolchain replaced by Generic GCC (Yagarto project is cancelled)
  • C++ library linker option and C++ compiler options added
  • Make file tool entry is replaced by CPP tool entry.
  • Device list updated for JLinks
  • STmicro project wizard is changed so that the debug interfaces are preconfigured at the beginning.
  • Breakpoint on-the-fly is now working
  • Run to main() is working smoothly
  • Pre-compiled headers is supported
  • File manager plugin added to the installation package
  • EnergyMicro project wizard is using the preinstalled header files from EM instead of copying all the files with the wizard.
  • Project wizard can also use ZIP archive as template storage.
  • Bug fix STmicro project wizard
  • Bug fix EnergyMicro project wizard
  • and a lot of minor fixes.

В связи с этим я сделал новую сборку с версией 1.20
Читать далее

EmBlocks — IDE для STM32

Что нужно для разработки на основе микроконтроллера?

Как минимум сам микроконтроллер. А лучше какую-нибудь плату с минимальной обвязкой к этому микроконтроллеру.
Но МК без программы — это просто кусочек кремния с вкраплениями металла. А для программирования микроконтроллера нужна среда разработки. Можно, конечно, обойтись набором утилит в стиле Unix-way, когда в командной строке запускаются компилятор, линковщик, вручную пишется скрипт make, а редактирование исходных текстов выполняется в каком-нибудь текстовом редакторе. Но лично я предпочитаю работать с комфортом. Поэтому я стал искать интегрированную среду разработки. Она должна:

  • Иметь удобный редактор с подсветкой синтаксиса С/С++
  • Уметь находить объявления функций, переменных и констант в других файлах.
  • Автоматически генерировать шаблон проекта.
  • Иметь возможность настраивать горячие клавиши для различных действий.
  • Иметь интерфейс к отладчику.
  • Быть быстрой, чтобы комфортно работать на ноутбуке.
  • Очень желательно быть бесплатной или недорогой.

Я выбрал Em::Blocks — это IDE, построенная на основе Code::Blocks, но адаптированная для embedded разработки. То есть изначально предназначенная для разработки встраиваемых систем.

EmBlocks
Она бесплатная, удовлетворяет всем перечисленным требованиям и очень гибко настраивается.
Описание и архив настроенной IDE