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

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

RE: [avr-gcc-list] basic UART Transmit interrupt problem


From: Woodward, Mark P
Subject: RE: [avr-gcc-list] basic UART Transmit interrupt problem
Date: Thu, 03 Jul 2003 16:58:58 -0700

It is finding the proper #define, since I do see the function __vector_20 in
the dissassembled output, which is my interrupt reutine.  The problem is
just  that the vector table is being cut short.  It only creates jmps for
the first 13 vectors.

   0:   0c c0           rjmp    .+24            ; 0x1a
   2:   26 c0           rjmp    .+76            ; 0x50
   4:   25 c0           rjmp    .+74            ; 0x50
   6:   24 c0           rjmp    .+72            ; 0x50
   8:   23 c0           rjmp    .+70            ; 0x50
   a:   22 c0           rjmp    .+68            ; 0x50
   c:   21 c0           rjmp    .+66            ; 0x50
   e:   20 c0           rjmp    .+64            ; 0x50
  10:   1f c0           rjmp    .+62            ; 0x50
  12:   1e c0           rjmp    .+60            ; 0x50
  14:   1d c0           rjmp    .+58            ; 0x50
  16:   1c c0           rjmp    .+56            ; 0x50
  18:   1b c0           rjmp    .+54            ; 0x50

When I create an interrupt that falls within one of the first 13, such as
SIG_INTERRUPT1, it properly maps the second vectors rjmp to 0x52.  Maybe
avr-gcc thinks my microcontroller is some old one with only 13 interrupts,
even though I am passing -mmcu=atmega128

avr-gcc -g -Os -mmcu=atmega128 -c -o Test.o Test.c
avr-gcc -o Test.elf Test.o
avr-objcopy -O srec Test.elf Test.srec
uisp --erase -dprog=dapa
uisp --upload -dprog=dapa if=Test.srec

Thank-s

-Mark

> -----Original Message-----
> From: Larry Barello [SMTP:address@hidden
> Sent: Thursday, July 03, 2003 4:20 PM
> To:   Woodward, Mark P
> Cc:   AVR GCC List
> Subject:      Re: [avr-gcc-list] basic UART Transmit interrupt problem
> 
> It looks like you have defined no vectors. They all jump to the same
> location.  you
> probably spelled the signal names wrong (they are #defines that are turned
> into
> "__vector_XX" strings).  Look in the appropriate ioXXXX.h file to see the
> defines so you
> don't misspell them.
> 
> This is the problem with #defines: there is no error checking for
> misspelling.
> 
> 
> ----- Original Message ----- 
> From: "Woodward, Mark P" <address@hidden>
> To: "'Dean Ferreyra'" <address@hidden>; <address@hidden>
> Sent: Thursday, July 03, 2003 3:05 PM
> Subject: RE: [avr-gcc-list] basic UART Transmit interrupt problem
> 
> 
> > Hi Dean,
> >
> > When I disassemble the .elf file I produced below, I get the following
> >
> > 00000000 <__vectors>:
> >    0:   0c c0           rjmp    .+24            ; 0x1a
> >    2:   26 c0           rjmp    .+76            ; 0x50
> >    4:   25 c0           rjmp    .+74            ; 0x50
> >    6:   24 c0           rjmp    .+72            ; 0x50
> >    8:   23 c0           rjmp    .+70            ; 0x50
> >    a:   22 c0           rjmp    .+68            ; 0x50
> >    c:   21 c0           rjmp    .+66            ; 0x50
> >    e:   20 c0           rjmp    .+64            ; 0x50


reply via email to

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