Topic : ADDRESS SPACE OVERFLOW with CODESTART(0X10000) !

Forum : ST7/STM8

Original Post
Post Information Post
January 24, 2012 - 10:37am
Guest

RLSTM8 LINKER/LOCATOR V2.36.11.201

INVOKED BY:
C:\Program Files\Raisonance\Ride\bin\rlstm8.exe -P
DEBUG\CHARGEUR_MAIN.O,DEBUG\REDIRECTION_IT.O TO(DEBUG\CHARGEUR_IULE.AOF)
LIBPATH(C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7) DEBUGLINES DEBUGPUBLICS
DEBUGSYMBOLS PR(DEBUG\CHARGEUR_IULE.MAP) DATASTART(0X0) RAMSIZE(0X1000)
CODESTART(0X10000) CODESIZE(0X2000) STACKTOP(0X1000) STACKSIZE(0X400)
EEPROMSTART(0X4000) EEPROMSIZE(0X600)
WITHOUT ANY FLOATING POINT ARITHMETIC

INPUT MODULES INCLUDED
DEBUG\CHARGEUR_MAIN.O(CHARGEUR_MAIN)
DEBUG\REDIRECTION_IT.O(REDIRECTION_IT)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8.LIB(INITDATA)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8.LIB(?STATINIT)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8.LIB(REGISTERS)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: CSTART(INITDATA)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: ?PR??CHARGEUR_MAIN?CHARGEUR_MAIN(CHARGEUR_MAIN)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: ?PR?STATINIT(?STATINIT)

LINK MAP OF MODULE: DEBUG\CHARGEUR_IULE.AOF (CHARGEUR_MAIN)

TYPE BASE LENGTH RELOCATION SEGMENT NAME
---- ---- ------ ---------- ------------

* * * * * * * * D A T A M E M O R Y * * * * * * * *
DATA 000000H 000004H PAGE0 CSTDLIB_REGISTERS
000004H 000BFCH *** GAP ***
DATA 000C00H 000400H UNIT ?C_STACK?SEG

* * * * * * * * C O D E M E M O R Y * * * * * * * *
CODE 010000H 00000CH AT RELAI_MAIN

IGNORED SEGMENT
?PR??CHARGEUR_MAIN?CHARGEUR_MAIN
?PR?STATINIT
CSTART

EXECUTABLE SUMMARY:
-------------------
Total EEPROM storage requirement: 0000H (0)
Total DATA storage requirement: 0404H (1028)
Total CODE storage requirement: 000CH (12)

Replies
Post Information Post
+1
0
-1
January 24, 2012 - 11:29am
Raisonance Support Team

Hi,

You declared a code segment from 0x10000 to 0x12000. However, your executable sections look like CODE segments (not FCODE).
You need to recompile all your C files with STM8(LARGE) option, and ensure that you do not have any "near" code (under 0xFFFF). You probably need to write your own startup file for this.

Best Regards,

+1
0
-1
January 24, 2012 - 6:08pm
Guest

Thank you
Now i have same mistake with the math librairie

RLSTM8 LINKER/LOCATOR V2.36.11.201

INVOKED BY:
C:\Program Files\Raisonance\Ride\bin\rlstm8.exe -P
DEBUG\CHARGEUR_MAIN.O,DEBUG\REDIRECTION_IT.O,DEBUG\CHARGEUR_MARQUEUR_FIN_CODE.O,DEBUG\CRC_A.O,DEBUG\INIT.O,DEBUG\OUTILS.O
TO(DEBUG\CHARGEUR_IULE.AOF) LIBPATH(C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7)
DEBUGLINES DEBUGPUBLICS DEBUGSYMBOLS PR(DEBUG\CHARGEUR_IULE.MAP)
DATASTART(0X0) RAMSIZE(0X1000) CODESTART(0X10000) CODESIZE(0X2000)
STACKTOP(0X1000) STACKSIZE(0X400) EEPROMSTART(0X4000) EEPROMSIZE(0X600)
WITHOUT ANY FLOATING POINT ARITHMETIC

INPUT MODULES INCLUDED
DEBUG\CHARGEUR_MAIN.O(CHARGEUR_MAIN)
DEBUG\REDIRECTION_IT.O(REDIRECTION_IT)
DEBUG\CHARGEUR_MARQUEUR_FIN_CODE.O(CHARGEUR_MARQUEUR_FIN_CODE)
DEBUG\CRC_A.O(CRC_A)
DEBUG\INIT.O(INIT)
DEBUG\OUTILS.O(OUTILS)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8L.LIB(ADD3232)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8L.LIB(SUB3232)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8L.LIB(CPU3232IX)
C:\PROGRAM FILES\RAISONANCE\RIDE\LIB\ST7\RCSTM8L.LIB(REGISTERS)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: CSTDLIB_SUB3232(SUB3232)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: CSTDLIB_ADD3232(ADD3232)

***ERROR 107: ADDRESS SPACE OVERFLOW
-SEGMENT: CSTDLIB_CPU3232IX(CPU3232IX)

LINK MAP OF MODULE: DEBUG\CHARGEUR_IULE.AOF (CHARGEUR_MAIN)

TYPE BASE LENGTH RELOCATION SEGMENT NAME
---- ---- ------ ---------- ------------

* * * * * * * * D A T A M E M O R Y * * * * * * * *
DATA 000000H 000004H PAGE0 CSTDLIB_REGISTERS
DATA 000004H 000008H INSECTION0 ?EDT?OUTILS
DATA 00000CH 000001H INSECTION0 ?EDT?CHARGEUR_MAIN
00000DH 000BF3H *** GAP ***
DATA 000C00H 000400H UNIT ?C_STACK?SEG

* * * * * * * * C O D E M E M O R Y * * * * * * * *
FCODE 010000H 000009H AT RELAI_MAIN
010009H 000003H *** GAP ***
FCODE 01000CH 000061H INSECTION ?FC??INIT_PORTS?INIT
01006DH 000003H *** GAP ***
FCODE 010070H 00001AH INSECTION ?FC??CHARGEUR_MAIN?CHARGEUR_MAIN
01008AH 000002H *** GAP ***
FCODE 01008CH 000010H INSECTION ?FC??INIT?INIT
FCODE 01009CH 000001H UNIT FIN_ZONE_EXECUTABLE
01009DH 000003H *** GAP ***
FCODE 0100A0H 00008AH AT TABLE_ADRESSE_RELAIS
01012AH 000002H *** GAP ***
FCODE 01012CH 0001E5H INSECTION ?FC??BT_CALCULCRCLOGICIEL?OUTILS
010311H 000003H *** GAP ***
FCODE 010314H 0000FCH INSECTION ?FC??BT_MODEDEFAUT?OUTILS
FCODE 010410H 000051H INSECTION ?FC??FLASH_READWORD?OUTILS
010461H 000003H *** GAP ***
FCODE 010464H 00003DH INSECTION ?FC??ATAMEMREVCPY?OUTILS
0104A1H 000003H *** GAP ***
FCODE 0104A4H 000018H INSECTION ?FC??BT_ATACLEAR?OUTILS
FCODE 0104BCH 000009H INSECTION ?FC??INITHORLOGEEXT?INIT
0104C5H 000003H *** GAP ***
FCODE 0104C8H 000001H UNIT CRC_ZONE_EXECUTABLE
0104C9H 000003H *** GAP ***
FCODE 0104CCH 000001H INSECTION ?FC??INITVARIABLES?INIT

IGNORED SEGMENT
CSTDLIB_ADD3232
CSTDLIB_CPU3232IX
CSTDLIB_SUB3232

EXECUTABLE SUMMARY:
-------------------
Total EEPROM storage requirement: 0000H (0)
Total DATA storage requirement: 040DH (1037)
Total CODE storage requirement: 04B1H (1201)

+1
0
-1
January 24, 2012 - 6:30pm
Raisonance Support Team

Hi,

Now you have a different problem: The C library functions such as ADD32, SUB32 and the like are all in CODE memory and *cannot* be located to FCODE.
As you do not have any CODE segment under 0xFFFF, you need to remove your "long" variables and 32-bit arithmetic, and suppress all C library calls from your program. It should then link without problem.

Best Regards,