Быстрое освоение МК STM32

№ 1’2016
PDF версия
Статья посвящена вопросу выбора и начального конфигурирования средств разработки для микроконтроллеров STM32, которые позволят освоить работу с данным устройством в кратчайшие сроки.

В настоящее время рынок микроконтроллеров переживает настоящее нашествие изделий, выполненных на платформе ARM. Устройства серии STM32 от STMicroelectronics (STM), безусловно, находятся в авангарде этого движения. Компания предлагает целую гамму изделий различной стоимости и производительности. При этом от разработчика часто требуется только подключить внешний кварцевый резонатор, а вся мощная периферия уже содержится внутри кристалла. Что касается производительности — зачастую даже самые дешевые чипы (стоимостью менее $10) превосходят по характеристикам персональные компьютеры первых поколений. Так, например, один из самых простых микроконтроллеров (МК) серии STM32F1 имеет внутреннюю тактовую частоту 72 МГц (для сравнения: CPU Intel 486, вышедший в 1989 г., имел тактовую частоту всего 16 МГц).

Однако указанные особенности МК STM32 порождают некоторые проблемы: даже самые простые чипы оказываются чрезвычайно «навороченными» и требуют определенного времени на освоение. Действительно, экспертом по STM32 невозможно стать за неделю или даже за месяц. Но в то же время разумная и продуманная архитектура и правильный выбор средств разработки позволяют быстро освоить данное устройство, совмещая решение поставленной задачи с процессом обучения.

 

Основы

Перед тем, как приступить непосредственно к программированию, необходимо, как минимум, приобрести набор разработчика и установить на компьютер целый ряд программных средств, необходимых для написания кода, его загрузки в МК и последующей отладки. Таких средств на текущий момент существует огромное количество, поэтому перед новичком стоит непростая задача выбора. Мы предлагаем начать с организации профессионального процесса разработки. При этом правильный выбор средств и технологии разработки имеет решающее значение.

Возможно, кто-то скажет, что ему для работы достаточно бесплатного кросс-компилятора GCC для ARM. Но такой подход представляется нам неоптимальным. Профессиональным же подходом, на наш взгляд, будет освоение многочисленных сторонних наработок, умение пользоваться стандартными библиотеками и т. д. Установка какой-либо популярной среды проектирования не решает проблему подбора средств разработки, поскольку экосистема проектирования кода для ARM значительно сложнее, чем просто среда разработки (IDE), и для эффективной работы знать ее необходимо.

 

Экосистема STM32

Если сузить задачу и ограничиться только экосистемой STM32, то начинать надо с сайта STM [1]. Новичкам мы советуем прежде всего ознакомиться c презентацией [2], повествующей о средствах, рекомендуемых и поддерживаемых компанией. Кратко суть этой презентации отражена на рисунке. Перед началом работы необходимо найти и установить на рабочий компьютер программные средства, показанные на нем.

Экосистема обеспечения процесса разработки для STM32

Рисунок. Экосистема обеспечения процесса разработки для STM32

 

Аппаратные средства

Нам потребуются:

  • Система, управляемая MC STM32. Это может быть отладочная плата, собственное изделие и т. д.
  • Кабель STLINKV2 для программирования и отладки.
  • В случае если наше устройство работает под управлением хоста, потребуется обеспечить связь между хостом и отлаживаемым устройством. Проще всего это сделать с помощью моста USB<->UART (Внимание! Такой мост должен обеспечивать уровни 3,3 В).

Все указанные средства можно приобрести во многих компаниях и интернет-магазинах. Оригинальное оборудование от STM стоит недорого, а изделия китайских производителей, например компании lctech inc. [3], еще дешевле.

 

Программные средства

Рекомендуем начинать работу с графического конфигуратора STM32CubeMX. Его можно загрузить с ресурса [4]. Он обеспечивает конфигурирование как отдельных чипов, так и наборов разработчика, выпускаемых компанией STM, таких как Discovery, Nucleo и др. Безусловно, конфигурирование на уровне платы происходит легче и быстрее, поэтому если приоритет отдается скорости разработки, то лучше выбирать из поддерживаемых наборов разработки. Если же требуется максимально сократить стоимость аппаратуры, то можно выбрать изделие какой-либо китайской компании с хорошей репутацией.

Далее, нам необходимо рабочее пространство для наших проектов. Самый простой способ — просто загрузить готовое. В зависимости от типа используемого контроллера используются разные рабочие пространства. Например, для устройств типа STM32F1xx необходимо загрузить рабочее пространство STM32CubeF1 [5].

В рабочем пространстве в огромном количестве находятся примеры хорошо выполненного программного кода, которые могут быть использованы в нашем собственном проекте as is либо с минимальными изменениями. Также там находятся необходимые в работе стандартные библиотеки. Использование уже готового рабочего пространства позволяет в разы сократить время освоения устройств типа STM32 и сократить потребность в поиске нужной информации. Рабочее пространство поставляется в виде архива, который необходимо просто разархивировать в удобное для разработчика место.

Далее может понадобиться пакет STM32 ST-LINK Utility, содержащий в себе визуальные и консольные средства отладки для работы с кабелем STLINKV2. Его можно загрузить со страницы [6]. Не исключено, что данный пакет уже присутствует в составе выбранной IDE, но иметь самую свежую версию всегда приятно.

 

Выбор среды разработки для STM32

Имеется огромное количество различных IDE для STM32 под любые используемые платформы. Они бывают свободными, коммерческими, а также ограниченно-бесплатными. Но, к сожалению (а может быть, к счастью), стандартное рабочее пространство поддерживает на текущий момент только четыре среды проектирования:

  • EWARM компанииIAR Systems, лицензия Commercial, Free-limited [7];
  • MDK-ARM компании Keil, лицензия Commercial [8];
  • SW4STM32 компании Ac6, Free [9];
  • TrueStudio компании atollic, лицензия Lite — free, Pro — 49 euro/month [10].

 

Дополнительные библиотеки

В качестве дополнительных библиотек используются различные пакеты, например стек TCP-IP lwIP или ОС реального времени FreeRTOS. Часть из них уже предустановлена в рабочем пространстве, а недостающие можно загрузить как утилитой STM32CubeUpdater, дистрибутив которой поставляется в составе рабочей области, так и средствами IDE. Не исключено, что в редких случаях, возможно, придется устанавливать сторонние средства вручную.

Библиотеки являются необходимым инструментом для быстрой и эффективной работы. Кроме того, они позволяют выполнять работу максимально стандартным образом и, следовательно, дают возможность при необходимости получить помощь огромного сообщества разработчиков. Мы рекомендуем (особенно в начале) работать с аппаратными ресурсами микроконтроллеров STM32 через специальную библиотеку с названием HAL (Hardware Abstraction Level). Описание библиотеки (для серии F1) приведено в [11].

 

Выводы

Итак, как было показано, все перечисленные программные средства можно скачать из Интернета, установить на рабочий компьютер, сконфигурировать за один день и в тот же день написать свою первую программу для STM32.

В дальнейшем мы планируем продолжить тему, показав, как можно написать простую программу, обменивающуюся с хостом по последовательному порту при помощи стандартных средств языка C — printf и scanf.

Литература
  1. www.st.com
  2. http://www.st.com/st-web-ui/static/active/en/jsp/common/swf.jsp?url=/st-web-ui/active/en/fragment/multimedia/e-presentation/product_pres/ePresSTM32Cube_final.swf&width=850&height=680&title=STM32Cube%20Basics/ссылка утрачена/
  3. http://www.lctech-inc.com/
  4. http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF259242
  5. http://www.st.com/web/en/catalog/tools/PF260820
  6. http://www.st.com/web/catalog/tools/PF258168
  7. https://www.iar.com/iar-embedded-workbench/arm/, https://www.iar.com/iar-embedded-workbench/downloads/
  8. https://www.keil.com/demo/eval/arm.htm
  9. http://www.openstm32.org
  10. http://timor.atollic.com/truestudio/
  11. http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00132099.pdf

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *