I am using Keil C51 toolset with C51 COMPILER V9.53.0.0 and LX51 LINKER/LOCATER V4.66.30.0 and a device with a 64K code space.
I am using the SEGMENTS directive
SEGMENTS (?PR?*?btldr( C:0xE000 ))
To position all of the code in the "btldr.c" module in a segment starting at 0xE000. I can get that working, and see in the .COD file that it is indeed there.
I then add a single function to btldr.c
void test( void ) { val++ }
and recompile. It is no longer positioned at 0xE000. It is NOT an issue that there is not enough room in the segment. I can change it to 0xD000 and it still is not positioned there.
Can someone explain why this might be happening ?
Thank you