Just a helpful hint...Another thing that the script I mentioned in my prior email (but didn't get around to attaching) is to spit out a linker file that defines the registers so you can do things like print them and set them symbolically from gdb.
p PORTA p PORTA = 0xFF x/20b &PORTA etc.This is very simple (and is something you can do by just linking a text file with your program). It just surprised me that no one seems to mention it when people complain about not seeing the registers in the debugger.
All I did was this:I made a text file (which I named iom128.a) that contains defines for all the registers:
/* SFR memory addresses */ ACSR = 0x800028; ADC = 0x800024; ADCH = 0x800025; ADCL = 0x800024; ADCSR = 0x800026; ADCSRA = 0x800026; ADCW = 0x800024; ADMUX = 0x800027; ASSR = 0x800050; DDRA = 0x80003a; DDRB = 0x800037; DDRC = 0x800034;And I also came up with a slightly extended linker script (avr5.x), though I'm not sure that it's even needed (it's in the tarball). What it did was just to add two more regions that define the rest of the space:
MEMORY
{
text (rx) : ORIGIN = 0x000000, LENGTH = 128K
regs (!a!irw!x) : ORIGIN = 0x800000, LENGTH = 0x20
sfrs (!a!irw!x) : ORIGIN = 0x800020, LENGTH = 0x40
data (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
}
Then I added this to the linker line:
-L. -T iom128.a -T avr5.x
which replaces the stock avr5.x with the concatenation of these two
files.
Handy.
headerMods.tar.gz
Description: GNU Zip compressed data
-- Ned Konz [EMAIL PROTECTED]
_______________________________________________ AVR-libc-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-libc-dev
