Обновление для IDE EmBitz 1.11
На официальном форуме появилось обновление для IDE EmBitz 1.11. Оно включает в себя расширенный список поддерживаемых микроконтроллеров STM32, обновленные версии библиотек CMSIS, SPL, HAL и LL, а также текущую версию компилятора gcc-arm-none-eabi-9–2020-q2-update и GDB сервер EBlink, необходимый для прошивки и отладки микроконтроллеров.
Список поддерживаемых микроконтроллеров STM32 значительно увеличен. Их число превышает тысячу и я ограничусь перечислением семейств МК. Это STM32F0, STM32F1, STM32F2, STM32F3, STM32F4, STM32F7, STM32H7, STM32L0, STM32L1, STM32L4, STM32L4+, STM32L5, STM32G0, STM32G4 и STM32WB.
На данный момент это все существующие модели STM32 исключая семейство STM32MP1 (гибрид Cortex-A7 и Cortex-M4).
В этом обновлении интерфейс мастера создания проекта немного изменился по сравнению в оригинальным. Вкратце рассмотрим основные шаги.
Проект создается из меню File → New → Project.
Обновление добавляет тип проекта «STM32». Выбираем его и приступаем к созданию проекта нажав на кнопку Go.
Следующим шагом требуется ввести имя проекта и выбрать место расположения на диске.
В следующем окне предлагается выбрать компилятор и настроить цели сборки. Оставляем значения по умолчанию.
После предлагается выбрать семейство МК. Для теста выберем STM32F4.
Далее следует выбрать серию. У меня в наличии отладочная плата с STM32F407ZET6 и поэтому выбрал STM32F407_417.
В следующем окне нам предлагается выбрать в списке модель микроконтроллера. Как вы наверное уже догадались я выбрал STM32F407ZE.
Кратко о других настройках.
Опция «Add DebugRAM target» добавит в проект отладочную цель сборки с выполнением кода из ОЗУ. Это не только уменьшает износ Flash-памяти, но и ускоряет запуск отладки за счет отсутствия затрат времени на стирание Flash-памяти и запись в нее. Но в микроконтроллере должно быть достаточно ОЗУ для кода и данных.
В списке «Debugger output» выбирается метод вывода отладочных сообщений функцией printf или ей подобной. Возможно использование «Semihosting» или «EB monitor».
В списках ниже задается тип проекта (C или C++) и выбирается периферийная библиотека. Возможные варианты — SPL, HAL и LL. Также можно вовсе не использовать периферийную библиотеку и в проект будет добавлена только CMSIS.
Нажатие кнопки «Finish» запустит создание проекта. По завершению на экране появится окно настройки отладчика.
Обычно настройки изменять не требуется и закрываем окна кнопкой «OK».
Если было разрешено создание цели DebugRAM, аналогичное окно появится и для нее.
На этом создание проекта завершено.
Для проверки обновления напишем какую-то прогу. По традиции это будет мигание светодиодом.
Открываем файл main.c.
В проект включена библиотека SPL. Используем ее для инициализации порта и изменения логического уровня на нем для мигания светодиода.
Получился код (классика, ничего необычного).
#include "main.h"
int main(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
GPIO_InitTypeDef g = {.GPIO_Pin = GPIO_Pin_10,
.GPIO_Mode = GPIO_Mode_OUT,
.GPIO_OType = GPIO_OType_PP,
.GPIO_PuPd = GPIO_PuPd_NOPULL,
.GPIO_Speed = GPIO_Speed_50MHz};
GPIO_Init(GPIOF, &g);
while(1)
{
GPIOF->ODR ^= GPIO_ODR_ODR_10;
for (volatile uint32_t i=0; i<2000000; i++);
}
}
Заливаем и смотрим как мигает светодиод подключенный к PF10 (на китайской отладочной плате с STM32F407ZET6 он подключен к этому выводу).
Проект разместил на файлообменнике dropmefiles.com/EhWzz
На случай недоступности форума EmBitz продублирую ссылки здесь.
Обновление библиотеки www.dropbox.com/s/upmp6r1fuqltrzp/UpdateLib_1.0_For_EmBitz_1.11.zip
GDB сервер EBlink www.dropbox.com/s/fefp18w932vxii7/EBlink_2.8_For_EmBitz_1.11.zip
Для установки распакуйте архивы в папку с EmBitz.
Итог.
Обновление годное. Протестировано мной на десятке микроконтроллеров разных семейств и серий. Багов не обнаружено.
И в завершении мое личное мнение о IDE EmBitz.
В отличие от среды Eclipse и ее производных (к ним относятся большинство бесплатных IDE для STM32) неспешно работающих и требующих для комфортной работы достаточно мощный ПК, IDE EmBitz основана на среде Code: Block и менее требовательна к ПК.