We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have assigned 0x0000 to 0xF7FF space to the external RAM and the rest space i.e. 0xF800 to 0xFFFF to the I/O devices. Please advice me on the following: 1) The xdata defination in the target files should be 0-F7FF or 0-FFFF? 2) In the startup.a51 file, what should be the configuration of the XDATA 3) I donot want the compiler to allocate any variable or stack in 0xF800 to 0xFFFF space. 4)Does the _at_ defination makes sure that the data being defined there is not initialized to 0 by the startup.a51 and the init.51 files. Regards Mohit
1) What is the drawback if we donot initialise the XDATA Space to 0 using the startup.a51 file. In C, by default all global uninitialized variables are set to a value of 0. That's what clearing the memory to 0 does. If this is not important, you can leave this out. 2) If I XRAM is from 0 - 0xF7ff and I want my battery backup variables to reside from 0x8000 - 0xF7FF then should I should specify the XDATALEN as 0x8000 in the startup.a51 file to make sure that this area is not initialized? Yep. That's it exactly. Jon