После установки 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 — программатор для отладчика -программатора 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»
Далее нужно указать папку в которой находиться компилятор
Это пока все настройки.
Теперь остаётся проверить работу. В «Quick Start» выбираем «Create New Project«
В окошке «Project Name» набираем имя пробного проекта. Я набрал «proba«. Единственно, наверно стоит воздержаться от русского и пробелов в имени проекта. Хотя возможно, что CoIDE нормально воспринимает и русский и пробелы, но проверять это пока нет желания.
Нажимаем «Next» и двигаемся дальше.
На следующем шаге надо выбрать что будет использоваться в проекте, микроконтроллер или отладочная плата.
Я выбрал микроконтроллер (зеленый шар с надписью Chip) и нажал Next.
Далее ищем нужный микроконтроллер (STM32F407VG) и жмём «Finish».
Стартовая страница меняется на страницу с репозиторием (Repository), где перечислены базовые компоненты, доступные для использования в созданном проекте.
Слева видим созданный файл main.c. Он практически пустой.
Для того чтобы проверить работу toolchain на базе CoIDE, файл main.c надо чем-то заполнить, создать прошивку для микроконтроллера и загрузить её в микроконтроллер.
При просмотре репозитория, почти в самом низу, нашелся STM32F4-Discovery
Всё что было для STM32F4DISCOVERY добавилось в проект.
Меня интересует в первую очередь порты ввода вывода, В левом верхнем окне я выбрал GPIO. Через секунды в середине появились названия примеров. Изначально их было три. Я нажал на «+ More Example …» и примеров стало больше, но это при условии наличия интернет. Дополнительные примеры наверно скачиваются с сайта CooCox.
Напротив каждого примера есть две короткие ссылки: «view» и «add». При нажатии на view содержимое примера появляется в нижнем среднем окне. Можно посмотреть или что то скопировать.
При нажатии на add данный пример добавляется в проект.
Я выбрал пример в имени которого было STM32F4Discovery и нажал на add. Согласился в возникшем окошке, нажав Yes.
В левом нижнем окне, окне проекта, возникла папочка с названием «example«. В папке файл main.c. Содержимое этого файла можно посмотреть дважды шелкнув на нем мышкой.
Я решил сразу откомпилировать проект и посмотреть что получиться. Работает этот toolchain или не работает.
Для этого нажал на кнопочку под «Project» с изображением квадратика со стрелками и возникающей надписью «Build (F7)».
Через несколько секунд думания CoIDE выдало красное сообщение:
BUILD FAILED
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 оказался рабочей лошадкой. Причем времени на проверку я затратил намного меньше, чем на описание того что делал.
firsthand.ru
Что хочется сказать после знакомства с контроллерами STM32, так это их замороченость. Складывается впечатление, что производители приложили все усилия, чтобы программировать сие замечательное устройство было жутко трудно. Потому даже после третьего и четвертого пробного проекта я продолжил поиски инструментов разработки. В поле зрения попал CooCox.
Чем подкупает CooCox CoIDE — простотой. А на первых порах это важно, это чтобы не отпугнуть и без того напуганных обладателей нового устройства. Для запуска первого проекта достаточно ответить на банальные вопросы мастера, скопировать код какого-либо примера в main.c — и все работает. Ну, почти все. На это «почти» я и хочу обратить внимание.
Пока что я не встречал такой среды разработки, которая бы начала работать с первого раза. «Кокосовый КоАйдер», как я его называю, тоже не был исключением (речь пойдет о версии 1.4.0, скачанной с официального сайта coocox.org). Первое, что нужно для его работы — компилятор. Да, я читал написанное красным на сайте (
В той же ссылке, где выделено красным, скачал архив с GCC-компилятором. Распаковал (пожалуй, неважно куда, но я сделал папку в Program Files). В Кокосе открыл меню Project — Select Toolchain Path. Здесь, как оказалось, нужно указать не просто папку, куда был распакован архив, а папку с бинарными файлами (у меня — F:\Program Files\arm-2011.03-coocox\bin), где лежит в том числе и g++.exe. Еще можно причесать параметры компиляции (Project — Configuration), но попервах лучше этого не делать. Так, изменив параметр Optimization можно убить пустые циклы, а значит и программные задержки (проверил, чистая правда).
При первом старте я выбрал библиотеки C Library, GPIO и RCC. Открыл пустой main.c и подумал: а с чего начать? На вкладке Components слева в глаза бросается пункт «GPIO (with 4 examples)». Замечательно. GPIO blink, куда ж без него. Скопировал весь код и всавил его в свой main.c вместо всего, что там есть. Не компилируется. Нет главной процедуры main. Конечно, нужно было бы добавить этот пример, а не копипастить, но лечится это легко: процедуру GPIO_Blink нужно переименовать на main.
F7. Проект скомпилирован. Ура! Пробую залить на плату. Ругается. Не работает.
Меню Debug — Debug Configuration. В дереве открываю Имя-проекта.configuration. Появляется страница со вкладками Debugger и Download. Здесь нужно выбрать правильный адаптер (у меня ST-Link), порт SWD. Закрываю. Зеленая кнопочка Download Code to Flash — и вот оно, счастье!
Отладка. При старте ругается на непонятный каталог Program — и тут я понимаю, что лучше было установить Кокос в каталог без пробелов, русских букв и вообще в C:/COOCOX/. Не смотря на 21-й век на дворе. Но ошибочка никоим образом на отладку не повлияла, и по программе можно смело шагать по F10/F11.
Пожалуй, старт с Дискавери под Кокос КоАйдер — самое быстрое и визуально понятное решение, если у вас Windows. По большому счету Кейловский uVision тоже ничего, но с ним повозиться нужно немного больше, да и редактор в нем лично мне не понравился. Деревянный какой-то по сравнению с Кокосом.
P.S.: Описанная версия CooCox успешно работает и под Линуксом (Ubuntu 11.10 + Xfce 4.8 + Wine 1.2.3) за исключением отладки и заливки в контроллер.
x32.dotogo.ru
CooCox CoIDE — это Бесплатная среда разработки для ARM Cortex микроконтроллеров. CoIDE имеет все необходимые инструменты для создания микроконтроллерных программ высокого качества. Страница в интернет: coocox.org/CooCox_CoIDE.htm
На сайте заявлено, что работает CooCox CoIDE на операционных системах Windows XP SP3, Windows Vista, Windows 7
Поддерживаются* микроконтроллеры ARM Cortex фирм производителей: Atmel, Energy Micro, Freescale, Holtek, NXP, Nuvoton, ST, TI, Toshiba
Atmel
Energy Micro
Freescale
Holtek
NXP
Nuvoton
ST
TI
Toshiba
*Этот список микроконтроллеров актуален на момент написания или последней редакции данного обзора.
Среди данного списка есть то, что мне нужно. Это STM32F407VG.
Также CooCox CoIDE умеет программировать и есть возможность отладки используя ST-Link или ST-Link/V2. А ST-Link/V2 уже есть на плате STM32F4 Discovery.
Для того чтобы скачать установочный файл, нужно будет зарегистрироваться. Это не сложно.
Для закачки предлагается два варианта
Это через CoCenter (рекомендуется) или просто CoIDE.
Я загружал CoIDE, но в процессе установки просмотрел галочку и CoCenter тоже установился. Изначально я не хотел устанавливать CoCenter, я не видел в нем необходимости.
Еще CooCox IDE не имеет своего компилятора. Об этом предупреждает надпись.
Note: CoIDE has not integrated GCC compiler. Before using CoIDE, you need to set GCC Toolchain first.
Поэтому перед тем как использовать CoIDE необходимо установить компилятор. Я устанавливал рекомендуемый CooCox компилятор GCC ARM Embedded. Где брал и как устанавливал написано здесь: http://firsthand.ru/node/301/
Можно установить и другой компилятор не ARM GCC, а CodeSourcery GCC. Можно использовать оба компилятора, но следует учитывать что эти компиляторы по разному обрабатывают код и проект созданный в одном компиляторе не будет работать с другим. Необходимы будут дополнительные действия для переноса проекта из одного компилятора в другой.
После закачки установочного файла и запуска весь процесс стандартный.
Я устанавливал CoIDE версии 1.7.5
Путь установки оставил по умолчанию. Программы созданные по лицензии GNU довольно часто капризны к именам файлов или папок. Они запросто могут не понимать русский язык или не воспринимать пробел в имени файла или пути к файлу. Поэтому лучше устанавливать такие программы туда, куда они попросятся.
Здесь запрашивается согласие на установку CoCenter. Откровенно говоря я так и не понял чем он мне может пригодиться.
Итоговая информация что и куда устанавливается. Жмем «Install» и ждем окончания установки.
Установка закончена. Теперь нужно настроить, но перед этим необхобимо скачать и установить компилятор. Я устанавливал рекомендуемый для CooCox CoIDE компилятор GCC ARM Embedded. Где брал и как устанавливал написано здесь: http://firsthand.ru/node/301/
Настройка и первый запуск будет описан далее.
firsthand.ru
В данной статье я хотел бы рассказать о начале работы с микроконтроллерами STM32 в бесплатной среде CoIDE, которая основана на Eclipse. В отличии от IAR и других сред разработки, CooCox CoIDE бесплатна и проста в освоении, а также содержит встроенный отладчик ST-Link, что позволяет начинающим изучать STM32 уже через 10 минут заставить вашу плату помигать светодиодом. Если вы еще незнакомы с серией STM32, то рекомендую почитать трилогию об архитектуре STM32, особенностях программирования и прочую полезную информацию.
В качестве STM32 использовалась отладочная плата STM32VLDiscovery доставшаяся нахаляву от фирмы STMicroelectronics с процессором STM32F100RBT6B на борту:
Итак приступим. Идем на официальный сайт CooCox и качаем последнюю версию CoCenter. Для скачивания необходимо зарегистрироваться, регистрация простая и бесплатная. Затем инсталлируем скачанный файл и запускаем:
CoCenter представляет собой менеджер ПО, который будет оповещать об обновлениях ПО, а также через который можно будет загружать новые версии. Здесь нас интересует первая строчка CooCox CoIDE – среда разработки, на базе Eclipse, которая помимо STM32 поддерживает кучу других семейств микроконтроллеров: Freescale, Holtek, NXP, Nuvoton, TI, Atmel SAM, Energy Micro и др. С каждой новой версией CoIDE список МК постоянно пополняется. Нажимаем кнопку Download, указываем папку для скачивания и CoCenter начнет скачивание CoIDE. После скачивание появится кнопка «Install», нажимаем ее и устанавливаем CoIDE. После успешной установки запускаем CoIDE:
Появится стартовое окно Step 1, в котором необходимо выбрать производителя нашего микроконтроллера. Нажимаем ST и переходим к Step 2 (выбор микроконтроллера), в котором необходимо выбрать конкретную модель. У нас STM32F100RBT6B, поэтому нажимаем на соответствующую модель:
Справа, в окне Help отображаются краткие характеристики каждого чипа. После выбора нужного нам микроконтроллера переходим к третьему шагу Step 3 – к выбору необходимых библиотек для работы:
Давайте создадим простейший проект для мигания светодиодом, как это принято для изучения микроконтроллеров.
Для этого нам понадобится библиотека GPIO, при включении которой, CoIDE попросит создать новый проект. На это предложение нажимаем Yes, указываем папку где будет храниться наш проект и его название. При этом, CoIDE подключит к проекту 3 другие, необходимые для работы библиотеки, а также создаст всю необходимую структуру проекта:
Чем еще хорош CoIDE, это тем, что в нем есть возможность загружать примеры прямо в среду разработки. В вкладке Components вы можете видеть, что почти к каждой библиотеке есть примеры, нажимаем на GPIO (with 4 examples) и видим их:
Туда можно добавлять и свои примеры. Как видно на скриншоте выше, в примерах уже присутствует код для мигания светодиодом GPIO_Blink. Можно нажать кнопку add и он добавиться в проект, но как подключаемый файл, поэтому мы сделаем по другому просто скопируем весь код примера в файл main.c. Единственное, строку void GPIO_Blink(void) замените на int main(void). Итак, нажимаем F7 (или в меню выбираем Project->Build), чтобы скомпилировать проект и… не тут то было!
Среде нужен компилятор GCC, а у нас его нет. Поэтому идем на сайт GNU Tools for ARM Embedded Processors и справа качаем последнюю версию тулчайна. Затем запускаем файл и инсталируем gcc toolchain. Далее, в настройках CoIDE укажем правильный путь к тулчайну:
Опять нажимаем F7 (Project->Build) и видим, что компиляция прошла успешно:
Осталось прошить микроконтроллер. Для этого при помощи USB подключаем нашу плату к компьютеру. Затем, в настройках дебаггера необходимо поставить ST-Link, для этого в меню выбираем Project->Configuration и открываем вкладку Debugger. В выпадающем списке выбираем ST-Link и закрываем окно:
Попробуем прошить МК. В меню выбираем Flash->Program Download (или на панели инструментов щелкаем по соответствующей иконке) и видим, что МК успешно прошит:
На плате наблюдаем мигающий светодиод, видео или фото я думаю приводить нет смысла, т.к. все это видели.
Также, в CoIDE работают различные режимы отладки, для этого нажимаем CTRL+F5 (или в меню Debug->Debug):
На этом все. Как видите, настройка среды CoIDE и работа с ней очень проста. Надеюсь данная статья подтолкнет вас в изучении очень перспективных и недорогих микроконтроллеров STM32.
Автор: taliban
shemopedia.ru