в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры
[ buster ] [ bullseye ] [ bookworm ] [ sid ]
[ Источник: gcc-avr ]
This is the GNU C compiler, a fairly portable optimizing compiler which supports multiple languages. This package includes support for C.
Теги: Разработка программного обеспечения: Компилятор, Разработка на C, Библиотеки, Реализовано на: implemented-in::c, interface::commandline, Роль: Библиотека разработчика, Программа, Область: scope::utility, suite::gnu, Работает с: Исходный код
|
|
|
|
Добро пожаловать в набор инструментов разработки программного обеспечения с открытым исходным кодом для Atmel AVR!
Не существует ни одного инструмента, который предоставляет все необходимое для разработки программного обеспечения для AVR. Требуется много инструментов, работающих вместе. В совокупности группа инструментов называется набором инструментов или, обычно, набором инструментов, поскольку инструменты объединяются в цепочку для создания конечного исполняемого приложения для микроконтроллера AVR.
В следующих разделах представлен обзор всех этих инструментов. Возможно, вы привыкли к кросс-компиляторам, которые предоставляют всему интерфейс с графическим интерфейсом, и не знаете, что происходит «под капотом». Возможно, вы пришли с рабочего стола или сервера и не привыкли к встроенным системам. Или вы, возможно, только изучаете наиболее распространенную цепочку инструментов разработки программного обеспечения, доступную в системах Unix и Linux. Надеемся, что следующий обзор поможет вам разобраться во всем.
Согласно его веб-сайту, «Фонд свободного программного обеспечения (FSF), созданный в 1985 году, занимается продвижением прав пользователей компьютеров на использование, изучение, копирование, изменение и распространение компьютерных программ. FSF способствует разработке и использованию свободное программное обеспечение, особенно операционная система GNU, широко используемая в ее варианте GNU/Linux». FSF остается основным спонсором проекта GNU.
Проект GNU был запущен в 1984 году для разработки полной Unix-подобной операционной системы, которая является свободным программным обеспечением: система GNU. GNU — это рекурсивная аббревиатура от «GNU’s Not Unix»; произносится гух-ну, примерно как каноэ.
Одним из основных проектов системы GNU является Сборник компиляторов GNU, или GCC, и родственный ему проект GNU Binutils. Эти два проекта с открытым исходным кодом обеспечивают основу для цепочки инструментов разработки программного обеспечения. Обратите внимание, что эти проекты изначально разрабатывались для работы в Unix-подобных системах.
GCC означает сборник компиляторов GNU. GCC — очень гибкая система компиляции. Он имеет разные интерфейсы компилятора для разных языков. Он имеет множество серверных частей, которые генерируют ассемблерный код для множества различных процессоров и хост-операционных систем. Все они имеют общий «средний конец», содержащий общие части компилятора, включая множество оптимизаций.
В GCC хост-система — это система (процессор/ОС), на которой работает компилятор. Система target — это система, для которой компилятор компилирует код. И система сборки — это система, на которой построен компилятор (из исходного кода). Если компилятор имеет одинаковую систему для host и для target , он называется собственным компилятором . Если у компилятора разные системы для host и target , он называется кросс-компилятором. (А если все три, build , host и target различаются, он известен как канадский кросс-компилятор, но мы не будем обсуждать это здесь.) , Linux или Windows, и он создан для генерации кода для микроконтроллера AVR target , тогда это кросс-компилятор, и эта версия GCC широко известна как «AVR GCC». В документации или обсуждении AVR GCC используется, когда речь идет о GCC, предназначенном конкретно для AVR, или о чем-то, что специфично для AVR в отношении GCC. Термин «GCC» обычно используется для обозначения чего-то общего в GCC или в GCC в целом.
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.
Дополнительную информацию о GCC см. на веб-сайте GCC и в Руководстве пользователя GCC.
Название GNU Binutils расшифровывается как «Двоичные утилиты». Он содержит ассемблер GNU (gas) и компоновщик GNU (ld), а также множество других утилит, работающих с двоичными файлами, созданными как часть цепочки инструментов разработки программного обеспечения.
Опять же, когда эти инструменты создаются для цели AVR, фактические имена программ имеют префикс «avr-». Например, имя программы на ассемблере для родного ассемблера — «as» (хотя в документации ассемблер GNU обычно упоминается как «gas»). Но когда он создан для цели AVR, он становится «avr-as». Ниже приведен список программ, входящих в состав Binutils:
GCC и Binutils предоставляют множество инструментов для разработки программного обеспечения, но есть один важный компонент, который они не предоставляют: стандартная библиотека C.
Существуют различные проекты с открытым исходным кодом, которые предоставляют стандартную библиотеку C в зависимости от вашего системного времени, будь то для собственного компилятора (GNU Libc), для какой-либо другой встроенной системы (newlib) или для некоторых версий Linux (uCLibc). Набор инструментов AVR с открытым исходным кодом имеет собственный проект стандартной библиотеки C: avr-libc.
AVR-Libc предоставляет многие из тех же функций, что и в обычной стандартной библиотеке C, а также множество дополнительных библиотечных функций, специфичных для AVR. Некоторые из функций стандартной библиотеки C, которые обычно используются в среде ПК, имеют ограничения или дополнительные проблемы, о которых пользователь должен знать при использовании во встроенной системе.
AVR-Libc также содержит большую часть документации по всей цепочке инструментов AVR.
Несмотря на то, что GCC, Binutils и avr-libc являются основными проектами, которые используются для создания программного обеспечения для AVR, есть еще одна часть программного обеспечения, которая связывает все это вместе: Make. GNU Make — это программа, которая создает вещи, в основном программное обеспечение. Make интерпретирует и выполняет Makefile, написанный для проекта. Makefile содержит правила зависимости, показывающие, какие выходные файлы зависят от входных файлов, и инструкции о том, как создавать выходные файлы из входных файлов.
Некоторые дистрибутивы наборов инструментов и других инструментов AVR, таких как MFile, содержат шаблон Makefile, написанный для набора инструментов AVR и приложений AVR, который вы можете скопировать и изменить для своего приложения.
Дополнительную информацию см. в Руководстве пользователя GNU Make.
После создания программного обеспечения вам потребуется запрограммировать устройство. Вы можете сделать это с помощью программы AVRDUDE, которая может взаимодействовать с различными аппаратными устройствами для программирования вашего процессора.
AVRDUDE — очень гибкий пакет. Вся информация о процессорах AVR и различных аппаратных программаторах хранится в текстовой базе данных. Эта база данных может быть изменена любым пользователем для добавления нового оборудования или процессора AVR, если он еще не указан.
Отладчик GNU (GDB) — это отладчик командной строки, который можно использовать с остальными инструментами AVR. Insight — это GDB плюс графический интерфейс, написанный на Tcl/Tk. И GDB, и Insight настроены для AVR, а основные исполняемые файлы имеют префикс имени цели: avr-gdb и avr-insight. Существует также графический интерфейс «текстового режима» для GDB: avr-gdbtui. DDD (отладчик отображения данных) — еще один популярный графический интерфейс для GDB, доступный в системах Unix и Linux.
AVaRICE — это серверная программа для AVR GDB, которая взаимодействует с внутрисхемным эмулятором Atmel JTAG (ICE) для обеспечения возможностей эмуляции.
SimulAVR — это симулятор AVR, используемый в качестве серверной части с AVR GDB.
Существуют также другие дополнительные утилиты, которые могут быть полезны для добавления в ваш набор инструментов.
SRecord
представляет собой набор мощных инструментов для управления файлами загрузки EPROM. Он читает и записывает множество форматов файлов EPROM и может выполнять множество различных манипуляций.
MFile
— это простой генератор Makefile, предназначенный для помощи в быстрой настройке Makefile для использования в вашем приложении AVR.
Все различные проекты с открытым исходным кодом, составляющие всю цепочку инструментов, обычно распространяются в виде исходного кода. На усмотрение пользователя остается собрать инструментальное приложение из его исходного кода. Это может быть очень сложной задачей для любого потенциального пользователя этих инструментов.
К счастью, есть люди, которые помогают в этой области. Добровольцы тратят время на сборку приложения из исходного кода на определенных хост-платформах и иногда упаковывают инструменты для удобной установки конечным пользователем. Эти пакеты содержат двоичные исполняемые файлы инструментов, предварительно созданные и готовые к использованию. Эти пакеты известны как «дистрибутивы» цепочки инструментов AVR или более сокращенным названием «дистрибутивы».
Дистрибутивы набора инструментов AVR доступны для FreeBSD, Windows, Mac OS X и некоторых разновидностей Linux.
Все эти инструменты, от оригинального исходного кода во множестве проектов до различных дистрибутивов, собраны многими добровольцами. Всем этим проектам всегда может понадобиться дополнительная помощь от других людей, которые готовы посвятить часть своего времени добровольно. Есть много разных способов помочь людям с разным уровнем навыков, способностей и свободного времени.
Вы можете помочь ответить на вопросы в списках рассылки, таких как avr-gcc-list, или на форумах на веб-сайте AVR Freaks. Это помогает многим людям, плохо знакомым с инструментами AVR с открытым исходным кодом.
Если вы считаете, что нашли ошибку в каком-либо из инструментов, всегда полезно отправить хороший отчет об ошибке в соответствующий проект. Хороший отчет об ошибке всегда помогает другим добровольцам проанализировать проблему и исправить ее для будущих версий программного обеспечения.
Вы также можете помочь исправить ошибки в различных программных проектах или добавить желаемые новые функции.
Всегда рады волонтерам! 🙂
Сюда я буду загружать сборки AVR-GCC для 32- и 64-битной Windows, которые также будут включать Binutils, AVR-LibC, AVRDUDE , Сделать и GDB. Я буду стараться обновлять сборки с помощью последних выпусков инструментов, когда смогу.
Двоичные файлы собраны из исходного кода на виртуальной машине Debian 11 с MinGW (GCC 9.1.0 и более ранние версии были созданы на виртуальной машине Arch Linux), за исключением AVRDUDE, где предварительно собранные двоичные файлы можно получить из официальной области загрузки. Предоставляются как 32-битные, так и 64-битные двоичные файлы Windows. Вероятно, нет никакой пользы от использования 64-битных программ, но все крутые ребята делают это, так что почему бы и нет.
Сценарий bash для сборки AVR-GCC, AVR-Binutils, AVR-LibC и AVR-GDB из исходного кода также представлен ниже, что упрощает сборку этих инструментов для себя.
Инструмент | Версия |
---|---|
ССЗ | 12.1.0 |
Бинутилс | 2,38 |
AVR-LibC | СВН с дополнениями |
ГДБ | 12.1 |
АВРДУДЕ | 7.0 (не входит в выпуск Linux) |
Марка | 4.2.1 (не входит в версию Linux) |
ПОСЛЕДНЯЯ | avr-gcc-12.1.0-x64-windows.zip (115 МБ) AVG-GCC 12.1.0 Windows x64 (64-разрядная версия) MD5: 183ACF05589C85E1C8022B2472157E85 |
ПОСЛЕДНЯЯ | avr-gcc-12.1.0-x86-windows.zip (116 МБ) AVG-GCC 12.1.0 Windows x86 (32-разрядная версия) MD5: C846DAA58C4CBAC0B0C72FC9D1CAA288 |
ПОСЛЕДНЯЯ | avr-gcc-12. 1.0-x64-linux.tar.bz2 (86,7 МБ) AVG-GCC 12.1.0 Linux x64 MD5: 5314AE8144E633478B91B0015BD3FC54 |
Более старые версии можно найти [ЗДЕСЬ]
Обновить Arduino IDE довольно просто, хотя могут быть некоторые несовместимости с некоторыми библиотеками. Проверено только с Arduino 1.8.13.
оборудование/инструменты
avr
в другое место, например, на рабочий стол (переименование папки не сработает, у Arduino есть функция автоопределения, которая иногда путается) tools
и переименуйте ее в avr
bin/avrdude.exe
и встроенные_инструменты_версии.txt
и папку etc
из старой папки avr
в новуюЭтот сценарий сборки установит необходимые пакеты, создаст каталоги и соберет инструменты из исходного кода.