2. STM32. Программирование. IDE для STM32

Содержание

Для того, чтобы разрабатывать свои программы нам понадобится среда разработки, желательно с дебаггером, и компилятор C.

Я остановился на CooCox CoIDE и GCC. Во-первых этот софт не стоит денег, во-вторых — с ним не возникло никаких вопросов. Установил и начал работать. Правда, CooCox сделан только под Windows. Это не совсем хорошо. И хотя на Ubuntu CooCox работает под wine и даже компиляция проходит успешно, с дебаггером проблема. И работа через wine — это не true way.

UPD: Я выложил версию CoIDE 1.7.8 на Яндексдиск. В дальнейшем будем использовать и другие IDE (читай как установить и настроить Keil uVision5 – IDE для STM32, IAR Workbench – IDE для STM32).

Также следует обратить внимание на IDE для STM32 System Workbench for STM32 Лично я перешел на System Workbench for STM32

Установим IDE CooCox CoIDE на Windows

  • Качаем и устанавливаем программу CooCox (CoIDE-1.7.8.exe) На момент написания статьи была доступна версия 2.0 Бета. Но бета-версиям я стараюсь не пользоваться, поэтому в примерах будет фигурировать версия 1.7.8.
  • Качаем и устанавливаем GCC (gcc-arm-none-eabi-5_3-2016q1-20160330-win32.exe)

Первая программа

Выполняем пункт меню Project — New

Указываем имя проекта:

CooCox_01

CooCox_02 CooCox_03

В репозитории выбираем какие именно модули мы будем использовать:

CooCox_04 CooCox_05

Открываем main.c і набираем следующий код программы:

CooCox_06 CooCox_07

Компилируем (Project-Build)

При первой компиляции IDE может запросить указать местонахождение компилятора.

Надо корректно указать место, куда был установлен GCC.

После удачной компиляции заливаем программу в микроконтроллер. Эта программа будет мигать светодиодом на плате. Как залить программу в микроконтроллер мы рассматривали в предыдущей статье.

Если Вы будете заливать прошивку через UART с помощью UART-USB переходника, файл для заливки найдете в директории: C:\CooCox\CoIDE\workspace\Example_GPIO\Example_GPIO\Debug\bin\Example_GPIO.bin

Если у Вас есть установленный ST-Link программатор, программу в микроконтроллер можно залить прямо с IDE (Flash — Program Download).

  1. Запустить STM32 ST-LINK Utility и выполнить Frimware update.
  2. Скопировать файл STLinkUSBDriver.dll из папки C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility в папку C:\CooCox\CoIDE\bin после чего перезапустить CooCox IDE

Некоторые настройки IDE и параметры компилятора

Repository

CooCox_05

Здесь мы выбираем библиотеки, которые необходимы для нашего проекта. При этом IDE копирует в папку stm_lib вашего проекта нужные файлы.

Конфигурация проекта

CooCox_08

Закладка Compile

CooCox_09

в этой закладке устанавливаются ключи компилятора. Мы сюда еще будем возвращаться, а пока обратим внимание на поле Optimization. Это поле задает параметр оптимизации для компилятора. Об оптимизации будет отдельный разговор, пока Вам нужно усвоить, что оптимизация Optimizate Size (-Os) максимально уменьшает объем скомпилированных программ. Но при этом компилятор может выбросить (оптимизировать) некоторые операции, и программа может работать не так, как Вам бы хотелось. Поэтому, на первых этапах, я не рекомендую использовать этот метод оптимизации. Установите Optimizate (-O1).

Закладка Link

CooCox_10

В этой закладке пока нас интересует только поле Library и Linked Libraries. Если Вы будете использовать стандартные библиотеки С, например библиотеку математических функций math Вам нужно будет выбрать "Use base C Library". Если этого не сделать, то компилятор выдаст ошибку.

Закладка Output

CooCox_11

Здесь указываются куда складывать скомпилированные файлы и в каких форматах.

Закладка User

CooCox_12

Пока в ней мы ничего делать не будем.

Закладка Debugger

CooCox_14

В этой закладке устанавливаются параметры дебаггера. Поскольку мы будем использовать ST-Link, здесь ничего менять не придется.

Закладка Download

CooCox_14

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

Дебаггер

CooCox_Debugger_01

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

CooCox_Debugger_02

Поэкспериментируйте с ними, чтобы понять как они работают.

В закладке Variables можете наблюдать за значением переменных.

CooCox_Debugger_03

Также можно подвести курсор к переменной и наблюдать в всплывающей подсказке ее значение

CooCox_Debugger_06

Если установить Breackpoint (меню Debug — Todggle Breackpoint) на нужные строки в коде, во время выполнения программы дебаггер будет останавливаться на установленных Breackpoint-ах.

CooCox_Debugger_04 CooCox_Debugger_05

Теперь, после первого знакомства с IDE, можно перейти непосредственно к изучению микроконтроллера STM32F103 и написания своих программ.


Источник: blog.avislab.com