CooCox, он же Кокос, или Продолжение истории с STM32

Что хочется сказать после знакомства с контроллерами STM32, так это их замороченость. Складывается впечатление, что производители приложили все усилия, чтобы программировать сие замечательное устройство было жутко трудно. Потому даже после третьего и четвертого пробного проекта я продолжил поиски инструментов разработки. В поле зрения попал CooCox.

Чем подкупает CooCox CoIDE — простотой. А на первых порах это важно, это чтобы не отпугнуть и без того напуганных обладателей нового устройства. Для запуска первого проекта достаточно ответить на банальные вопросы мастера, скопировать код какого-либо примера в main.c — и все работает. Ну, почти все. На это «почти» я и хочу обратить внимание.

Как запускал

Пока что я не встречал такой среды разработки, которая бы начала работать с первого раза. «Кокосовый КоАйдер», как я его называю, тоже не был исключением (речь пойдет о версии 1.4.0, скачанной с официального сайта coocox.org). Первое, что нужно для его работы — компилятор. Да, я читал написанное красным на сайте (Before using CoIDE, you need to set GCC Toolchain first), но разве наш человек не попробует без предостережений? Проверил. Не работает. Ругается.

В той же ссылке, где выделено красным, скачал архив с 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) за исключением отладки и заливки в контроллер.


Protected by Copyscape Online Plagiarism Test
Вы не можете высказаться или оставить ссылку здесь...

комментариев 5 к теме “CooCox, он же Кокос, или Продолжение истории с STM32”

  1. ujin:

    здравствуйте ….у меня прога в дискавери заливается а вот дебаг не пашет
    версия 1.4.2 выдает две ошибки ««gdbserver.exe launch failed! try to restart debugging again» и «The Dos Command tasklist.exe can run please check system environment variable. Make sure the systems comand path is exist, and tasklist.exe is exit»»…не подскажите как с этим боротся?..
    заранее спасибо.

  2. ujin:

    да забыл написать…стоит винда xp, coocox установлен в корень диска С.

  3. Александр Божок:

    …навскидку, пожалуй, не скажу. Установка у меня такая же, сбоев не возникало. Что могло приключиться с gdbserver.exe — вопрос интересный, а вот про переменные окружения и tasklist.exe — это интересно: я-то у себя ничего подобного не менял и не настраивал…

  4. Скорее всего, кокос стоит на Windows XP Home Edition. Рецепт «лечения» описан здесь: http://www.pluslab.ru/blog/coide/otladka-v-winxp-home-edition
    Проблема известная.

  5. Самым простым решением для STM32 будет mikroC, от сербской фирмы Mikroelektronika. Ничего настраивать не надо, большая часть инициализации уже реализована, поддерживает st-link. Минус — не полная совместимость с gcc, и ограничение по коду в 8 кБ.

Powered by WordPress | Thanks to NewWpThemes | Александр Божок