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)
|
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,
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)
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,