Перейти к содержимому

Программирование STM32. Настройка Coocox IDE + STM32CubeMX

Всем привет, сегодня расскажу, как настроить среду разработки coocox ide и программу для инициализации различной периферии микроконтроллера STM32CubeMX для совместной работы.

Перед началом работы необходимо установить:

Давайте приступим к настройке. Первым делом создадим пустой проект в CoIDE

1

Выбираем нужный микроконтроллер

2

Нажимаем New Project3

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

4

В результате получим пустой проект, в котором будет один только файл main.c

5

На самом деле файл main.c нам не нужен, его нам создаст STM32CubeMX, так что текущий файл просто удаляем из проекта.

Теперь временно свернем окно Coocox IDE и запустим программу STM32CubeMX. Нажмем New Project

6

Теперь создаём нужную конфигурацию проекта. Для начала помигаем встроенным светодиодом. Для этого устанавливаем PC13 как OUTPUT и на вкладке Pinout в разделе SYS включаем отладку Debug -> Serial Wire

8

Перейдём на страницу настроек Project->Settings. Зададим имя проекта такое же, как мы задали в Coocox IDE. И в Project Location зададим папку, в которой находится проект

Toolchain/ IDE выбираем SW4STM32. Нажимаем Ok

10

Теперь нажимаем Project->Generate code. Проект генерируется некоторое время. По окончании нажимаем Open Folder. Как видим, к нашему проекту добавились папки Drivers, Inc, Src.

Их необходимо добавить к проекту CoocoxIDE простым перетаскиванием

9

Теперь если попробовать скомпилировать проект, то мы получим ошибку

D:\workspace\BlinkProject\Drivers\CMSIS\Device\ST\STM32F1xx\Include/stm32f1xx.h:159:3: error: #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)"

Эта ошибка говорит нам о том, что не выбран тип микроконтроллера в файле stm32f1xx.h.

Откроем его и посмотрим содержимое

11

Для нашего микроконтроллера необходимо выбрать STM32F103xB

Откроем конфигурацию проекта View->Configuration и в поле Defined Symbols добавим нашу константу STM32F103xB. Нажимаем Add

12

Теперь при попытке собрать проект получаем следующую ошибку

[cc] collect2.exe: error: ld returned 1 exit status

Это ошибка линкера, так что переходим View->Configuration->Linker и выключаем флажок Use Memory Layout from Memory Window

13

Внизу страницы выбираем Scatter файл, который уже создан в папке нашего проекта. Workspace/BlinkProject/STM32F103C8Tx_FLASH.ld

14

Теперь при нажатии кнопки Build наш проект успешно компилируется и собирается.

Попробуем записать наш файл в микроконтроллер. Нажимаем Download code to Flash. У меня выскакивает ошибка

Error: Failed to open flash driver file

Переходим на вкладку View->Configuration->Download и видим, что в поле Programming Algoritm путь к файлу содержит русские символы

15

Я просто перенесу нужный файл в другую папку и добавлю новый путь к этому файлу.

16

Теперь прошивка заливается в микроконтроллер.

Давайте добавим код для моргания светодиодом в главный цикл while программы

Теперь светодиод моргает с интервалом в 100мс.

Отладка проекта:

Программа отладчика  находится в папке Bin каталога Coocox, в моем случае это D:\CooCox\CoIDE_V2Beta\bin

Для запуска отладчика нужно из консоли запустить файл start_gdbserver.bat. Но перед этим нужно подправить пути, прописанные в этом файле. Изначально они указывают на несуществующие папки. В моем случае bat файл выглядит следующим образом:

Как видим в качестве параметра отладчику передается ini файл. Его тоже нужно открыть и скорректировать для нашего отладчика и микроконтроллера.

GDBServerParam.ini

После этого открываем в проводнике папку D:\CooCox\CoIDE_V2Beta\bin, зажимаем клавишу shift и кликаем правой кнопкой мыши на свободном месте. Появится контекстное меню, в котором выбираем "открыть окно команд". Или просто открываем консоль и переходим в нужную нам папку.

dos

Далее запускаем start_gdbserver.bat. Видим, что запустился отладчик и он ожидает подключения на порту 2009

dos

Теперь в программе coocox мы можем нажать клавишу debug, CoIDE подключится к отладчику и появится возможность отлаживать проект.

Есть одно важное замечание: после того, как мы закончили отлаживать проект и нажали клавишу Stop, отладчик тоже закончит работу и перед следующим сеансом отладки его снова нужно будет запустить в командной строке с помощью start_gdbserver.bat.

Краткая инструкция:

  1. Установить драйверы ST-LINK v2,CoIDE, GNU ARM Embedded Toolchain, STM32CubeMX
  2. Создать пустой проект в CoIDE
  3. Удалить файл main.c из проекта
  4. Создать проект в STM32CubeMx. Папку проекта указать туже, что и в CoIDE. Toolchain указать SW4STM32
  5. Сгенерировать код в CubeMX
  6. Добавить папки Drivers, Inc, Src в проект CoIDE перетаскиванием
  7. В свойствах проекта добавить константу STM32F103xB или другую для вашего контроллера
  8. В настройках линкера установить scatter file
  9. В настройках проекта на вкладке Download проверить, чтобы путь к файлу Programming Algoritm был без русских символов.
  10. Отредактировать файлы start_gdbserver.bat и GDBServerParam.ini для того, чтобы иметь возможность отлаживать проект.

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