On Wed, Dec 14, 2011 at 4:14 PM, Klaus Rudolph <[email protected]> wrote: > > The assembler output now has an offset of 0x800000 ????? > Why? > > looks fine. But the assembler window has still the offset to 0x800000.
The x86 is a von-Neumann architecture: There is one address space, which contains both code and data. The AVR is a Harvard architecture: The address spaces for code and data are separate. Usually, data is in SRAM, but it can also be in flash ROM. The GNU toolchain's way of handling these two address spaces is to add 0x800000 to addresses which are in SRAM. You can read about it here: http://linux.die.net/man/3/mem_sections Another thing to watch out for: Sometimes with the AVR, addresses are in terms of bytes, and sometimes in terms of 16-bit words. Sometimes you have to guess which one the GNU toolchain wants. Mitch. _______________________________________________ AVR-chat mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/avr-chat
