When my code is compiled, it causes XDATA memory above 100HEX to be addressed with MOVX @R0,A rather than MOVX @DPTR,A instructions. This causes variables in the XDATA range 0 - 100HEX to be overwritten. I do not have this problem with XDATA above C000HEX, and am not sure how far above 100HEX this problem exists. Any solutions would be appreciated. Thank you, Frank Way
Have you seen: http://www.keil.com/support/docs/719.htm You will also need to set up the specifications for PDATA and XDATA in your Project - on the 'BL51 Locate' tab. You may also need to modify startup.a51, which includes the definition of which page of XDATA is used for PDATA See: http://www.keil.com/support/docs/1296.htm (1 "page" = 256 bytes = 0x100 - surprise!) This might also help: http://www.keil.com/support/docs/746.htm