This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

pdata, idata and xdata query

Hello,
I have an 8051 custom processor, this have a memory mapped like this:
16 banks of eeprom external memory of 32kB each one. The page 0 is mapped: 0x0000-0x7FFF. The other ones: 0x8000-0xFFFF. The page number is selected via a PAGE_REG.
Also I have a block of extended ram which is mapped from 0x1000-0x1FFF. And I have two RAMs more: internal ram (indirect and direct address), and external ram, of 256B amount (from 0x00 to 0xFF).
Memory access from C, I do this:
For eeprom:

//... select mem_page ...
unsigned char pdata *ptr;
ptr = address;
*ptr = dat;

For extended ram:

unsigned char xdata *ptr;
ptr = address     // 0x1000 <= address <= 0x1FFF
*ptr= dat;

For internal ram:

unsigned char idata *ptr;
ptr = address;
*ptr = dat;

The extended ram, and internal ram works, but the eeprom access doesn't.
Someone can guide me?
Thanks a lot.

g.