:: :: :: :: :: ::
Introduction: The main benefit of using Atmel's line of AVR microcontrollers is the well established avr-gcc toolchain, based on the free and open source gcc compiler. There is a nicely packaged distribution for Windows, but nothing nice for Linux users. Given that a compiler toolchain is fairly important, I thought I should try building my own. Reproduced below are my notes from installing all the components of the avr-gcc toolchain. It was based on the following guides and websites:
What You Get: You can either follow the guide at the bottom, or download the finished package below. Either way, you end up with a fully-functioning avr-gcc environment installed into /usr/local/avr, with the following tools:
Downloads: Click below to download the build notes or the finished toolchain package. If you find this to be useful, please send me an email. I'm always interested to know who's using my software.
Install Pre-Built Package: Here's how to install the pre-built package into /usr/local/avr:
Build Instructions:
# avr-gcc toolchain build notes - version 1.2 # Last updated: January 9, 2010 # Matthew Beckler - matthew at mbeckler dot org # # Based on these guides: # http://tuxgraphics.org/electronics/200901/avr-gcc-linux.shtml # http://electrons.psychogenic.com/modules/arms/art/3/AVRGCCProgrammingGuide.php # http://electrons.psychogenic.com/modules/arms/art/6/SimulatingandDebuggingAVRprograms.php # # Used a fresh install of Ubuntu 9.10 Karmic (i686) in a virtual machine. # # -------------------------------------------------------------------- # # If you have the usr_local_avr_toolchain.tar.gz and want to install that and # not go to all the trouble of building these tools, do this: # # cd /usr/local # sudo tar xvzf ~/usr_local_avr_toolchain.tar.gz # # Be sure to add /usr/local/avr/bin to your path! # You probably want to install these to work with the wnl code: # sudo apt-get install subversion scons python-pexpect # general setup cd ~ mkdir avr_build # add /usr/local/avr/bin to PATH, by adding this line to ~/.bashrc export PATH=$PATH:/usr/local/avr/bin # you should also do this for the root user, since using sudo can # reset your PATH to root's default PATH source ~/.bashrc # install newer versions of MPFR and GMP dev packages # required to build newer versions of gcc (ubuntu packages) # also should pull in 4.1 versions of gcc # The texinfo package is used while building binutils. sudo apt-get install libgmp3-dev libmpfr-dev texinfo # binutils-2.19 cd ~/avr_build wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.gz tar xvzf binutils-2.19.tar.gz cd binutils-2.19 mkdir build cd build export CC=gcc ../configure --target=avr --prefix=/usr/local/avr --disable-nsl --enable-install-libbfd --disable-werror make sudo make install # to test binutils installation: /usr/local/avr/bin/avr-as --help # gcc-core-4.2.3 cd ~/avr_build wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.3.2/gcc-core-4.3.2.tar.gz tar xvzf gcc-core-4.3.2.tar.gz cd gcc-4.3.2 mkdir build cd build ../configure --target=avr --prefix=/usr/local/avr --disable-nsl --enable-languages=c --disable-libssp make # sometimes there are PATH issues with "sudo make install", # so you might try "sudo su" and then "make install". # be sure to 'exit' from the root account before continuing! sudo make install # to test: avr-gcc --version # avr-libc-1.6.4 cd ~/avr_build wget http://savannah.inetbridge.net/avr-libc/avr-libc-1.6.4.tar.bz2 tar xvjf avr-libc-1.6.4.tar.bz2 cd avr-libc-1.6.4/ mkdir build cd build export CC=avr-gcc ../configure --build=`../config.guess` --host=avr --prefix=/usr/local/avr make # again, it might work best to "sudo su" then "make install" # be sure to 'exit' from the root account before continuing! sudo make install # avrdude-5.8 sudo apt-get install flex byacc libusb-dev cd ~/avr_build wget http://nongnu.askapache.com/avrdude/avrdude-5.8.tar.gz tar xvzf avrdude-5.8.tar.gz cd avrdude-5.8 export CC=gcc ./configure --prefix=/usr/local/avr make sudo make install export CC= # TODO add udev magic to fix usb permissions for non-root user using avrdude. # gdb-6.8 sudo apt-get install libncurses5-dev # the above install fixes a warning about "no termcap library found" cd ~/avr_build wget http://ftp.gnu.org/gnu/gdb/gdb-6.8.tar.gz tar xvzf gdb-6.8.tar.gz cd gdb-6.8 ./configure --target=avr --prefix=/usr/local/avr --disable-werror make sudo make install # simulavrxx sudo apt-get install tcl-dev cvs autoconf libtool swig g++ zlib1g-dev cd ~/avr_build cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/simulavr co simulavrxx cd simulavrxx ./bootstrap ./configure --prefix=/usr/local/avr --with-bfd=/usr/local/avr # remove both references to 'examples' in the Makefile. (see diff below) vim Makefile make sudo make install # other stuff to install for wnl dev: sudo apt-get install subversion scons python-pexpect matthew@karmic-fresh:~/avr_build/simulavrxx$ diff -u Makefile Makefile_orig --- Makefile 2009-11-20 13:22:03.394709782 -0500 +++ Makefile_orig 2009-11-20 13:19:26.630713617 -0500 @@ -75,7 +75,7 @@ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = src doc regress +DIST_SUBDIRS = src examples doc regress DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -259,7 +259,8 @@ top_builddir = . top_srcdir = . ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src doc regress +EXAMPLES = examples +SUBDIRS = src $(EXAMPLES) doc regress EXTRA_DIST = bootstrap make_tarball README.gdb SUPPORT \ m4/README m4/avr_tcl.m4 m4/avr_swig.m4
Copyright © 2004 - 2025, Matthew L. Beckler, CC BY-SA 3.0
Last modified: 2010-01-29 10:17:54 PM (EST)