Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Описание особенностей использования GCC компилятора



В нашем лабораторном практикуме мы будем использовать свободно распространяемое ПО для разработки и компиляции программ на языке «С». В качестве среды разработки, как уже указывалось, используется среда AVR Studio, которая по умолчанию настроена на использование компилятора GCC. Определение для термина «GCC» в Википедии выглядит следующим образом:

«GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Изначально названный GNU C Compiler поддерживал только язык Си. Позднее, GCC был расширен для компиляции исходных кодов на таких языках программирования как C++, Objective-C, Java, Фортран и Ada.»

Среди поддерживаемых архитектур данного компилятора - большой список процессоров и микроконтроллеров (в том числе Atmel AVR, ARM и др.). Работа с компилятором производится в форме командной строки, в которой задаются все необходимые для работы компилятора параметры. Для упрощения взаимодействия компилятора с графической средой разработки, а также для реализации вызова ряда других вспомогательных программ используется специальная утилита «make». Вот как описано назначение данной утилиты в Википедии:

«make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки.

Утилита использует специальные make-файлы, в которых указаны зависимости файлов друг от друга и правила для их удовлетворения. На основе информации о времени последнего изменения каждого файла make определяет и запускает необходимые программы.»

Иными словами – с помощью данной утилиты мы можем выполнить необходимые нам действия с файлами проекта для достижения Цели, например, получения HEX файла прошивки.

Для описания выполняемых действий «make» используется текстовый файл «makefile». В данном файле по определенным правилам указываются Цели (задачи) и способы их достижения. Например, в качестве целей могут быть указаны следующие операции: компиляция исходных файлов, линковка, преобразование форматов, программирование (прошивка) контроллера, очистка проекта и т.д. Для достижения Цели обычно производится вызов дополнительных утилит (программ) с необходимыми параметрами, указанными в командной строке, например вызов компилятора GCC со списком файлов и параметров компиляции.

Ниже приведен простой пример «Makefile»:

CC=gcc // переменная названия программы компиляции CFLAGS=-Wall -O3 // переменная строки флагов компиляции LDFLAGS= // переменная строки флагов линковки OBJECTS=main.o foo.o bar.o // список объектов (файлов) TARGET=prog // переменная строки наименования цели RM=rm -fINSTALL=/usr/bin/install -c BINDIR=/usr/local/bin $(TARGET): $(OBJECTS) // правило достижения цели (линкованная программа) $(CC) $(LDFLAGS) -o $@ $(OBJECTS) %.o: %.c // правило получения объектного файла $(CC) $(CFLAGS) -c $< foo.o: foo.c main.h bar.o: bar.c main.hmain.o: main.c main.h clean: // правило очистки проекта $(RM) $(OBJECTS) $(TARGET) install: $(TARGET) // правило инсталляции (запуска) проекта $(INSTALL) $(TARGET) $(BINDIR)

В среде AVR Studio может использоваться сгенерированный системой «Makefile», либо указан произвольный пользовательский (внешний).

Пример сгенерированного системой «Makefile»:

###############################################################################





Дата публикования: 2015-10-09; Прочитано: 983 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...