IAR linker file

Fuzesi Arnold arno at externet.hu
Tue May 18 00:56:28 CEST 2004


Sziasztok!

Ebben meg ugyan mi a hiba?
Nem ertem...

A flash vegebe tennem a kodot, de az alabbi hibat adja forditaskor a linker:

Error[e16]: Segment INTVEC (size: 0x1f804 align: 0x1) is too long for
segment definition. At least 0x1f778 more bytes needed. The problem occurred
while processing the segment placement command
"-Z(CODE)INTVEC=1F800-(1F800+_..X_INTVEC_SIZE-1)", where at the moment of
placement the available memory ranges were "1f800-1f88b"

INTVEC size epp az elso ami definialva van.8C a hossza, es nem 0x1f804
Biztos en vagyok a hulye, de nem ertem.

linker file:
-D_..X_INTVEC_SIZE=8C   /* 4 bytes * 35 vectors */
-D_..X_FLASH_TEND=FF    /* End of tiny flash memory */
-D_..X_FLASH_NEND=FFFF  /* End of near flash memory */
-D_..X_FLASH_END=1FFFF  /* End of flash memory */
-D_..X_SRAM_BASE=100    /* Start of ram memory */
-D_..X_SRAM_TEND=100    /* End of tiny ram memory */
-D_..X_SRAM_END=10FF    /* End of ram memory */
-D_..X_EEPROM_END=FFF   /* End of eeprom memory */
-D_..X_CSTACK_SIZE=200  /* 512 bytes for auto variables and saved registers.
*/
-D_..X_RSTACK_SIZE=40   /* 64 bytes for return addresses, equivalent to 32
*/
                        /* levels of calls, including interrupts. */
-D_..X_HEAP_SIZE=100    /* 256 bytes of heap. */
-D_..X_EXT_SRAM_BASE=_..X_SRAM_BASE
-D_..X_EXT_SRAM_END=_..X_SRAM_END
-D_..X_EXT_EPROM_BASE=_..X_SRAM_BASE
-D_..X_EXT_EPROM_END=_..X_SRAM_END
-D_..X_EXT_EEPROM_BASE=_..X_SRAM_BASE
-D_..X_EXT_EEPROM_END=_..X_SRAM_END
/* Define CPU */
-ca90

/* Code memory */
-Z(CODE)INTVEC=1F800-(1F800+_..X_INTVEC_SIZE-1)
/* Fill unused interrupt vector's with RETI */
-H1895
-h(CODE)1F800-(1F800+_..X_INTVEC_SIZE)
-Z(CODE)TINY_F=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_TEND
-Z(CODE)NEAR_F,SWITCH,DIFUNCT=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_NEND
-Z(CODE)CODE=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_END
-Z(FARCODE)FAR_F,INITTAB=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_END
-Z(CODE)HUGE_F=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_END
-Z(CODE)TINY_ID,NEAR_ID,CHECKSUM=(1F800+_..X_INTVEC_SIZE)-_..X_FLASH_END
/* Internal data memory */
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_BASE-_..X_SRAM_TEND
-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-_..X_E
XT_SRAM_END

/*
 * If external SRAM is available it is possible to place the stacks there.
 * However, the external memory is slower than the internal so moving the
 * stacks to the external memory will degrade the system performance.
 */
-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END /*
,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END */
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END /*
,_..X_EXT_SRAM_BASE-_..X_EXT_SRAM_END */
/*
 * If external SRAM is available it might be a good idea to move the
 * heap segment there, i.e. remove the _..X_SRAM_BASE-_..X_SRAM_END range.
 */
-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE-
_..X_EXT_SRAM_END

/* Internal eeprom memory */
-Z(XDATA)EEPROM_I,EEPROM_N=0-_..X_EEPROM_END

/*
 * The following segment definitions are only used if external memory is
 * connected to the AVR controller.
 */

/* External EPROM */
-Z(CONST)NEAR_C=_..X_EXT_EPROM_BASE-_..X_EXT_EPROM_END

/* External EEPROM */
-Z(DATA)NEAR_N=_..X_EXT_EEPROM_BASE-_..X_EXT_EEPROM_END

/* Select reduced "printf" support to reduce library size.
   See configuration section in manual concerning printf/sprintf. */

/*Dlib*/
-e_Printf_1=_Printf

/*Clib*/
-e_small_write=_formatted_write
-e_small_write_P=_formatted_write_P

/* Disable floating-point support in "scanf" to reduce library size.
   See configuration section in manual concerning scanf/sscanf */

/*Dlib*/
-e_Scanf_1=_Scanf

/*Clib*/
-e_medium_read=_formatted_read
-e_medium_read_P=_formatted_read_P

/* Suppress one warning which is not relevant for this processor */
-w29

/* Code will now reside in file aout.a90 or aout.d90, unless -o is specified
*/
/* .d90 is the default if debug system is linked (option -r) */
/* .a90 is the default without debugging. Default format is -Fmotorola */


Arnold




More information about the Elektro mailing list