AVR linker script minor changes
Marek Michalkiewicz
marekm@t19.ds.pwr.wroc.pl
Tue May 23 03:45:00 GMT 2000
These AVR linker script changes make it possible to change start address
of the data section from the default 0x60 (currently hardcoded in gcrt1.S
but will be changed to __data_start), and define the stack at link time
instead of main() compile time ("avr-gcc -minit-stack=__stack" can then
be made the default).
Thanks,
Marek
2000-05-23 Marek Michalkiewicz <marekm@linux.org.pl>
* emulparams/avr1200.sh (STACK): Define as 0.
* emulparams/avr23xx.sh (STACK): Define as last internal SRAM address.
* emulparams/avr4433.sh (STACK): Likewise.
* emulparams/avr44x4.sh (STACK): Likewise.
* emulparams/avr85xx.sh (STACK): Likewise.
* emulparams/avrmega103.sh (STACK): Likewise.
* emulparams/avrmega161.sh (STACK): Likewise.
* emulparams/avrmega603.sh (STACK): Likewise.
* scripttempl/elf32avr.sc (__data_start): Define for gcrt1.
(__stack): Define from ${STACK} for main().
Index: ld/emulparams/avr1200.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avr1200.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avr1200.sh
*** avr1200.sh 2000/03/27 08:39:14 1.1
--- avr1200.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,11 ****
--- 9,12 ----
TEXT_LENGTH=1K
DATA_LENGTH=0
EEPROM_LENGTH=64
+ STACK=0
Index: ld/emulparams/avr23xx.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avr23xx.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avr23xx.sh
*** avr23xx.sh 2000/03/27 08:39:14 1.1
--- avr23xx.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=2K
DATA_LENGTH=128
EEPROM_LENGTH=128
+ STACK=0x0DF
Index: ld/emulparams/avr4433.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avr4433.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avr4433.sh
*** avr4433.sh 2000/03/27 08:39:14 1.1
--- avr4433.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=4K
DATA_LENGTH=128
EEPROM_LENGTH=256
+ STACK=0x0DF
Index: ld/emulparams/avr44x4.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avr44x4.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avr44x4.sh
*** avr44x4.sh 2000/03/27 08:39:14 1.1
--- avr44x4.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=4K
DATA_LENGTH=256
EEPROM_LENGTH=256
+ STACK=0x15F
Index: ld/emulparams/avr85xx.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avr85xx.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avr85xx.sh
*** avr85xx.sh 2000/03/27 08:39:14 1.1
--- avr85xx.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=8K
DATA_LENGTH=512
EEPROM_LENGTH=512
+ STACK=0x25F
Index: ld/emulparams/avrmega103.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avrmega103.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avrmega103.sh
*** avrmega103.sh 2000/03/27 08:39:14 1.1
--- avrmega103.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=128K
DATA_LENGTH=4K
EEPROM_LENGTH=4K
+ STACK=0x0FFF
Index: ld/emulparams/avrmega161.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avrmega161.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avrmega161.sh
*** avrmega161.sh 2000/03/27 08:39:14 1.1
--- avrmega161.sh 2000/05/23 09:39:47
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=16K
DATA_LENGTH=1K
EEPROM_LENGTH=512
+ STACK=0x45F
Index: ld/emulparams/avrmega603.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/avrmega603.sh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 avrmega603.sh
*** avrmega603.sh 2000/03/27 08:39:14 1.1
--- avrmega603.sh 2000/05/23 09:39:48
*************** TEMPLATE_NAME=generic
*** 9,12 ****
--- 9,13 ----
TEXT_LENGTH=64K
DATA_LENGTH=4K
EEPROM_LENGTH=2K
+ STACK=0x0FFF
Index: ld/scripttempl/elf32avr.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf32avr.sc,v
retrieving revision 1.1
diff -c -3 -p -r1.1 elf32avr.sc
*** elf32avr.sc 2000/03/27 08:39:14 1.1
--- elf32avr.sc 2000/05/23 09:39:48
*************** SECTIONS
*** 88,93 ****
--- 88,94 ----
.data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))}
{
+ ${RELOCATING+ PROVIDE (__data_start = .) ; }
*(.data)
*(.gnu.linkonce.d*)
${RELOCATING+. = ALIGN(2);}
*************** SECTIONS
*** 144,149 ****
--- 145,151 ----
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
+ PROVIDE (__stack = ${STACK}) ;
}
EOF
More information about the Binutils
mailing list