8-900-374-94-44
[email protected]
Slide Image
Меню

Gcc avr: Сделаем GCC C++ для AVR и Arduino лучше? / Хабр

Debian — Подробная информация о пакете gcc-avr в sid

в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры

[  buster  ] [  bullseye  ] [  bookworm  ] [  sid  ]

[ Источник: gcc-avr  ]

GNU C compiler (cross compiler for 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, Работает с: Исходный код

Другие пакеты, относящиеся к gcc-avr

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: binutils-avr (>= 2. 26.20160125+Atmel3.6.2)
    Binary utilities supporting Atmel’s AVR targets
  • dep: libc6 (>= 2.33) [не alpha, ia64, riscv64]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый libc6-udeb
    dep: libc6 (>= 2.36) [riscv64]
  • dep: libc6.1 (>= 2.33) [alpha, ia64]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый libc6.1-udeb
  • dep: libgmp10 (>= 2:6.2.1+dfsg) [не riscv64]
    библиотека для работы с числами произвольной точности
    dep: libgmp10 (>= 2:6. 2.1+dfsg1) [riscv64]
  • dep: libmpc3 (>= 1.1.0)
    multiple precision complex floating-point library
  • dep: libmpfr6 (>= 3.1.3)
    вычисления с плавающей точкой повышенной точности
  • dep: zlib1g (>= 1:1.1.4)
    библиотека сжатия
  • sug: avr-libc (>= 1:2.0.0+Atmel3.6.2)
    стандартная библиотека языка C для разработки на Atmel AVR
  • sug: gcc (>= 4:4.8)
    компилятор C от GNU
  • sug: gcc-doc (>= 4:4.8)
    documentation for the GNU compilers (gcc, gobjc, g++)

Загрузка gcc-avr

Также она даёт информацию о размере пакета и размере пакета в установленном состоянии.»>
Загрузить для всех доступных архитектур
АрхитектураВерсияРазмер пакетаВ установленном видеФайлы
alpha (неофициальный перенос)1:5.4.0+Atmel3.6.2-315 531,9 Кб 76 164,0 Кб [список файлов]
amd641:5.4.0+Atmel3.6.2-315 038,5 Кб68 544,0 Кб [список файлов]
arm641:5.4.0+Atmel3.6.2-313 752,2 Кб68 432,0 Кб [список файлов]
armel1:5.4.0+Atmel3.6.2-312 928,8 Кб64 283,0 Кб [список файлов]
armhf1:5.4.0+Atmel3.6.2-313 132,9 Кб54 371,0 Кб [список файлов]
hppa (неофициальный перенос)1:5. 4.0+Atmel3.6.2-314 526,5 Кб69 194,0 Кб [список файлов]
i3861:5.4.0+Atmel3.6.2-316 115,7 Кб72 973,0 Кб [список файлов]
ia64 (неофициальный перенос)
1:5.4.0+Atmel3.6.2-318 493,4 Кб114 757,0 Кб [список файлов]
m68k (неофициальный перенос)1:5.4.0+Atmel3.6.2-312 593,6 Кб65 092,0 Кб [список файлов]
mips64el1:5.4.0+Atmel3.6.2-313 873,5 Кб80 433,0 Кб [список файлов]
mipsel1:5.4.0+Atmel3.6.2-314 318,2 Кб75 153,0 Кб [список файлов]
ppc64 (неофициальный перенос)1:5.4.0+Atmel3.6.2-314 912,1 Кб83 735,0 Кб [список файлов]
ppc64el1:5.4.0+Atmel3. 6.2-315 230,3 Кб80 121,0 Кб [список файлов]
riscv64 (неофициальный перенос)
1:5.4.0+Atmel3.6.2-3+b114 625,9 Кб62 702,0 Кб [список файлов]
s390x1:5.4.0+Atmel3.6.2-313 702,9 Кб71 851,0 Кб [список файлов]
sh5 (неофициальный перенос)1:5.4.0+Atmel3.6.2-315 044,3 Кб61 053,0 Кб [список файлов]
sparc64 (неофициальный перенос)1:5.4.0+Atmel3.6.2-313 250,0 Кб70 152,0 Кб [список файлов]
x32 (неофициальный перенос)1:5.4.0+Atmel3.6.2-314 319,5 Кб64 770,0 Кб [список файлов]

Avr-gcc

2022

  • Development простой в avr-gdb (simavr) (6 комментариев)

2021

  • Development Препроцессор, печать значения (25 комментариев)
  • Development V-USB доработка интерфейса (77 комментариев)
  • Development Ищу uart-bootloader для atmega8, который можно собрать и использовать из-под Linux (31 комментарий)
  • Desktop MPlав-Х, ихние копмиляторы, лицензии, новогодний палко-тык :о) (4 комментария)

2020

  • Development avr-gcc makefile, несколько целей для avrdude (36 комментариев)
  • Development «легкий» printf() и «удобное выравнивание» (68 комментариев)
  • Development Как разобрать в ассемблер и собрать обратно дамп памяти от ардуины? (3 комментария)

2019

  • Development ADC/AREF/ISP неиспользуемые пины (11 комментариев)
  • Development AVR Soft Reset (43 комментария)
  • Development avr-gcc, прошивка EEPROM (28 комментариев)

2018

  • Development QTCreator & AVR, подсветка «нестандартных/AVR типов» (28 комментариев)
  • Development avr-gcc проблема с scanf() (14 комментариев)
  • Development AVR-GCC & AVR-Toolchain-ы (неск.
    версий) — одновременное использование, настройка среды, Makefile (5 комментариев)

2016

  • Development avr-gcc и distcc (14 комментариев)
  • Development Не могу скомпилировать проект под AVR (5 комментариев)
  • Development VIM не видит avr/io.h (5 комментариев)

2015

  • Science & Engineering Дополнительный препроцессор для avr-gcc (6 комментариев)
  • Science & Engineering Proteus не подтягивает все пины порта к земле в ATmega8 (12 комментариев)

2014

  • Development Зацикливается функция (88 комментариев)

avr-libc: Обзор цепочки инструментов

Добро пожаловать в набор инструментов разработки программного обеспечения с открытым исходным кодом для 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:

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
Фильтр для разбора закодированных символов C++.

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 12.1.0 для 32- и 64-битной Windows

Сюда я буду загружать сборки 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.

  1. Загрузите и извлеките одну из загрузок выше
  2. Перейдите в папку Arduino IDE
  3. Перейти к оборудование/инструменты
  4. Переместите папку avr в другое место, например, на рабочий стол (переименование папки не сработает, у Arduino есть функция автоопределения, которая иногда путается)
  5. Переместите извлеченную ранее папку в папку tools и переименуйте ее в avr
  6. Скопируйте файлы bin/avrdude.exe и встроенные_инструменты_версии.txt и папку etc из старой папки avr в новую
  7. Готово! Откройте IDE Arduino, загрузите пример Blink, загрузите его в Arduino и убедитесь, что светодиод мигает!

Этот сценарий сборки установит необходимые пакеты, создаст каталоги и соберет инструменты из исходного кода.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *