Простые устройства
Просто об устройствах

Eclipse+AVR+ARM: первые шаги. Часть третья.

Шаг 4: Создание проекта.

Создание нового проекта выполняется либо командой меню File – New, либо нажатием соответствующей кнопки на панели кнопок. Открывается окно такого вида:{nomultithumb}

Project Wizard

Это окно мастера создания проектов, который позволяет шаг за шагом создать и предварительно настроить проект. Выбрать из всего множества вариантов надо C Project (или С++ Project — в зависимости от вашей цели), а затем нажать кнопку Next.

C ProjectДля любого проекта надо указать имя Project name, а так же, если не устраивает предлагаемый путь, указать папку проекта, сняв галочку Use default location. Тип проекта (Project type) указывается тот, который вы намерены создавать:

AVR Cross Target Application – обычный проект
AVR Cross Target Static Library – проект для статической библиотеки
Makefile project – проект, собираемый вручную написанным makefile.

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

В соседнем окне Toolchains вы должны выбрать подходящий для вашей задачи тулчейн. Для AVR это скорее всего будет единственный вариант AVR-GCC, а вот для проектов ARM или Windows список тулчейнов может быть и поболее. В любом случае вы либо соглашаетесь с тем, что предлагается по умолчанию, либо указываете то, что вам конкретно нужно.

При вводе имени проекта Eclipse сразу же контролирует его на корректность и если что-то не так, уведомит вас немедля:

Предупреждение
На рисунке показано, как Eclipse предупреждает, что папка с таким именем уже существует на диске. Это не ошибка, но Eclipse бдит. Если у вас уже имелась папка с файлами исходных текстов, это как раз и позволит вам создать проект, в который сразу и войдут исходники.

После нажатия Next появляется следующая страничка мастера проектов:

Select Configurations
Теперь вы должны выбрать конфигурации своего проекта. Чуть подробнее о конфигурациях.

Когда вы разрабатываете более-менее сложный проект, часто приходится использовать в нем разные вспомогательные вещи, нужные только для отладки, и совершенно лишние в окончательном варианте. Вот для этого Eclipse сразу предлагает вам 2 варианта конфигураций вашего проекта: Debug для отладочного и Release для финального. Для каждой конфигурации используются независимые настройки компилятора, что с легкостью позволяет для отладки отключать оптимизацию, а для финального варианта — включать. Надо сказать, что количество конфигураций должно быть не менее одной, т. е. вы можете либо оставить только один из предложенных вариантов, отметив его галочкой, либо сразу все варианты. Впоследствии количество конфигураций может быть изменено хоть до сотни — все в ваших силах.

{ads1}

Кнопка Advanced settings... позволяет сразу на этом этапе задать уникальные настройки для отмеченных конфигураций, но я советую сделать это позже.

Наконец, вы попадаете в до боли родное окно выбора типа микроконтроллера и его тактовой частоты:

Тип МК и тактовая частота
Комментарии, как говорится, излишни. Это последний этап работы мастера, завершить который надо нажатием кнопки Finish.

Папка проекта Теперь в окне Project Explorer появляется папка вашего проекта.

На этом этапе проект пуст, но уже содержит ссылки на подключаемые файлы, являющиеся «стандартными» для выбранного тулчейна (Includes). Наступает пора создания файлов проекта, т. е. файлов исходных текстов и заголовочных. Делается это ничуть не сложнее (но и не проще!), чем создание проекта. Самое интуитивное — щелкнуть на нужной кнопке в панели кнопок IDE:

Новый файл
Откроется уже знакомый нам мастер новых файлов, но теперь мы уже выбираем не проект, а файл нужного нам типа:

Выбор типа файла
Но вот после нажатия Next мастер пойдет другим путем:

New Source File
Для создания исходника надо обязательно задать его имя (Source File) вместе с правильным расширением — это важно! Правильное расширение — это не просто нужная буква или несколько букв, но и нужный регистр символов. Пользователи Windows привыкли, что во многих случаях все равно, каким регистром символов задано имя и расширение файла, но при работе с AVR-GCC придется привыкать к ***nix правилам.

{ads1}

При желании можно изменить папку (Source Folder), где исходник будет храниться, а так же шаблон (Template) для файла. Шаблон — это заранее подготовленная «заготовка» файла, нажав кнопку Configure... (настроить) вы можете изменить выбранный шаблон, однако, тема шаблонов заслуживает отдельной главы, а пока что не терпится все-таки создать, наконец проект! Поэтому жмем кнопку Finish.

Первый файл проекта создан!
Обратите внимание: в проекте теперь присутствует созданный только что исходник, и он же сразу открыт в редакторе. И, внимание! - исходник не пуст — это как раз и есть плюс шаблона. Я заранее сделал шаблон с этим содержимым, и теперь любой исходник у меня автоматически содержит этот текст, который остается лишь немного подправить. Как я уже говорил, о шаблонах поговорим позже, а сейчас обратите внимание на кружочек с минусом рядом с номером первой строки. Это иконка сворачивания (folding) блока текста. Eclipse автоматически определяет, какие куски текста могут быть свернуты, и помечает их начало (а при наведении мышки на иконку — и конец). Щелчок на иконке — и кусок текста сворачивается в одну строку! Это позволяет просматривать структуру большого исходника в этаком «экономном» режиме. Попробуйте попозже с этим поиграться — это полезно.

Ну а пока вводим наш супер-исходник:

Автопроверка синтаксиса
Видите иконку с вопросиком? Eclipse на лету проверяет синтаксис вводимой программы и напоминает о проблемах. Если навести на эту иконку мышку, то всплывет пояснение о том, что Eclipse не понравилось — это позволяет еще до компиляции найти часть грубых ошибок.

Однако, не спешите продолжать ввод! Давайте вместо продолжения нажмем Ctrl-Space:

Автозавершение ввода
Опаньки! Сразу «дописалось» ключевое слово! Продолжаем, пытаясь ввести «угловые» скобки. Обратили внимание, что после ввода «левой» скобки сразу же появилась и «правая»? Это чтобы вы не забыли про нее: непарные скобки (не только угловые) — распространенная ошибка. Продолжаем ввод главного подключаемого хидера avr/io.h, при этом тоже в «экономном» стиле, т. е. вместо ввода букв нажимаем Ctrl-Space. Открывается список всего, что можно вставить в текущем месте программы — ни больше, ни меньше!

{ads2}То есть вводить вручную почти ничего и не надо — только в нужный момент жми Ctrl-Space и выбирай мышкой нужное! Естественно, можно после нажатия волшебной комбинации продолжать ввод букв — тогда список доступных вариантов будет сразу перестраиваться с учетом введенного начала слов — это ускоряет. Ну а если Eclipse посчитает, что существует только один вариант, как было с #include, вместо списка слово будет завершено автоматически.

Обращаю ваше внимание: Eclipse помогает вводить не только ключевые слова Си, но и все введенные пользователем переменные, типы, функции, константы и т. п., причем даже те, что находятся в подключаемых хидерах! Когда вы работаете с большими проектами, это чертовски удобный помощник!

Однако, вернемся к нашему исходнику.

Исходник введен
По мере ввода вы наверняка обратили внимание, что все скобки дополняются парными, синтаксис подсвечивается и т. п. Так же видно, что даже в столь простой программе Eclipse может часть строк свернуть, как было сказано ранее. Но пока попробуем скомпилировать проект, для чего есть кнопка:

Кнопка компиляции
Если просто нажать на «молоток», то скомпилируется текущая конфигурация проекта, а если нажать на стрелочку, то можно будет выбрать нужную конфигурацию, которая станет текущей и будет скомпилирована. Жмем и смотрим на результаты.

В процессе компиляции вывод ведется в закладку Console. Когда компилятор отработает, мы увидим что-то похожее на это:

Консоль: результаты компиляции
Как видите, ошибок нет, все успешно скомпилировалось. А теперь посмотрите на состав проекта:

Состав проекта обновился
Видите: появилась папка с названием, совпаающим с текущей конфигурацией — именно в ней и «сложены» все результаты компиляции. Разверните папку:

Результат компиляции: много файлов!

Да там файлов — куча!

С расширением o – объектные файлы, результат работы компилятора, с расширением d — файлы зависимостей (вам не потребуются), 4 штуки makefile – их можно открыть и посмотреть, но редактировать не имеет смысла, т. к. они пересоздаются автоматически. Кроме этого файл с расширениеь lss — листинг, и map – файл-карта. Листинг содержит сразу машинные коды, соответствующие им ассемблерные команды и операторы языка Си, которые на эти команды разложены компилятором. А map-файл содержит сведения о размере и адресе всех перменных, функций и т. п. элементов, с которыми работал компоновщик. Оба файла очень полезны при отладке программ.

Навигация по проектуКстати, мы до сих пор не обращали внимание на то, что в нашем эксплорере проектов даже исходники показаны вроде папок, то есть могут «раскрываться» - интересно, что там окажется?

А окажутся там все сущности языка Си, которые там есть, в частности, все хидеры, функции, типы, переменные и т. п. Чтобы найти в тексте программы нужную сущность, достаточно щелкнуть дважды на ней в эксплорере проекта — это очень удобно, если проект сложный, многофайловый.

На этом очередной этап освоения Eclipse можно считать завершенным: мы научились создавать проекты, наполнять их файлами исходных текстов, освоили систему автоподсказок и других возможностей редактора, разобрались с компиляцией и ее результатами. По-моему, неплохо. В следующий раз мы рассмотрим в деталях 2 важнейших шага: настройка опций компилятора и прошивка микроконтроллера.

Комментарии   

#1 druidcat 10.10.2012 18:02
Спасибо ARV. Очень полезная статья.
Ctrl-Space очень удобно пользоваться.
Жду с не терпением продолжения статей. Уж очень мало информации по Eclipce+AVR на русском языке.
У меня вопрос. Много уважаемый ARV, а вы так же продолжаете пользоваться Helios или же пользуетесь Juno. Я если честно не понимаю разницы в этих IDE. Поэтому поставил Juno. Это плохо или хорошо? :)
#2 druidcat 10.10.2012 20:52
Я очень внимательно прочел ваш пост по Eclipse на форуме радиокот. И попытался воспользоваться Eclipce. Мои первые впечатления были негативные. Но со временем,я понял, что Eclipse предъявляет требования к С более жесткие и правильные. Одним словом из-за своего не знания С отписался негативно о Eclipce. Попытался написать небольшую инструкцию о наладке в Eclipce. Но так и не довел эту статью до ума, т.к. у самого не работает эта отладка в simulavr. Вот ссылка на статью/вопрос.
Не судите строго, я в делах AVR и С человек новый.
#3 ARV 10.10.2012 22:44
С некоторых пор я не желаю иметь ничего общего с сайтом РадиоКот. Так же я рекомендую различные объемные дискуссии вести через форум - ссылочку обсудить на форуме в конце каждой статьи видели? Рекомендую :-)
simulavr на тот момент, когда я пытался с ним разобраться. был крайне глючным - отладка вылетала молча с подвешиванием Eclipse. Как появится время - погляжу, как изменилась ситуация с новой версией (если она есть. конечно).
#4 led-z 10.10.2012 23:46
Спасибо за статьи, очень просто и понятно. И главное - написано доступным языком.
Спокойно поставил juno с сайта и настроил (версия http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/junosr1). До этого неделю устанавливал и удалял разное, читал форумы - всё бесполезно.
Жду продолжения и ещё раз спасибо!
#5 druidcat 11.10.2012 01:26
Все ясно. :)
Завтра, вечером, после работы, постораюсь перенести свою тему целиком. Я на офф страничке симулавр скачал версию 1.0.0
#6 akkinak 07.01.2013 04:58
Приветствую!
у меня в проэкт не подключется includes, а на
директиву #include выдает:"Unresol ved inclusion" почему?
headers уставовлены в : /usr/lib/avr/in clude
AVR Eclipse Plugin 2.4.0

Добавить комментарий

Защитный код
Обновить

Обсудить эту статью на форуме (7 ответов).

Copyright 2019 © simple-devices.ru.
При использовании материалов ссылка на simple-devices.ru обязательна.