I am using Teridians 71M6513H controller and the memory organisation given in the data sheet is as follows, ****************************************************** EXTERNAL DATA MEMORY: 0xFFFF ____ 0x4000
0x3FFF 0x3000 CE PRAM
0x2FFF ____ 0x2100
0x20FF 0x2000 I/O RAM
0x1FFF ____ 0x1400
0x13FF 0x1000 CE DRAM
0x0FFF ____ 0x0800
0x07FF 0x0000 XRAM
"While the 80515 can address up to 64KB of external data memory in the space from 0x0000 to 0xFFFF, only the memory ranges shown above contain physical memory." ****************************************************** 1.)Is the size of xdata only from 0x0000 to 0x07FF or full 64K bytes 2.)How should i configure the xdata memory in startup.a51 3.)My code still works without including startup.a51 file in the source code list.What would be the default value of xdata space without startup.a51 4.)Any docu/website giving a overview of startup.a51 configuration and memory organisation of xdata
Thanks in advance.
"1.)Is the size of xdata only from 0x0000 to 0x07FF or full 64K bytes"
The text & diagram that you quoted seem to answer that question pretty clearly:
The XDATA address space is the full 64K, but only 0x0000 to 0x07FF actually contains physical RAM.
"4.)Any docu/website giving a overview of startup.a51 configuration and memory organisation of xdata"
http://www.keil.com/support/man/docs/c51/c51_ap_startup.htm
Please let me know how generally memory storage is done in the microcontroller in the absence of startup.a51.As there is no startup.a51 in my project it is very important to know how it is stored in the memory. On compilation this was the result: Program Size: data=96.4 xdata=2566 const=6555 code=51466
Now that xdata is only 2K but original xdata being 2566 how is it stored? LX51(Level 11 optimisation and Linker code packing) segragating into const and code how does it save these into memory of controller.
"Please let me know how generally memory storage is done in the microcontroller in the absence of startup.a51."
Did you actually read the link I gave?
It tells you what operations the startup code performs, and allocating memory storage is not one of them - that is done by the Linker