I upgraded Keil C PK51 from 7.1 to 8.06, then my project can't be rebuilt, some functions are missing: ?C?ISTOPTR: ?C?CSTOPTR: ?C?LSTKOPTR: ?C?LSTOPTR:
Where can I find those functions?
I'm using M8051EW Extended Linker, "far" memory type support, Code banking, the banked const data are located in: HCONST ( B0:0x4000-B0:0xFFFF, B8:0x4000-B8:0xFFFF, B9:0x4000-B9:0xFFFF, BA:0x4000-BA:0xFFFF, BC:0x4000-BC:0xFFFF,BD:0x4000-BD:0xFFFF,BE:0x4000-BE:0xFFFF, BF:0x4000-BF:0xFFFF)
have you contacted Keil support on this?
Erik
Just sent the request.
It seems the new compiler/linker added: ; ?C?CLDXPTR, ?C?CSTXPTR ; load/store BYTE (char) in extended memory * ; ?C?ILDXPTR, ?C?ISTXPTR ; load/store WORD (int) in extended memory * ; ?C?PLDXPTR, ?C?PSTXPTR ; load/store 3-BYTE PTR in extended memory * ; ?C?LLDXPTR, ?C?LSTXPTR ; load/store DWORD (long) in extended memory
which are not required in Keil 7.X.
I can find those sample functions in XBANKING.A51, but I can't find other new functions.
when 'far' memory type support is correctly enabled, the compiler does not use the library functions that end with OPTR.
So it appears that one of the C51 object files are not translated with 'far' memory type support (maybe because they are part of a library).
More information about the iibrary functions is available here: http://www.keil.com/support/docs/1964.htm
Yes, one of my libraries is not compiled with "far" enabled. Now the problem is solved. Thanks Reinhard.