Как разрабатывать прошивки на STM32 в 2025 году

Когда вы давно занимаетесь разработкой прошивок и у вас сформировался некий костяк инструментария, то вы наверняка снабдили себя всеми необходимыми программами, или по крайней мере, знаете как снабдить. А если вы только что планируете освоить STM32, то совсем неочевидно как собрать весь софт для работы с нуля и как заставить его работать. Тут и там пишут, "чтобы скачать это, перейдите на страницу официального сайта и зарегистрируйтесь.." И тут, начинается настоящий квест с обходом блокировок, невозможностью обновлений репозитариев. Когда у вас нет людей, у которых вы можете что-то спросить, вы буквально вынуждены бросить любое обучение и дожидаться лучших времен. Однако я немножечко всем помогу, прямо в этой статье, расскажу куда идти, что качать. Этого хватит для учебы. На первое время.

Я начал разрабатывать для STM32 относительно недавно, в 2019-м году. Первым моим инструментом тогда был Atollic True Studio, созданный на основе Eclipse IDE. Он использует бесплатные компиляторы GCC для ARM. Между прочим, неплохие. Однако студия может подглючивать (в этом блеск и нищета бесплатного ПО), а еще отладчик GDB не позволит вам отлаживать не-STM камни. Новые микроконтроллеры (например, STM32G4xx) в Atollic уже программировать не получится. Разработка и поддержка Толика закончилась в 2020-м году. Тогда он превратился в жуткого монстра STM32CubeIDE. Но для МК "ранних времен" (до 2020 года) - очень приличный инструмент. Скачать можно отсюда 

Еще одна обалденная среда разработки, Keil MDK-ARM. К сожалению, сегодня купить ее в РФ не получится. Но прелесть в том, что Keil MDK-ARM бесплатен для обучения. Демо версия позволяет генерировать программный код до 32 кБ бесплатно. Это настоящая находка для простеньких прошивок. В интернете остались дистрибутивы прошлых лет. Вот здесь можно скачать один из них. В версии 5.36 находится 2 компилятора языка Си: Версии 5 (многопроходный, медленный) и версии 6 (однопроходный, быстрый). В более поздних релизах уже нет компилятора 5-ой версии, а он иногда может быть очень нужен, особенно при работе с операционной FreeRTOS. Вообще эти компиляторы 5 и 6 - совершенно разные продукты. Если Keil вам "зайдет", то сами позже узнаете, в чем там приколы.

Для того, чтобы разрабатывать прошивку на Keil, нужен Package для конкретной серии микроконтроллеров. Для STM32F427VIT6, например, потребуется пак Keil.STM32F4xx_DFP.2.15.0.pack. Когда-то, Keil мог тянуть эти паки по сети автоматически, а сейчас это не работает. Поэтому я просто предлагаю взять мою коллекцию паков из этого поста. А еще предлагаю подписаться на Telegram канал по этой теме. Делюсь опытом, а ведь я кое-что понимаю в Embedded разработке.

Я ведь уже говорил о том, что существует среда разработки STM32CubeIDE. Она распространяется компанией STMicroelectronics бесплатно. Вообще в сети есть гигантская коллекция бесплатных продуктов STM по этой ссылке. Ресурс не мой, поэтому берите пока есть, снесут - я не восстановлю (сам не качал, не нуждаюсь).

Если вы новичок и хотите начать обучение с нуля, то вам точно пригодится конфигуратор STM32CubeMX. Это программа, которая снижает порог вхождения в разработку и ускоряет (удешевляет) разработку, так как:

  • Позволит настроить все порты ввода-вывода, тактирование. Визуально. Мышкой.
  • Сгенерирует начальный программный код со всеми инициализациями для любой студии: будь то Keil, IAR, CubeIDE или даже Makefile.
  • Умеет перегенеривать уже готовый код. Поменяли конфигурацию - проект перегенерится с новыми настройками, а пользовательский код не будет нарушен.

Можете скачать какой хотите куб по ссылке выше (из коллекции). Я лично пользуюсь версией 6.4.0, и только ей, т.к. мы в команде можем обмениваться ioc проектами, важно чтобы у всех стояла одна и та же версия куба. Если надо, то качайте вот отсюда.

Чтобы CubeMX мог генерировать проекты, ему нужны библиотеки. Они должны загружаться из интернета автоматически. Но пока с этим проблемы. Под каждую серию микроконтроллеров библиотеки свои. Размещены они (по умолчанию) в папке C:\Users\(Ваш пользователь)\STM32Cube\Repository\

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

И при генерации исходников шаблона проекта нужно будет прям явно указывать расположение:

Ну вот вроде бы все, что хотел сказать. Уроков по HAL у меня нет. Но может быть я создам обучающий курс, когда соберется побольше сообщество в телеграмме

Статью можно обсудить >> здесь <<