Thanks Eric,
I looked into it some more and it's a compiler "jump table" using "ijmp"
- it looks like a continuation of the vector table - but it's actually
been created out of a switch statement in my scheduler. So doesn't look
like any more optimisation to be had there!
Weddington, Eric wrote:
-----Original Message-----
From:
[email protected]
[mailto:avr-gcc-list-bounces+eweddington=cso.atmel....@nongnu.
org] On Behalf Of Richard F
Sent: Tuesday, February 03, 2009 5:11 AM
To: [email protected]
Subject: [avr-gcc-list] Overlong interrupt vector table
I'm working on a small application in an ATMEGA48p, and need
a few extra bytes of code space.
This may have been answered before, but I can't find a reference...
Does anyone know why there are 40 vectors where Atmel specify 26 -
What are the last 14 items (that look like vectors) used for,
and how can I make use of this "wasted space"?
(Is it a general purpose vector table for the largest possible AVR?)
Thx
The vector table code is located in the startup code in avr-libc.
<scheduler+0x26>
36: 73 c2 rjmp .+1254 ; 0x51e
<scheduler+0x2a>
38: 76 c2 rjmp .+1260 ; 0x526
<scheduler+0x32>
3a: 7d c2 rjmp .+1274 ; 0x536
<scheduler+0x42>
3c: 7f c2 rjmp .+1278 ; 0x53c
<scheduler+0x48>
3e: 83 c2 rjmp .+1286 ; 0x546
<scheduler+0x52>
40: 82 c2 rjmp .+1284 ; 0x546
<scheduler+0x52>
42: 81 c2 rjmp .+1282 ; 0x546
<scheduler+0x52>
44: 80 c2 rjmp .+1280 ; 0x546
<scheduler+0x52>
46: 7f c2 rjmp .+1278 ; 0x546
<scheduler+0x52>
48: 7e c2 rjmp .+1276 ; 0x546
<scheduler+0x52>
4a: 7d c2 rjmp .+1274 ; 0x546
<scheduler+0x52>
4c: 84 c2 rjmp .+1288 ; 0x556
<scheduler+0x62>
4e: 83 c2 rjmp .+1286 ; 0x556
<scheduler+0x62>
I have no idea where you are getting these <scheduler+xxxx> ids from. Perhaps
you're using an RTOS? But they certainly don't come from the startup code in avr-libc.
_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list