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 using ADUC843 and I have problem with memory overflow. I'm trying to use only 150 bytes. I tried too declare some data with idata and it helped but now I could declare no more than 250 bytes. I have read in ADUC datasheet , that my microcontroler has 2kBytes data memory. How can I access to it?
If you re-read your datasheet carefully,you may find most of the 2kBytes data memory stay in XDATA space quietly. So it is up to you having missed the place...
The 8051 architecture only supports 256 bytes of data/idata space. It would take some substantial rework of the processor and instruction set to expand that beyond 8 bits worth of address.
Most data sheets are confusing because they'll say something like "2KB of internal memory", where "internal" means "integrated into the same package". But from the point of view of the 8051 processor core, this memory is still "external" (xdata) memory.
Thank's. I solved my problem by using XDATA instead of DATA section.
Of course, you need to be aware that on a '51, not all memory is made equal. data, idata and xdata accesses can differ significantly in speed and code size.
Plus, some chips require specific configuration settings to enable XDATA, or to select between on-chip and off-chip XDATA, etc, etc,...