I'm using the BL51 linker/locator to locate (without code banking using the ROM(SMALL) directive) a piece of code at a specific location using the CODE control. The code I'm trying to locate a piec of code without a main function -- it will be called by a bootloader at a later time. I can locate the code anywhere above 0x4000 without problems. If I try locating the code below 0x4000 (e.g. CODE(0x2000)) the linker ignores the command and locates it at 0x4000 by default. Is there a way to change this?
I think it's to stop you getting a complete free development system for use with the smaller '51 variants with on-chip ROM - it forces you to use an off-chip ROM?