I was just simulating my code in Keil. When I write to external memory, I don't see anything happen in the memory window. I am using cypress FX2 as the chip. Here's my code: Just writing FF to location E000h
MOV A, #0FFH MOV DPTR, #0E000H MOVX @DPTR, A
I don't see anything happen at 0E000h in the memory window.
X2 has data RAM starting from E000h to FFFFh. That's where all the USB registers and End point registers are located.
That's kinda self-contradictory. Either you have RAM there, or you have registers. But not both at the same time.
E000 to E1FF is data RAM. E200 to FFFF are USB registers with some reserved space.