I am using a Philips 8xC51MC2 controller with following memory map: This the hardware memory addresses EDATA:0x0-0x4FF, XDATA:0x-0x06FF(onchip) HDATA:0x600000-0x67FFFF. In the KEIL IDE: i have the following definitions: In the Lx51locate -> userclasses: HDATA(0x600000-0x67FFFF), EDATA(0x7F0000-0x7F04FF), CODE (0x900000-0x90FFFF), CONST(0x900000-0x90FFFF), XDATA (0x0000-0x06FF), ECODE (0x900000-0xFFFFFE), HCONST (0x900000-0xFFFFFE) Now while linking i am facing L107 warning :Address overflow. I understand that after placing variables in XDATA it should start with HDATA, which it is currently not doing. I want to place variables by default in HDATA