GithubHelp home page GithubHelp logo

toolchain-avr's Introduction

AVR Toolchain for Arduino

This is the AVR Toolchain used in the Arduino IDE.

As soon as Atmel ships a newer toolchain, we pull the source code, patch it with some user contributed patches and deliver it with the Arduino IDE. Therefore, the resulting binaries may differ significantly from Atmel's. And you should start blaming us if things are not working as expected :)

Configuring

Edit the build.conf file, currently the only thing worth changing is AVR_VERSION on the first line to match whatever the latest version is.

At time of writing, the latest toolchain available is based on Atmel 3.6.1 version, but we replaced gcc component with a newer one, porting Atmel patches. It contains:

Building

Setup has been done on partially set up development machines. If, trying to compile on your machine, you find any package missing from the following list, please open an issue at once! We all can't afford wasting time on setup :)

To just build, after getting the requirements...

./tools.bash
./binutils.build.bash
./gcc.build.bash
./avr-libc.build.bash
./gdb.build.bash

after a successful compile the binaries etc will be found in objdir

To package, after getting the requirements...

./package-avr-gcc.bash

Debian requirements

sudo apt-get install build-essential gperf bison subversion texinfo zip automake flex libtinfo-dev pkg-config

Mac OSX requirements.

Either use Homebrew or MacPorts to install dependencies.

MacPorts

You need to install MacPorts: https://www.macports.org/install.php. Once done, open a terminal and type:

sudo port selfupdate
sudo port upgrade outdated
sudo port install wget +universal
sudo port install automake +universal
sudo port install autoconf +universal
sudo port install gpatch +universal
sudo port install gsed +universal
Homebrew

You need to install Homebrew: https://www.brew.sh. Once done, open a terminal and type:

brew update
brew upgrade
brew install wget automake autoconf gpatch gnu-sed

Windows requirements

You need to install Cygwin: http://www.cygwin.com/. Once you have run setup-x86.exe, use the Search text field to filter and select for installation the following packages:

  • git
  • wget
  • unzip
  • zip
  • gperf
  • bison
  • flex
  • make
  • patch
  • automake
  • autoconf
  • gcc-g++
  • texinfo (must be at version 4.13 since 5+ won't work)
  • libncurses-devel

A note on texinfo: due to dependencies, each time you update/modify your cygwin installation (for example: you install an additional package), texinfo will be upgraded to version 5+, while you need version 4+! Easy solution: as soon as you've installed the additional package, re-run cygwin setup, search texinfo, triple click on "Keep" until you read version 4, then click next.

You also need to install MinGW: http://www.mingw.org/. Once you have run mingw-get-setup.exe, select and install (clicking on "Installation" -> "Apply changes") the following packages:

  • mingw-developer-toolkit
  • mingw32-base
  • mingw32-gcc-g++
  • msys-base
  • msys-zip

Upstream credits

Build process ported from Debian. Most patches come from Atmel. Thank you guys for your awesome work.

Credits

Consult the list of contributors.

License

The bash scripts are GPLv2 licensed. Every other software used by these bash scripts has its own license. Consult them to know the terms.

toolchain-avr's People

Contributors

ffissore avatar facchinm avatar cmaglie avatar bitron avatar sleemanj avatar sconaway avatar sngl avatar brunob45 avatar crimier avatar spencekonde avatar nvswarren avatar tdicola avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.