Краткий обзор Toolchain

Введение

Добро пожаловать в открытый комплект - toolchain (цепь инструментов средств) разработки программного обеспечения для Atmel AVR! Нет ни одного инструмента, который обеспечивает сразу весь необходимый набор программного обеспечение для AVR. Требуется комплект инструментальных средств, работающих вместе.

В следующих разделах приведён краткий обзор всех этих инструментальных средств. Альтернативно можно использовать кросс - компиляторы, которые обеспечены IDE (графическим интерфейсом пользователя), в которых toolchain работает "под капюшоном".

FSF и GNU

Согласно web узлу, «фонда бесплатного программного обеспечения» (FSF), установленного в 1985, выделенного для продвижения прав компьютерных пользователей в использовании, изучении, копировании, изменении, и перераспределении компьютерных программ. Фонд бесплатного п/о продвигает развитие и использование свободного программного обеспечения, особенно под операционную систему GNU, широко используемую в её варианте GNU/Linux. FSF - первичный спонсор проекта GNU.

Проект GNU был основан в 1984, для разработки законченной операционной системы, подобной Unix, которая является свободным программным обеспечением: система GNU.

Один из основных проектов системы GNU - коллекция компиляторов GNU, или GCC, и её дочерний проект, GNU Binutils. Эти два открытых проекта обеспечивают основу для разработки программного обеспечения. Обратите внимание, что эти проекты первоначально были разработаны для работы на системах, подобных Unix.

GCC

GCC - коллекция компиляторов GNU. GCC - очень гибкая система компиляции. Она имеет разные внешние интерфейсы для разных языков. Она способна генерировать ассемблерный код для множества разных процессоров и ведущих операционных систем.

В GCC - host (главная компьютерная) система, та на которой выполняется компилятор(processor/OS).               Target (адресат) – та система, для которой компилятор компилирует код.                  И, build - система, на которой сформирован компилятор (из исходного текста).                            Если host и target являются одной и той же системой, то компилятор работающий в этой системе известен как native (абориген). Если компилятор имеет разные системы host и target, он известен как кросскомпилятор. И, если все три системы - build, host и target - разные, то такой компилятор известен как канадский кросскомпилятор, но мы не будем рассматривать его здесь.                                                      Когда GCC сформирован для выполнения на host системе, типа FreeBSD, Linux, или Windows, а адресатом является микроконтроллер AVR, то это - кросскомпилятор, и такая версия GCC обычно известна как "AVR GCC".

GCC отличается от большинства других компиляторов. Он сосредоточен на трансляции языка высокого уровня только к целевой трансляции. AVR GCC имеет три доступных компилятора для AVR: Язык C, C++, и Ada.

GCC также известен как программа - драйвер, в которой он знает, и управляет другими программами без швов, чтобы создать заключительный вывод. Ассемблер, и компоновщик - части другого открытого проекта по имени GNU Binutils. GCC знает, как управлять ассемблером GNU (gas), чтобы транслировать вывод компилятора. GCC знает, как управлять компоновщиком GNU (ld), чтобы связать все объектные модули в конечную выполнимую программу.

Проекты GCC и Binutils, взаимосвязаны, и многие из одних и тех же добровольцев участвуют в обоих открытых проектах.

Когда GCC формируется для AVR адресата, имена программ начинаются с "avr-". Поэтому выполнимое имя для AVR GCC: avr-gcc. Имя "avr-gcc" используется в документации и обсуждении при обращении непосредственно к программе и не только целое AVR GCC система.

См. web узел GCC, и Руководство Пользователя GCC для получения дополнительной информации о GCC.

GNU Binutils

GNU Binutils – сокращение от "Binary Utilities (Двоичные Утилиты)". GNU Binutils содержит ассемблер GNU (gas), и компоновщик GNU (ld), но также содержит и много других утилит, которые работают с двоичными файлами, которые созданы как часть разработки программного обеспечения toolchain.

Опять же, когда эти инструментальные средства сформированы для адресата AVR, имена программы начинаются с "avr-". Например, имя ассемблерной программы, для родного ассемблера - "as" (даже при том, что в документации ассемблер GNU обычно упоминается как "gas"). Но, когда сформировано для адресата AVR, это становится "avr-as". Ниже - список программ, которые включены в Binutils:

avr-as

Ассемблер.

avr-ld

Компоновщик.

avr-ar

Создание, изменение, и извлечение из библиотек (архив).

avr-ranlib

Генерирует индекс к библиотеке (архив) содержание.

avr-objcopy

Копирует и транслирует объектные файлы к различным форматам.

avr-objdump

Отображает информацию от объектных файлов, включая разборку.

avr-size

Список размеров разделов и полный размер.

avr-nm

Список символов объектных файлов.

avr-strings

Список печатных строк файлов.

avr-strip

Брак символов файлов.

avr-readelf

Отображение содержания файлов формата ELF.

avr-addr2line

Конвертация адреса в файл и линию.

avr-c++filt

Фильтр к demangle закодированный C++ символы.

avr-libc

GCC и Binutils обеспечивают много инструментальных средств для разработки программного обеспечения, но есть один необходимый компонент, которого они не имеют: стандартная библиотека языка C.

Есть разные открытые исходные проекты, которые обеспечивают Стандартную библиотеку для C в зависимости от вашего системного времени, или для родного компилятора (GNU Libc), для некоторой другой внедренной системы (newlib), или для некоторых версий Linux (uCLibc). Открытый исходный AVR toolchain имеет собственный проект стандартной библиотеки для C: avr-libc.

AVR-LIBC обеспечивает функции, имеющиеся в стандартной библиотеке C и много дополнительных библиотечных функций для AVR. Некоторые из функций стандартной библиотеки C, которые обычно используются в PC среде, имеют ограничения или дополнительные проблемы, о которых пользователь должен знать.

AVR-Libc также содержит много документации о всём AVR toolchain.

GNU Make

 

Даже при том, что GCC, Binutils, и avr-libc являются основными проектами, которые используются для формирования программного обеспечения для AVR, есть другая часть программного обеспечения, которая связывает их вместе: Make. GNU Make является программой, которая делает вещи, и главным образом программное обеспечение. Make интерпретирует и выполняет Makefile написанный для проекта. Makefile содержит правила зависимости, показ, какие выходные файлы зависят на который входные файлы, и команды о том, как формировать выходные файлы из входных файлов.

Некоторые распределения toolchains, и других инструментальных средств AVR типа MFile, содержат шаблон Makefile, написанный для AVR toolchain и AVR приложения, который Вы можете скопировать и изменить для вашего приложения.

См. Руководство Пользователя GNU Make для получения дополнительной информации.

AVRDUDE

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

AVRDUDE - очень гибкий пакет. Вся информация о процессорах AVR и различные аппаратные программы сохранены в базе данных. Эта база данных может измениться любым пользователем, чтобы добавить новые аппаратные средства или добавлять новый процессор AVR.

GDB / Insight / DDD

Отладчик GNU (GDB) является отладчиком линии команды, который может использоваться с остальной частью AVR toolchain. Понимание - GDB плюс GUI, написанный в Tcl/Tk. И GDB и Понимание конфигурированы для AVR, и основные выполнимые программы начинаются с имени avr-gdb, и avr-insight. Есть также "текстовый режим" GUI для GDB: avr-gdbtui. DDD (Data Display Debugger Отладчик Дисплея Данных) является другой популярной передней частью графического интерфейса пользователя к GDB, доступному на Unix и Linux системах.

AVaRICE

AVaRICE является конечной программой к AVR GDB и интерфейсы к Atmel JTAG In-Circuit Emulator  (ICE) (Внутрисхемный эмулятор), обеспечивать возможности эмуляции.

SimulAVR

SimulAVR - имитатор AVR, используемый как хуй с AVR GDB. К сожалению, этот проект в настоящее время не поддерживается и может использовать некоторую справку.

Утилиты

Есть также другие доступные дополнительные утилиты, которые могут быть добавлены к вашему комплекту инструментальных средств.

SRecord является коллекцией мощных инструментальных средств для того, чтобы управлять файлами загрузки EPROM. Это читает и пишет многочисленные форматы файла EPROM, и может исполнить много разлных манипуляций.

MFile является простым генератором Формирования файла, предназначен как помощь быстро настроить Формирование файла, чтобы использовать для вашего AVR приложения.

Распределение Toolchain

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

К счастью есть люди, которые выручают в этой области. Добровольцы тратят время, чтобы формировать приложение из исходного текста на специфических ведущих платформах и иногда упаковывают инструментальные средств для удобной инсталляции конечным пользователем. Эти пакеты содержат двойные выполнимые программы инструментальных средств, предсделанных и готовый использовать. Эти пакеты известны как "распределения" AVR toolchain, или более сокращенным названием, "distros".

AVR toolchain distros доступны для FreeBSD, Windows, Mac OS X, и некоторых разновидностях Linux.

Открытый Источник

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

Вы можете помочь отвечать на вопросы в списках адресатов типа avr-gcc-list, или на форумах в AVR web узел Пятен. Это помогает многим людям, плохо знакомым с открытыми исходными инструментальными средствами AVR.

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

Вы можете также помочь нйти ошибки в различных программных проектах, или добавить новые возможности.

Добровольцы - всегда добро пожаловать! :-)

 

Hosted by uCoz