Portfolio Обо мне Блог

Сегодня я хотел бы рассказать о работе с микроконтроллерами STM32 с использованием редактора исходного кода VSCode в операционной системе Linux. Эта статья предназначена для новичков, и в ней будет пошагово описан процесс создания простого проекта, с акцентом на неочевидные моменты. Вопросы о том, как это работает и как настроить всё максимально гибко, мы оставим для следующей статьи.

Сегодня мы рассмотрим как сделать систему сборки на основе сmake, которая объединит в себе все С и С++, CubeMX, VScode и по сути будет логическим развитием этой и этой статей. По моему мнению это самый гибкий способ (кроме ситуации когда вы осознанно отказываетесь от CubeMX, но об этом в другой раз) вести разработку под stm32 в 2к22 году. Само собой только под Linux.

Сегодня я хотел бы рассмотреть новый камень (в данный момент не очень) камень от создателей Raspberry Pi - RP2040. Это 2-х ядерный микроконтроллер на 2-х ядрах Cortex-M0+ с максимальной частотой 133MHz, 264kB SRAM и отсутствующей внутренней flash памяти, зато возможность подключения до 16mb внешней. Звучит достаточно неплохо с учетом того что STM32 сейчас практически не достать, но все ли хорошо с поддержкой? Сегодня попробуем выяснить.

18 January 2021
C_C++ CORTEX

Сегодня мы рассмотрим самый интересный блок в новых контроллерах от Raspberry Pi Foundation RP2040 - PIO или programmable input/output block. В теории он должен позволить создавать модули кастомный периферии с чем сегодня мы попробуем разобраться.

Не давно я писал статью про то как настроить рабочее окружение для написания кода на СИ для работы в редакторе VScode. Но что делать если мы хотим писать код на С++, а не на СИ? На самом деле ответ на этот вопрос не тривиален. CubeMX генерирует проект, и параметры сборки таким образом что там используются только си файлы. Это значит что нам необходимо сделать 2 вещи - это соединить сишный код сгенерированный кубом с нашим плюсовым кодом и дописать make файл чтобы он мог собирать дополнительные с++ файлы.

Сейчас я хочу рассказать про то как настроить сборку проекта для микроконтроллеров STM32 в Debian подобных дистрибутивах GNU LINUX, думаю в других дистрибутивах это будет работать также. Для работы с микроконтроллерами нам нужны будут следующие компоненты: CubeMX, GCC tools, VScode. По сути в статье я расскажу как настроить каждый их этих компонентов, а потом как это все соединить вместе.

Для одного из моих проектов у меня оказалась отладочная плата LDM-HELPER-K1921BK01T-FULL, как очевидно из названия платы и статьи на контроллере K1921VK01T. Вместе с ней шол дополнительный модуль LDM-HELPER-MB501-FULL. По сути все что нужно знать про эти 2 платы это их 2 шиматика раз и два, дабы вы могли сопоставить мои примеры со схемой вашей отладочной платы. По ходу статьи мы настроем среду для работы с данным контроллером в среде VSCode, и напишем простенькую программу.

В этой заметке я соберу короткие заметки касательно работы в CubeIDE, думаю результатами можно будет воспользоваться для любой IDE на основе eclipse. Если (вдруг) вам интересно мое мнение, то лучше не используйте CubeIDE, а настройте VScode, об этом есть статья в блоге.