Hi,
I have a line in my linker control file:
?PR?*?PHTESTMODE_ROMCPUMX(C:0x01EA00),
But when I build it I see the following segment locations:
81E9FFH 81E9FFH 000001H --- --- **GAP** 81EA00H 81EA24H 000025H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM1?PHTESTMODE_ROMCPUMX 81EA25H 81EA32H 00000EH BYTE INSEG ECODE_TM ?PR?PHTESTMODE_ROMSOURCEINIT?PHTESTMODE_ROMSIO0 81EA33H 81EA57H 000025H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM2?PHTESTMODE_ROMCPUMX 81EA58H 81EA7CH 000025H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM3?PHTESTMODE_ROMCPUMX 81EA7DH 81EAA1H 000025H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM4?PHTESTMODE_ROMCPUMX 81EAA2H 81EAD9H 000038H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM5?PHTESTMODE_ROMCPUMX 81EADAH 81EB0EH 000035H BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM6?PHTESTMODE_ROMCPUMX 81EB0FH 81EB3AH 00002CH BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM7?PHTESTMODE_ROMCPUMX 81EB3BH 81EB66H 00002CH BYTE INSEG ECODE_TM ?PR?_PHTESTMODE_ROM8?PHTESTMODE_ROMCPUMX
Why is the segment ?PR?PHTESTMODE_ROMSOURCEINIT?PHTESTMODE_ROMSIO0 included here in the middle? I would have thought that the wildcard would locate all the segments in that source module one after the other, perhaps not in order, but at least all together. ...SOURCEINIT is not explicitly located elsewhere, it is a normal function. I have no confidence that other segments might later appear here in the middle and break my intended location controls. I do have a good reason to locate all these things.
Any help with the linker controls?
Robbie.
that is a good question which requires detailed analysis. Can you send all the OBJ files to support along with the linker map file.
As work-around you may use USER_CLASSES as explained here: http://www.keil.com/support/docs/2021.htm
This also works for ECODE.