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

I'm hoping it is a simple configuration issue or something else I missed.

I can compile my entire program successfully with only 2 warnings for uncalled segments; however if I comment out one line of code which is a call to my display routine, all of the uncalled segments for that display routine are not ignored and I receive many error messages similar to the following message:

*** ERROR L107:
ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?DISPLAYPROFILE?T31350N00
LENGTH: 000AH

Viewing the listing from the successful compile, it appears that DisplayProfile() uses 10 bytes of DATA for temporary variable storage.

displayprofile PUBLIC CODE PROC 0000H
temp AUTO DATA U_INT 0000H 2
time AUTO DATA U_LONG 0002H 4
address AUTO DATA PTR 0006H 2
length AUTO DATA U_INT 0008H 2

Plus viewing data usage for the successful compile, there is no data problem:

MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 21527 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2220 80
PDATA SIZE = ---- ----
DATA SIZE = 47 263
IDATA SIZE = ---- ----
BIT SIZE = 23 2
END OF MODULE INFORMATION.

My question is, why is there plenty of DATA memory available when my display routine is used but not when my display routine is commented out?

If I comment out the only call to a function, shouldn't it ignore that segment plus all other unique segments for that particular function?

Configuration is as follows:

C51 COMPILER V7.01, COMPILATION OF MODULE t00001n00 OBJECT MODULE PLACED IN t00001n00.OBJ COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE t00001n00.c LARGE OPTIMIZE(4,SPEED) ORDER NOINTPROMOTE NOAREGS INCDIR(<directory hidden>) DEBUG OBJECTEXTEND SYMBOLS

0