avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Programming ATMega2560


From: Andreas Höschler
Subject: [avr-gcc-list] Programming ATMega2560
Date: Wed, 26 Nov 2014 20:46:01 +0100

HI all,

I have programmed ATMega8 in the past (worked great). I have purchased a 
ATMega2560 board now and am trying to get my avr gcc tool chain to accept this 
chip:

Makefile
==================
# AVR-GCC Makefile
PROJECT=toggle_led
SOURCES=main.c 
HEADERS=
CC=avr-gcc
OBJCOPY=avr-objcopy
MMCU=atmega2560
 
CFLAGS=-mmcu=$(MMCU) -Wall -O2 -I /usr/local/avr/include

$(PROJECT).hex: $(PROJECT).out
        $(OBJCOPY) -j .text -O ihex $(PROJECT).out $(PROJECT).hex
 
$(PROJECT).out: $(SOURCES)
        $(CC) $(CFLAGS) -I./ -o $(PROJECT).out $(SOURCES)
 
program: $(PROJECT).hex
        avrdude  -p $(MMCU) -c avrispmkII -P usb -e -U flash:w:$(PROJECT).hex
clean:
        rm -f $(PROJECT).out
        rm -f $(PROJECT).hex

main.c
==================
#define F_CPU 16000000UL  /* 16 MHz CPU clock */
#include <util/delay.h>
#define OUTPUTPORT PORTB   
#define OUTPUTPIN PB7   
int main (void)
  {
   DDRB = 0xff;          // all outputs
   while (1)                       /* loop forever */
     {            
      if ((PORTB & _BV(PB7)) > 0) PORTB &= ~_BV(PB7);
      else PORTB |= _BV(PB7);      
      delay_ms(500);      
     }   
      return (0);
  }

When I try to make this project I get

-bash-3.2$ make
avr-gcc -mmcu=atmega2560 -Wall -O2 -I /usr/local/avr/include -I./ -o 
toggle_led.out main.c 
unknown MCU 'atmega2560' specified
Known MCU names:
   avr2
   at90s2313
...
   attiny12
   attiny15
   attiny28
main.c:1: error: MCU 'atmega2560' supported for assembler only
main.c: In function 'toggleOutput':
main.c:19: error: 'PORTB' undeclared (first use in this function)
main.c:19: error: (Each undeclared identifier is reported only once
main.c:19: error: for each function it appears in.)
main.c:19: warning: implicit declaration of function '_BV'
main.c:19: error: 'PB7' undeclared (first use in this function)
main.c: In function 'main':
main.c:34: error: 'DDRB' undeclared (first use in this function)
main.c:45: error: 'PORTB' undeclared (first use in this function)
main.c:45: error: 'PB7' undeclared (first use in this function)
make: *** [toggle_led.out] Error 1

The chip atmega2560 indeed is not in the offered list!? I built my tool chain 
as shown below! What am I missing? How can this be fixed?

Thanks a lot!!!

Andreas

********************************************************************************************************
We download http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.gz:

        PREFIX=/usr/local/avr
        export PREFIX
        PATH=$PATH:$PREFIX/bin
        export PATH

        cd /usr/src
        mkdir avr
        cd avr
        scp address@hidden:/home/ahoesch/Downloads/binutils-2.24.tar.gz .
        gunzip binutils-2.24.tar.gz
        gtar xvf binutils-2.24.tar
        cd binutils-2.24
        ./configure --target=avr --program-prefix="avr-" --prefix=$PREFIX
        make
        make install

We download http://gcc.cybermirror.org/releases/gcc-4.3.3/gcc-4.3.3.tar.bz2:

        cd /usr/src/
        gtar xvf mpfr-2.4.0.tar
        cd mpfr-2.4.0
        ./configure
        make
        make install

        cd /usr/src/avr
        mkdir avrgcc
        scp address@hidden:/home/ahoesch/Downloads/gcc-4.3.3.tar.bz2 .
        bunzip2 gcc-4.3.3.tar.bz2
        gtar xvf gcc-4.3.3.tar
        cd avrgcc
        ../gcc-4.3.3/configure --target=avr --prefix=/usr/local/avr 
--enable-languages=c --disable-libssp --disable-shared --disable-libada 
--disable-libssp --disable-nls --with-dwarf2 --with-gmp=/usr/local 
--with-mpfr=/usr/local --prefix=/usr/local/avr
        make 
        make install 

        pico /etc/default/login
        pico /etc/default/su

        PATH= ...:/usr/local/avr/bin
        SUPATH= ...:/usr/local/avr/bin

Relogin to get the new PATH value.

        which avr-gcc

We download 
http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.1.tar.bz2:

        cd /usr/src/avr
        scp address@hidden:/home/ahoesch/Downloads/avr-libc-1.8.1.tar.bz2 .
        bunzip2 avr-libc-1.8.1.tar.bz2
        gtar xvf avr-libc-1.8.1.tar
        cd avr-libc-1.8.1
        ./configure --host=avr --prefix=/usr/local/avr
        make
        make install


We sync avrdude-5.8 and arduino.sh from the 192.168.1.2 

        rsync -avz -e ssh arduino.sh avrdude-5.8 address@hidden:/usr/src/avr

and build as follows:
        
        LIBUSB=/usr/sfw
        export CPPFLAGS="-I${LIBUSB}/include"
        export LDFLAGS="-L${LIBUSB}/lib"
        make 
        make install

This installs

        /usr/local/bin/avrdude
        /usr/local/etc/avrdude.conf

We can now do 

        avrdude -c avrispmkII -P usb -p atmega8
        ...









reply via email to

[Prev in Thread] Current Thread [Next in Thread]