Мой опыт разработки с chibios начался с keil и довольно быстро на нем и закончился, потому что при написании простых проектов, типа мигания светодиодом и т.п. keil очень удобен, никаких сложностей с компиляцией или написанием makefile, все предельно просто. Однако же, при создании больших проектов со сторонними библиотеками, в моем случае я использовал uGFX, keil все компилировал, однако результат компиляции был абсолютно непредсказуем и зачастую я получал затык с белым экраном и отсутствием активности ОС. Не было выбора, Chibi Studio я использовать не хотел, т.к. не переношу Eclipse, поэтому выбрал вариант Linux+Make+Makefile. Собрал по-быстрому новый комп с линуксом, создал Makefile и опробовал компиляцию. Результат был супер, все заработало даже без отладки. Хорошо, теперь надо было как-то убрать лишнее звено с линукс компьютером и перенести сборку и компиляцию в виндовс, установленный на рабочем ноуте.
Установка Cygwin
Те, кто никогда не слышал про Cygwin, могут прочитать статью, вкратце, Cygwin — это UNIX-подобная среда и интерфейс командной строки для Windows. Cygwin обеспечивает тесную интеграцию Windows приложений, данных и ресурсов с приложениями, данными и ресурсами UNIX-подобной среды. Из среды Cygwin можно запускать обычные Windows приложения, также можно использовать инструменты Cygwin из Windows. Я выбрал Cygwin, потому что виртуальные машины работают не очень хорошо с реальным железом, особенно когда к ним подключаешь отладочные комплекты.
Итак, качаем инсталлятор Cygwin с сайта и запускаем установку. При выборе пакетов для установки нам понадобится лишь 4 пакета из секции «Devel»:
• make
• mingw-binutils
• mingw-gcc-core
• mingw-w32api
На этом, собственно, установка Cygwin и заканчивается.
Компиляция проекта
Все последующие действия делаются, исходя из того, что у вас уже установлен тулчейн arm-none-eabi-gcc и прописаны PATH к нему. Проверяется через командную строку так:
Итак, у вас уже написан ваш makefile и можно приступать к компиляции, для этого запускаем Cygwin Terminal, переходим в папку с нашим проектом с makefile и даем команду make –f, где –f говорит make, что файл Makefile считать именно makefile’ом, а ни чем иным.
После компиляции получаем папку build с скомпилированными бинарниками.