Обновление для 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).

В этом обновлении интерфейс мастера создания проекта немного изменился по сравнению в оригинальным. Вкратце рассмотрим основные шаги.

Проект создается из меню FileNewProject.

Обновление добавляет тип проекта «STM32». Выбираем его и приступаем к созданию проекта нажав на кнопку Go.

Спойлер
iaak_gfnz_g7xgsdg2o8iiyfqm4.png


Следующим шагом требуется ввести имя проекта и выбрать место расположения на диске.

Спойлер
oqe4aun5zjxum6zu_-eijtx1mzk.png


В следующем окне предлагается выбрать компилятор и настроить цели сборки. Оставляем значения по умолчанию.

Спойлер
6yw_xz-dndweiowcd3y298hnrou.png


После предлагается выбрать семейство МК. Для теста выберем STM32F4.

Спойлер
g2wrf_0kaawlfrkp56d4nlqzd30.png


Далее следует выбрать серию. У меня в наличии отладочная плата с STM32F407ZET6 и поэтому выбрал STM32F407_417.

Спойлер
rl3gcohvrdvsaf_f-ol68magjai.png


В следующем окне нам предлагается выбрать в списке модель микроконтроллера. Как вы наверное уже догадались я выбрал STM32F407ZE.

Спойлер
_rzinvxvzqadt1ujfhotpn8wdtq.png


Кратко о других настройках.

Опция «Add DebugRAM target» добавит в проект отладочную цель сборки с выполнением кода из ОЗУ. Это не только уменьшает износ Flash-памяти, но и ускоряет запуск отладки за счет отсутствия затрат времени на стирание Flash-памяти и запись в нее. Но в микроконтроллере должно быть достаточно ОЗУ для кода и данных.

В списке «Debugger output» выбирается метод вывода отладочных сообщений функцией printf или ей подобной. Возможно использование «Semihosting» или «EB monitor».

В списках ниже задается тип проекта (C или C++) и выбирается периферийная библиотека. Возможные варианты — SPL, HAL и LL. Также можно вовсе не использовать периферийную библиотеку и в проект будет добавлена только CMSIS.

Нажатие кнопки «Finish» запустит создание проекта. По завершению на экране появится окно настройки отладчика.

Спойлер
arj4twunupp_suw7t0o08kddji4.png


Обычно настройки изменять не требуется и закрываем окна кнопкой «OK».

Если было разрешено создание цели DebugRAM, аналогичное окно появится и для нее.

Спойлер
yy1m6zl3rc80jlue8jgz6a38qc4.png


На этом создание проекта завершено.

Для проверки обновления напишем какую-то прогу. По традиции это будет мигание светодиодом.

Открываем файл main.c.

Спойлер
jlpzfkg0vo3ppr--geswfrryg2m.png


В проект включена библиотека 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 и менее требовательна к ПК.

© Habrahabr.ru