Skip to content

Latest commit

 

History

History
122 lines (97 loc) · 7.95 KB

README.RUS.md

File metadata and controls

122 lines (97 loc) · 7.95 KB

Antares

Antares, это набор скриптов для сборки ПО нацеленный на "голое железо". Изначально эта билдсистема разработывалась, чтобы быть переносимой на разные архитектуры. И добавление новой архитектуры тривиально. Система использует Kconfig и написанный с нуля набор Makefile'ов для облегчения процесса разработки. Система до сих пор в состоянии пре-альфа, так что могут быть некоторые баги. Потому, если что-то не сработает - пишите!

Введение

Традиционные билдсистемы (cmake, scons, autotools) использовать для поддержки кода, призванного работать на голом железе крайне неприятно, потому как в большинстве своем, они для этого совершенно не приспособлены. Проприетарные IDE вроде IAR/CodeComposer/Keil предоставляют свои средства для управления проектами, но их все равно далеко не всегда удобно использовать. Особенно тем, кто привык работать в VIM/Emacs. Вышеупомянутые среды среды хороши для проектов вида "написать и забыть", но ими очень неудобно пользоваться, когда необходимо поддерживать энное количество общего кода между разными проектами с совершенно разной аппаратурой. Отдельное внимание стоит обратить на настройку библиотечного кода и проекта. Самый популярный и простой способ настраивать кодовую базу, в подобных проектах это config.h с директивами для препроцессора. Однако, при росте количества параметров возникает проблема учета зависимостей. Примером может служить загрузчик u-boot, конфигурация которого для работы на новой плате проходит в несколько итераций вида: 1 Правка конфига 2 Попытка собрать, если не получилось вернуться на шаг 1.

Наилучший, как показало время, способ поддерживать очень настраиваемую кодовую базу, это KConfig, используемый в ядре Linux. Большей частью потому, что язык Kconfig позволяет учитывать зависимости между параметрами и избегать бардака в config.h.

Это еще одно ардуйно?

Это НЕ еще одно ардуйно. Целью проекта не является создать кривую пародию на IDE. Пользователю предлагается использовать тот редактор кода, к которому он привык. VIM/Emacs/Eclipse/Kdevelop. Что угодно. Целью проекта не является убедить пользователя, что он пишет на неком "инновационном" языке программирования. Большая часть библиотечного кода в antares написана на С. Antares просто конфигурирует готовый библиотечный код, который легко можно разделять между проектами, предоставляет возможность просто параметры сборки и прошивки и не мешается. Можно это считать просто одним большим Makefile'ом-переростком. Хотя в antares есть приличное количество библиотечного кода, пользоваться им не обязательно.

То есть, в двух словах, antares это...

Набор мейкфайлов, скриптов, и библиотечного кода, которым можно пользоваться в своих проектах, снабженный Kconfig'ом.

Поддерживаемые архитектуры

Сейчас поддерживается несколько архитектур и семейств мк. avr, arm (stm32), 8051 (at89 и stc), pic32

Другие архитектуры добавляются по мере наличия времени и аппаратуры для тестирования. Если хочется больше - патчи приветствуются.

Поддерживаемые операционные системы

Реально тестировалить только Linux (ubuntu, arch, agilia, rhel). Mac OS X так же подходит при наличии GNU окружения (gstat, gecho, gmake). Windows возможно подойдет (через cygwin), но на данный момент это не является платформой, над поддержкой которой велась бы разработка.

Компиляция в несколько потоков?

Можно без проблем передавать -jXX флаг для make чтобы ускорить сборку. Должно работать. Если не работает - сообщите о баге.

Документация?

Смотрите калалог docs в дереве antares. Документация доступна на русском и английском, по понятным причинам английская документация обычно более актуальна.

Официальные дев-борды есть?

Antares это не open-hardware проект. И не планирует продажи начинающим криво разведенных низкопроизводительных плат по завышенным ценам. Вы можете использовать любую имеющуюся под рукой плату, взять наиболее близкий к ней пример и поиграться с menuconfig'ом. Если семейство мк поддерживается, то заставить все заработать быстро, просто и весело.

Опенсурс?

А то! Без этого было бы не весело. Лицензия на большую часть кода - GPLv2, некоторый библиотечный код идет с другой лицензией.

Сторонний код

ST Periph libs для STM32. BSD-like лицензия. vUSB для avr. Двойная, GPLv2 с исключением и проприетарная. TCP/IP стэк lwIP. BSD-like лицензия

Быстрый старт?

Смотрите документ docs/ru/quickstart

Кто?

Андрей 'Necromant' Андрианов - Автор и основной разработчик antares. Никита 'webconn' Маслов. Тестирование, багфиксинг. Дмитрий Сухотский - Тестирование, багфиксинг. Drakmail - тестирование на Mac OS X