Hi,

I am bit confused about VMA & LMA address for AVR.
Virtual memory address & Load Memory Address.
1> What actually does it means ???????

What i got from reading is that VMA is passed to linker & .ELF is created.
While avr-objcopy read .elf & creats the .hex  in this hex file .crt code
will place the data variable to LMA.
& .eep file in this file epprom variables are placed to LMA.


Because of harvard architectue to avoid confusion related to memory address
( because EEPROM, RAM & Flash all will start from 0x0000 i.e ZERO address)
GCC does following :---
Add 0x800000 the to real SRAM   --- if you want the .data section to start
at 0x1100, pass 0x801100 at the address
Add 0x810000 the to real EEPROM
2> What does it add for the ROM address, i am bit confused --- ????????
3> Also why this typical number series are chosen 0x800000 .... ???????

This operation produces VMA. This is only my understanding & assumption.


Please correct me for the above three question.

BR
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to