|
From: | Richard F |
Subject: | Re: [avr-gcc-list] Overlong interrupt vector table |
Date: | Tue, 03 Feb 2009 13:25:56 +0000 |
User-agent: | Thunderbird 2.0.0.19 (Windows/20081209) |
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: address@hidden [mailto:address@hiddenorg] On Behalf Of Richard F Sent: Tuesday, February 03, 2009 5:11 AM To: address@hidden Subject: [avr-gcc-list] Overlong interrupt vector tableI'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?) ThxThe 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.
[Prev in Thread] | Current Thread | [Next in Thread] |