This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ERROR L107: ADDRESS SPACE OVERFLOW

Hallo,
I have written in my experimental(!) code a global variable :

int idata arr[60];

The stack is explicitly assigned to internal memory space (memory type : idata - 256 byte maximum). But I got in the *.m51-File an error message.

IGNORED SEGMENTS:
?STACK

*** ERROR L123: ABSOLUTE DATA/IDATA SEGMENT DOES NOT FIT
MODULE: TIMER01.OBJ (TIMER01)
FROM: 0088H
TO: 0089H

*** ERROR L107: ADDRESS SPACE OVERFLOW
BL51 BANKED LINKER/LOCATER V4.02 05/02/2001 11:10:58 PAGE 2


SPACE: IDATA
SEGMENT: ?STACK
LENGTH: 0001H

*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: IDATA
SEGMENT: ?STACK
LENGTH: 0001H

*** ERROR L119: REFERENCE MADE TO ERRONEOUS SEGMENT
SEGMENT: ?C_C51STARTUP
MODULE: C:\MYFILES\LIB\C51S.LIB (?C_STARTUP)
ADDRESS: 4042H

I don't understand why the stack can not be placed in the upper memory (0x80 to 0xFF)? The memory type of the stack is idata (0x00 - 0xFF).

If I have located a variable in the upper 128 bytes of internal RAM like this:

int idata var _at_ 0x81;

I have got also the error messages! But why?

I thought if I use the memory type idata, then I can use all the lower and the upper internal RAM.

Best Regards.

  • I think you'll find the problem is in the timer01 file ( Always go by the first error you find... ) it will probably be that you have already exceeded your data segment within that file.
    Fix this and the rest as you say should work.