Я обещал поделиться своей настроенной средой Em::Blocks.
Выполняю обещание.
Что такое Em::Blocks?
Это IDE на основе Code::Blocks — кросс-платформенной быстрой среды разработки со встроенным скриптовым языком и очень гибкой настройкой, ориентированной под С/С++ разработку. В среде есть встроенные шаблоны для кучи различных случаев и возможность подключать любые компиляторы.
EmBlocks в отличие от CodeBlocks не кросс-платформенная, она существует только под Windows.
Зато вместе с ней поставляется специальная версия CodeSourcery тулчейна, которая позволяет плотнее интегрировать тулчейн с IDE. Версия в комплекте всегда свежая.
Достоинства EmBlocks
- быстрая, т.к. написана в native коде
- расширяемая и хорошо автоматизируется с помощью скриптов
- шаблоны проектов можно настроить на свой вкус
- можно самому изменить диалог мастера создания проекта
- не требует установки — можно носить с собой на флешке и легко перенести с настройками на другой комп
- из коробки поддерживает отладку через ST-Link и J-Link
- бесплатная
- неплохо поддерживается на собственном форуме
Я работаю чаще всего с STM32F103C8, STM32F103VE, STM32F100RB, поэтому и шаблоны проектом модифицировал под них. Но адаптировать под другие процессоры никакой сложности не составляет. Если будут конкретные вопросы — напишу как.
Я настроил ее под себя:
- Отредактировал шаблоны проектов под STM32F10x medium density, high density, medium density value line
- В шаблонах заменил структуру проекта разложив по папкам stm_lib, cmsis, cmsis_boot и Src.
- Обновил версию cmsis в шаблоне проекта до версии 3.0
- Добавил поддержку ColinkEx debugger (она не очень гибкая, но работает)
- Добавил выбор процессора в мастере создания проекта для прошивки с помощью ColinkEx
- Добавил в меню Tools пункты »Flash w ColinkEx», «Flash w ST-Link/V2″
- Изменил настройку по-умолчанию для ST-Link отладчика с JTAG на SWD
- Добавил создание HEX файла для Debug target (стандартно только для Release)
- Добавил в build options USE_STDPERIPH_DRIVER
- Добавил в search directories stm_libsrc, stm_libinc, .STM32_USB-FS-Device_Driversrc, .STM32_USB-FS-Device_Driverinc, cmsis, cmsisboot
- Исправил в gcc_arm.ld размер флеша и памяти для STM32F10x_MD серии на значения для STM32F103C8
Что-то менял еще по мелочам, но уже не помню.
Для того, чтобы начать работать с EmBlocks достаточно распаковать архив и запустить emblocks.exe.
Если кому не нравятся внесенные мной изменения — оригинал лежит на сайте разработчиков. Оригинальный splashscreen тоже лежит внутри архива.
Что дают изменения:
- Проект готов к прошивке сразу после создания визардом
- Есть все, что нужно, для того, чтобы поморгать светодиодом
- Проект рассчитан на использование STM32 StdPeriph Library (по мере необходимости добавляем модули к проекту в папку stm_lib, архив в конце статьи)
- Для работы с USB-FS библиотекой нужно всего лишь кинуть ее в каталог проекта и добавить в проект. (архив с библиотекой в конце статьи)
- Свежий компилер не ругается на оптимизацию благодаря новой версии CMSIS
- Легко перенести проект из CooCox IDE
- Можно использовать CoolinkEx, который довольно популярен у нас и можно купить в России
Наверняка у каждого из нас есть свои тонкости в разработке, поэтому охватить все их я не смогу. Я собираюсь рассказать как пользоваться всем этим в следующих записях. Задавайте вопросы, я постараюсь их учесть при описании.
Вообще у меня есть мысль снизить порог входа в разработку под STM32, облегчив старт набором удобных инструментов. Поставил и через 2 минуты у тебя работает Blink.
Архив EmBlocks и библиотеки: STM32F10x StdPeriph Library, STM32 USB-FS-Device driver я выложил у себя на сайте.
Просьба — не положите
Автор: RaJa
Подскажите, как обновить CMSIS в последнем Em::Bitz? И как добавить поддержку STM32F7/H7 ?
Спасибо.