ARM Technical Support Knowledge Articles

ABSOLUTE CODE SEGMENTS BEYOND 64 KBYTE

Applies to: AX51 Macro Assembler

Answer


Information in this article applies to:


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

Article last edited on: 2005-07-22 16:53:42

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential