[Top][All Lists]

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

[avr-libc-dev] [bug #29964] Possible Incorrect Interrupt Vector Addresse

From: Joerg Wunsch
Subject: [avr-libc-dev] [bug #29964] Possible Incorrect Interrupt Vector Addresses for mega168
Date: Wed, 26 May 2010 05:17:44 +0000
User-agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv: Gecko/20100331 Firefox/3.5.9

Update of bug #29964 (project avr-libc):

                  Status:               Need Info => Invalid                
             Open/Closed:                    Open => Closed                 


Follow-up Comment #3:

Hi Jose,

for a simple test, you could just compile and link an empty main(),
and run it through the disassembler.  That will show you the vector
table is fine for both devices.  Btw., be assured if they weren't, the
Arduino folks would have told us long before. ;-)

> Are the addresses properly computed because of the following?

_VECTORS_SIZE is part of the story: if you look into gcrt1.S, you'll
notice it determines how many vectors will actually be emitted.

The size logic itself is hidden behind the XJMP macro which comes from
common/macros.inc.  It uses the (misnamed) macro __AVR_MEGA__ which is
set by the compiler to determine whether to emit a JMP or RJMP
instruction (which in turn determines the size of a vector table
slot).  This should use __AVR_HAVE_JMP_CALL__ instead, but this one is
only available starting with GCC 4.3, and we'd like to be backwards
compatible.  We should perhaps check for the GCC version, and then use
wither __AVR_MEGA__ or __AVR_HAVE_JMP_CALL__, depending on the
version, so __AVR_MEGA__ could eventually be retired.  Feel free to
submit a patch for this if you like (preferrably, tested against
different compiler versions... ;-).


Reply to this item at:


  Message sent via/by Savannah

reply via email to

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