--- On Fri, 5/22/09, David Kelly <dke...@hiwaay.net> wrote:
> All EEMEM does is this in eeprom.h: > > #define EEMEM __attribute__((section(".eeprom"))) > > AVR Studio convention is that internal .eeprom starts at > 0x00810000. So > what I'd do if I were you and wanted the compiler to assign > static > memory addresses in an external eeprom would be: > > #define EEEXT > __attribute__((section(".eeexternal"))) > > Then in my Makefile (or somewhere in AVR Studio) would add > this to the > linker definitions (am not certain 0x00a10000 is > available): > > LDFLAGS+=--section-start=.eeprom=00a10000 > > > If you put initialized definitions in EEEXT they will be > lost. Your > code has to write them in the external device because > neither the > compiler nor AVR Studio knows how. You can add a rule to > the Makefile > (if you are using make) to write a hex file containing your > external > EEPROM initial values: > > %_eeext.hex: %.elf > avr-objcopy -j .eeexternal > --change-section-lma .eeexternal=0 -O ihex $< $@ > > > Then you need a target such as this which will invoke the > above rule > (think it needs a blank line after): > > object_eeext.hex: > > > Finally, believe it goes without saying that you have to > provide > routines to access your external EEPROM device. Hello David Kelly, Thanks a lot for the suggestions. Yes, I understand that initializing the variables will not actually save the vales into the memory locations. I will try a sample code and revert. Thanks once again. B Regards Nayani P _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list