Keil™, An ARM® Company

Technical Support

AX51: ABSOLUTE CODE SEGMENTS BEYOND 64 KBYTE


Information in this article applies to:

  • AX51 Version 2.0 or higher
  • LX51 Linker/Locater Version 3.5 or higher

QUESTION

I am programming a Dallas DS80C390 CPU in Contiguous Mode. When I define an absolute CSEG beyond the 64KB limit, I get the following linker error:

*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE
    SEGMENT: ?CO?BITMAP?3
    LENGTH:  0011F5H

How can I solve this problem?

ANSWER

The CODE and XDATA segments are limited to a single 64KB segment. This limitation allows you to port code from standard 8051 to the new extended address range without re-working the address calculations in the program.

To use the extended 16MB address space, the toolchain adds new memory classes: HDATA, HCONST, ECODE. Therefore, you need to define absolute segments as shown below:

?CO?MY_CONST SEGMENT HCONST AT 0120000H
RSEG ?CO?MY_CONST

my_image:       DB 0,1,2,3

END

This code links without any errors or warnings.

MORE INFORMATION

SEE ALSO

Last Reviewed: Friday, July 22, 2005


Did this article provide the answer you needed?
 
Yes
No
Not Sure