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'm running into the dreaded L107 (DATA space), so I checked all the .lst files and took a look at the largest one:
MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 3806 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 89 IDATA SIZE = ---- ---- BIT SIZE = 1 8 EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION.
What's extraordinary about this, is that all DATA variables summed up only come together to 30 bytes. There is however plenty of IDATA usage, which is apparently all accounted for as DATA usage.
I've tried moving some more variables from DATA to IDATA, leading the L107 to complain about just that much more DATA usage.
How do I make C51/LX51 acknowledge the existence of IDATA? As far as I can tell it should just work out of the box.
BTW, message preview claims I'm from the US, even though I selected Germany.
Not in terms of access time (at least on the XC800, DATA access is one machine cycle (2 clock cycles) and IDATA access is 2 machine cycles (4 clock cycles).
Also, I want to use the upper 128 bytes. And data access to them is SFR access.
Most of my variables are idata to give the linker the freedom to place them where needed. So why doesn't it? I can only use the upper 128 bytes as stack and when I manually assign an address.