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

'DATA': SEGMENT TOO LARGE .How to deal with solving ?

memory mapping
Code space:(Flash memory 64kb)
fs3 16kb C000~FFFF
fs2 16kb 8000~BFFF
fs1 16Kb 4000~7FFF
fs0 16kb 0000~3fFF
Data space:
nothing
2K SRAM 6000~67FF
nothing
SFR SRAM 0000~00FF
*******************************************************
Memory Model:Small:Variables in DATA
Off-chip Xdata memory: Ram Start:0x6000 Ram Size:0x2000

I am compiling and having no question original program.
The following information appears...
Program Size: data=202.0 xdata=256 code=42745
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
*******************************************************
Memory Model:Large:Variables in XDATA
Off-chip Xdata memory: Ram Start:0x2000 Ram Size:0x2000

USB DEMO CODE compiling
The following information appears...
Program Size: data=22.0 xdata=899 code=5301
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
*******************************************************
Memory Model:Small:Variables in DATA
Off-chip Xdata memory: Ram Start:0x6000 Ram Size:0x2000

Join the part of USB DEMO CODE.When compiling.
The following information appears...
MAIN.C(1351): error C249: 'DATA': SEGMENT TOO LARGE
Target not created
*******************************************************
Change the small:variables in DATA into the Large:variables in XDATA.
While compiling again. The following information will appear....

*** ERROR L102: EXTERNAL ATTRIBUTE MISMATCH
SYMBOL: DDS_DATA_TEMP
MODULE: tranCode.obj (TRANCODE)

*** ERROR L102: EXTERNAL ATTRIBUTE MISMATCH
SYMBOL: DDS_DATA
MODULE: DDS_value.obj (DDS_value)

*** ERROR L102: EXTERNAL ATTRIBUTE MISMATCH
SYMBOL: LATCH_COUNTERvalue
MODULE: Counter.obj (COUNTER)

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?ONUSBSUSPEND?MAIN

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN1?MAIN

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_TRANSMITDATAEPX?UPSD_USB

*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: TIMEINT2
MODULE: initial.obj (INITIAL)

*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: SAVEANDRECALL
MODULE: initial.obj (INITIAL)

*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
BL51 BANKED LINKER/LOCATER V5.12 09/07/2005 11:41:29 PAGE 161


SYMBOL: TIMEINT2
MODULE: initial.obj (INITIAL)
ADDRESS: 848AH
.
.
.
.
.
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: LATCH_COUNTERvalue
MODULE: Counter.obj (COUNTER)
ADDRESS: B612H

*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: CUSCL_value
MODULE: upsd_usb.obj (UPSD_USB)

*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: CUSCL_value
MODULE: upsd_usb.obj (UPSD_USB)
ADDRESS: B8E3H

Program Size: data=174.0 xdata=613 code=47389
LINK/LOCATE RUN COMPLETE. 11 WARNING(S), 131 ERROR(S)
*******************************************************
Do not want to destroy it under the original structure. How to solve??
How should "'DATA': SEGMENT TOO LARGE", this problem , be solved ?
Use the range and capacity of XDATA . Operation mode .
Help to answer it. THX!

0