Problem with Linux AVR compile

nobody wrote on Saturday, September 16, 2006:

I’m just trying to get the basic ATMega323 demo file to compile but I keep runing into this:

Compiling: serial/serial.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I…/…/Source/include -I…/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=serial/serial.lst  -std=gnu99 serial/serial.c -o serial/serial.o
serial/serial.c:194: warning: return type defaults to `int’
serial/serial.c:194: warning: function declaration isn’t a prototype
serial/serial.c: In function `SIGNAL’:
serial/serial.c:194: warning: type of “__vector_13” defaults to “int”
serial/serial.c: At top level:
serial/serial.c:210: warning: return type defaults to `int’
serial/serial.c:210: warning: function declaration isn’t a prototype
serial/serial.c:210: error: redefinition of ‘SIGNAL’
serial/serial.c:194: error: previous definition of ‘SIGNAL’ was here
serial/serial.c: In function `SIGNAL’:
serial/serial.c:210: warning: type of “__vector_14” defaults to “int”
serial/serial.c: At top level:
serial/serial.c:210: warning: unused parameter ‘__vector_14’
make: *** [serial/serial.o] Error 1

my gcc version is 3.4.3 and I’m runing Ubuntu 6.06LTS.

I’m trying to get this to compile before I start converting for a ATmega128. Besides switching the the clock speed and the Heap size and the UARTs used, this should run out of the box right?

Thanks for your help!

–Jessew

nobody wrote on Sunday, September 17, 2006:

The ports are only tested on Windows, so normally compilation problems on Linux are attributed to incorrect case of incorrect direction of / within either the makefile of #include’s.  In this case it appears it is because you are using a different version of AVR GCC.

Check you are actually using avr-gcc, and not accidentally picking up a different version of GCC from somewhere in your path.

When I type gcc --version I get:

avr-gcc (GCC) 3.4.6

nobody wrote on Monday, September 18, 2006:

You can clearly see from the error that it is calling avr-gcc…but I’ll check the backslashes.
Thanks!

-Jesse W

nobody wrote on Monday, September 18, 2006:

I think not all AVR GCC versions use signals in the same way.  Some features were deprecated and FreeRTOS updated accordingly.  I should try updating to the latest AVR GCC version and see if that helps, or at least if the messages change.

nobody wrote on Tuesday, September 19, 2006:

I found out that you need to do this:
#include <avr/signal.h>

avr-gcc -v says I am using 3.4.3…I’ll see if I can’t update but I think they have gone to using stuff like this: UART_INTERRUPT_HANDLER(SIG_UART_TRANS)
{stuff…}

at least that’s what the Procyon AVRlib is like as of it’s revision in 2003…has it changed since then?

-Jesse W
I should probably register huh?