I have an xdata question and please excude my lack of knowledge on this subject, I have been trying to find info on this and am just not getting anywhere. I am using a Goal VRS1000 controller. It has 64K of flash and 1K of RAM. I have not enabled the upper 756K of the RAM. The issue I am running into on my device is, when I go over 769 bytes of xdata my device fails to boot correctly. I have been trying to find out where exactly this xdata is being stored. Since I have not enabled the full range of the on-chip RAM, I am a little confused where it is stored. Thanks for the help.
Christoph, thanks for the reply. Your secnod post is correct. I did not enable the expanded RAM section of the chip. With that said, my device works fine as long as I use less that 769 bytes of xdata. Like you said no xdata access should be working if I have not enbaled the XRAM on the chip. This is were I am getting confused, because it does work with less than 769 bytes of xdata. Could the compiler be enabling it even though I didn't?
Could the compiler be enabling it even though I didn't? nope, but have a look at the reset value for the controlling SFR Erik
"nope, but have a look at the reset value for the controlling SFR" Also check if the startup code (assembler) is enabling it...
Could the compiler be enabling it even though I didn't? Just to possibly make the other answers to this a bit clearer: maybe this internal XDATA memory doesn't need enabling. Maybe it's enabled automatically on power-up / reset. You have the chip, so I'll assume you have its datasheet in hand. Look it up. And no, the compiler is rather certainly not enabling it. The startup code (startup.a51 or some variant of that) may, though.
Finally the answer comes to me. I never even looked at the reset value before. This is were the XRAM is being enabled. Thanks for al lthe help everyone.