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.
Maybe the SDCC output for the same program can illustrate what I want:
Internal RAM layout: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0x00:|0|0|0|0|0|0|0|0|1|1|1|1|1|1|1|1| 0x10:|2|2|2|2|2|2|2|2|a|a|a|a|a|a| | | 0x20:|B|B|B|B|T|b|b|b|b|b|b|b|b|b|b|b| 0x30:|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b| 0x40:|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b| 0x50:|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b| 0x60:|b|b|b|b|b|b|b|b|b|b|b|b|b|c|c|c| 0x70:|c|c|d|d|d|Q|Q|Q|Q|Q|Q|Q|Q|Q|I|I| 0x80:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0x90:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0xa0:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0xb0:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0xc0:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0xd0:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I| 0xe0:|I|I|I|I|I|I|I|I|S|S|S|S|S|S|S|S| 0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S| 0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute
In short, I want to use all of the internal RAM, there's not enough to spare half of it for a stack that grows to 18 bytes in the worst case.