CooCox CoIDE - первый запуск, первый опыт.

После установки CooCox CoIDE (http://firsthand.ru/node/302/), компилятора GCC ARM Embedded (http://firsthand.ru/node/301/) и утилиты STM32 ST-Link Utility с драйвером для ST-LINK/V2 (http://firsthand.ru/node/300/) делаем первый запуск данной среды программирования (или toolchain) для микроконтроллеров ARM Cortex и получаем первый опыт использования.

Сначала запустим CoCenter и посмотрим что же это такое, и насколько это мне может пригодиться.

 

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

В списке CoCenter находиться:

  • CooCox CoIDE,
  • CooCox CoFlash,
  • CooCox CoSmart,
  • CooCox CoOS,
  • CooCox MDK Plugin 
  • CooCox ColinkEx USB Driver

CooCox CoIDE - это уже установлено.

CooCox CoFlash - программатор для отладчика -программатора CoLink. В моем случае не нужен. На плате STM32F4 Discovery уже есть программатор-отладчик STM32 ST-Link/V2. 

CooCox CoSmart - конфигуратор выводов микроконтроллеров. Среди поддерживаемых микроконтроллеров, нужного мне STM32F4VG пока нет, значит мне этот конфигуратор пока не нужен.

CooCox CoOS - операционная система реального времени. Штука хорошая, но STM32F4VG пока не поддерживается и примеров для STM32F4 нет.

CooCox MDK Plugin и CooCox ColinkEx USB Driver нужны для отладчика -программатора CoLink. То есть, мне это пока не понадобиться.

Для моей отладочной платы STM32F4 Discovery данный менеджер CoCenter может пригодиться только в плане получения новых обновлений. Не более.

Запускаем CooCox CoIDE.

Красивая такая заставочка. "Висит" относительно долго, пока не запуститься сам CoIDE. В какой то момент даже думал что зависло.

После запуска появляется страничка с приветствием и через какое то время в правом нижнем углу возникает сообщение о доступных обновлениях. Вместе с CoIDE также запустился и CoCenter, который вылез в интернет и получил новости со своего сайта.

Далее нужно настроить Toolchain в виде компилятора. Вообще то странный этот термин toolchain. Им называют и пакет программ и могут назвать одну программу. Хотя если принять перевод toolchain как "инструмент последовательности", то вроде всё логично.

Для настройки toolchain в виде компилятора GCC заходим в меню "Project"

В выпадающем окне выбираем "Select Toolchain Path"

Далее нужно указать папку в которой находиться компилятор arm-none-eabi-gcc.exe. Я устанавливал компилятор GCC ARM Embedded (http://firsthand.ru/node/301/) и если установка была по умолчанию, то это c:\Program Files\GNU Tools ARM Embedded\4.8 2013q4\bin\

Это пока все настройки.

Теперь остаётся проверить работу. В "Quick Start" выбираем "Create New Project"

В окошке "Project Name" набираем имя пробного проекта. Я набрал "proba". Единственно, наверно стоит воздержаться от русского и пробелов в имени проекта. Хотя возможно, что CoIDE нормально воспринимает и русский и пробелы, но проверять это пока нет желания.

Нажимаем "Next" и двигаемся дальше.

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

Я выбрал микроконтроллер (зеленый шар с надписью Chip) и нажал Next.

Далее ищем нужный микроконтроллер (STM32F407VG) и жмём "Finish".

Стартовая страница меняется на страницу с репозиторием (Repository), где перечислены базовые компоненты, доступные для использования в созданном проекте.

Слева видим созданный файл main.c. Он практически пустой.

Для того чтобы проверить работу toolchain на базе CoIDE, файл main.c надо чем-то заполнить, создать прошивку для микроконтроллера и загрузить её в микроконтроллер.

При просмотре репозитория, почти в самом низу, нашелся STM32F4-Discovery. Я поставил галочку и согласился в возникшем окошке, нажав Yes.

Всё что было для STM32F4DISCOVERY добавилось в проект.

Меня интересует в первую очередь порты ввода вывода, В левом верхнем окне я выбрал GPIO. Через секунды в середине появились названия примеров. Изначально их было три. Я нажал на "+ More Example ..." и примеров стало больше, но это при условии наличия интернет. Дополнительные примеры наверно скачиваются с сайта CooCox.

Напротив каждого примера есть две короткие ссылки: "view" и "add". При нажатии на view содержимое примера появляется в нижнем среднем окне. Можно посмотреть или что то скопировать.

При нажатии на add данный пример добавляется в проект.

Я выбрал пример в имени которого было STM32F4Discovery и нажал на add. Согласился в возникшем окошке, нажав Yes.

В левом нижнем окне, окне проекта, возникла папочка с названием "example". В папке файл main.c. Содержимое этого файла можно посмотреть дважды шелкнув на нем мышкой.

Я решил сразу откомпилировать проект и посмотреть что получиться. Работает этот toolchain или не работает. 

Для этого нажал на кнопочку под "Project" с изображением квадратика со стрелками и возникающей надписью "Build (F7)".

Через несколько секунд думания CoIDE выдало красное сообщение:

BUILD FAILED
Output filename conflict: main.o would be produced from C:\CooCox\CoIDE\workspace\proba\example\main.c and main.c
Total time: 2 seconds

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

Я удалил почти пустой main.c, который появился сразу после создания проекта.

Файл main.c в папке example оставил.

И снова откомпилировал проект, нажав на кнопку Build (F7)

В этот раз ошибок уже не было и сообщения были приятными для глаз.

Program Size:
      text       data        bss        dec        hex    filename
      2408         52       2180       4640       1220    proba.elf

BUILD SUCCESSFUL
Total time: 11 seconds

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

Я же, после получения результата компиляции, думал что делать дальше, что бы проверить работу и ничего не испортить. Как то давно, при программировании Atmel-овского микроконтроллера, я случайно установил битик защиты и этот микроконтроллер перестал "видиться" через JTAG. Не хотелось здесь сделать что нибудь подобное.

Но пока я размышлял, как то невзначай мышкой нажал на "таракана". Это была кнопка "Start Debug". Далее я просто сидел и наблюдал за происходящим.

Программа загрузилась в микроконтроллер STM32F4Discovery и микроконтроллер у меня перестал моргать.

На панели CoIDE появились новые кнопочки.

Начал нажимать на кнопочку пошагового исполнения без захода в подпрограммы Step Over (F10)

По мере продвижения по коду, в центральном окошке, светодиодики начали загораться. Микроконтроллер был "живой" и рабочий.

Далее нажав на "зеленый треугольникRun (F5), я смотрел как огоньги загораются и гаснут, загораются и гаснут. То есть, пример был откомпилирован и нормально загружен в микроконтроллер.

Интересные ощущения, когда вот так сразу начинает что то работать.

ПОЛУЧИЛОСЬ!!!

Toolchain на базе CooCox CoIDE оказался рабочей лошадкой. Причем времени на проверку я затратил намного меньше, чем на описание того что делал.