errors with linkerscript eth-avr51
GoogleCodeExporter opened this issue · 6 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. configure device001/2 with ATmega128; 16MHz; Large
The following output will be displayed
Calculate code size: device_001.sizeelf
avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -
DBOOTLOADER_FLAVOR=3 -
DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -
fshort-
enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=etherflash.o -
I. -I
.. -std=gnu99 -Wundef -MMD -MP -MF .dep/device_001.sizeelf.d etherflash.o
checks
um.o ethernet.o arp.o enc28j60.o spi.o udp.o dhcpc.o eemem.o --output
device_001
.sizeelf -Wl,--defsym=app_start=0 -Wl,-Map=device_001.map,--cref -lm -
Wl,--d
efsym=app_start=0x1FC00 -Wl,--section-start=.text=0x1FC00 -
T ../make.files/eth-a
vr51.x -Wl,--section-start=.bootloader=0x0000
c:/winavr-
20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe:../make.f
iles/eth-avr51.x:8: syntax error
After changing
data (rw!x) : ORIGIN = , LENGTH = 0xffa0
to
data (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
like in eth-avr51 or the standard linker script I get the following output.
Calculate code size: device_002.sizeelf
avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -
DBOOTLOADER_FLAVOR=3 -
DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -
fshort-
enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=etherflash.o -
I. -I
.. -std=gnu99 -Wundef -MMD -MP -MF .dep/device_002.sizeelf.d etherflash.o
checks
um.o ethernet.o arp.o enc28j60.o spi.o udp.o dhcpc.o eemem.o --output
device_002
.sizeelf -Wl,--defsym=app_start=0 -Wl,-Map=device_002.map,--cref -lm -
Wl,--d
efsym=app_start=0x1FC00 -Wl,--section-start=.text=0x1FC00 -
T ../make.files/eth-a
vr51.x -Wl,--section-start=.bootloader=0x0000
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe:
address
0x20020 of device_002.sizeelf section .text is not within region text
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe:
address
0x20020 of device_002.sizeelf section .text is not within region text
make: *** [device_002.sizeelf] Error 1
What version of the product are you using? On what operating system?
-latest svn
Original issue reported on code.google.com by UKai...@gmail.com
on 12 Jun 2009 at 11:39
GoogleCodeExporter commented
Hello, I have same problem.
I use Windows 7.
Here is log:
-----------------------------------
c:\ethernut-4.8.5\MMnet01_samples\ha_bootloader3\device_001>make
makefile:46: makefile.in: No such file or directory
PATH=$PATH:../make.files; . configure.sh avr-gcc ../make.files 0x3ff
****************************************************
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*
Welcome to the Ethernet Bootloader for ATmega maker!
Please select your device.
Choose from the list below and enter the digit that matches your
device and hit return. If your device is not listed, you also may
enter a name. However, there is no guarantee that this bootloader
will work with your device.
1) atmega8 3) atmega32 5) atmega128 7) atmega2561
2) atmega16 4) atmega64 6) atmega2560
#? 5
=> checking MCU...
=> MCU = atmega128 OK
Please select the clock frequency your device runs with.
Choose from the list below and enter the letter that matches your device
or enter your frequency in Hz if it is not in the list. Then hit return:
1) 1000000 4) 3686400 7) 8000000 10) 16000000
2) 1843200 5) 4000000 8) 11059200 11) 18432000
3) 2000000 6) 7372800 9) 14745600 12) 20000000
#? 10
=> F_CPU = 16000000
Please select the type of bootloader you would like to build.
- Small Version, uses 4KB of flash, includes all basic bootlader functions
- Medium Version, uses 6KB of flash, includes all from small version plus DHCP a
nd UDP
- Large Version, uses 8KB of flash, includes all from medium version plus TCP an
d Telnet
1) Small
2) Medium
3) Large
#? 2
-------- begin --------
avr-gcc (WinAVR 20090313) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: ../etherflash.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../etherflash.
lst -I. -I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/etherflash.o.d ../etherflash.c
-o etherflash.o
Compiling C: ../checksum.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../checksum.ls
t -I. -I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/checksum.o.d ../checksum.c -o ch
ecksum.o
Compiling C: ../ethernet.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../ethernet.ls
t -I. -I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/ethernet.o.d ../ethernet.c -o et
hernet.o
Compiling C: ../arp.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../arp.lst -I.
-I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/arp.o.d ../arp.c -o arp.o
Compiling C: ../enc28j60.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../enc28j60.ls
t -I. -I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/enc28j60.o.d ../enc28j60.c -o en
c28j60.o
Compiling C: ../spi.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../spi.lst -I.
-I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/spi.o.d ../spi.c -o spi.o
Compiling C: ../udp.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../udp.lst -I.
-I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/udp.o.d ../udp.c -o udp.o
Compiling C: ../dhcpc.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./../dhcpc.lst -
I. -I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/dhcpc.o.d ../dhcpc.c -o dhcpc.o
Compiling C: eemem.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=
2 -DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fsho
rt-enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=./eemem.lst -I.
-I.. -std=gnu99 -Wundef -MMD -MP -MF .dep/eemem.o.d eemem.c -o eemem.o
Calculate code size: device_001.sizeelf
avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=16000000UL -DBOOTLOADER_FLAVOR=2 -
DBLSECSTRT=0x3ff -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-
enums -Wall -Wstrict-prototypes -mcall-prologues -Wa,-adhlns=etherflash.o -I. -I
.. -std=gnu99 -Wundef -MMD -MP -MF .dep/device_001.sizeelf.d etherflash.o checks
um.o ethernet.o arp.o enc28j60.o spi.o udp.o dhcpc.o eemem.o --output device_001
.sizeelf -Wl,--defsym=app_start=0 -Wl,-Map=device_001.map,--cref -lm -Wl,--d
efsym=app_start=0x1FC00 -Wl,--section-start=.text=0x1FC00 -T ../make.files/eth-a
vr51.x -Wl,--section-start=.bootloader=0x0000
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: address
0x20020 of device_001.sizeelf section .text is not within region text
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: address
0x20020 of device_001.sizeelf section .text is not within region text
make: *** [device_001.sizeelf] Error 1
c:\ethernut-4.8.5\MMnet01_samples\ha_bootloader3\device_001>
Original comment by saulius....@gmail.com
on 15 Nov 2009 at 4:05
GoogleCodeExporter commented
Confirmed same issue with fresh installed WinXP (under VirtualBox), and fresh
WinAvr.
Original comment by saulius....@gmail.com
on 15 Nov 2009 at 4:31
GoogleCodeExporter commented
[deleted comment]
GoogleCodeExporter commented
I did some build testing for you. Here are results:
-------------------
<CPU>, <bootloader type>
1,1 - ok
2,1 - ok
3,1 - ok
4,1 - ok
5,1 - fail (1)
6,1 - ok
7,1 - ok
1,2 - ok
2,2 - ok
3,2 - ok
4,2 - ok
5,2 - fail (1)
6,2 - fail (2)
7,2 - fail (2)
1,3 - x
2,3 - ok
3,3 - ok
4,3 - ok
5,3 - fail (1)
6,3 - fail (2)
7,3 - fail (2)
(1)
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: address
0x20020 of device_001.sizeelf section .text is not within region text
(2)
******* ERROR *******
Section .text has a size of 0x456 bytes, but the available space
has only 0x3ff bytes.
Please move more functions to the section .bootloader or increase
the space for .text by changing the variable STAT_BLSECSIZE in the
makefile. Please note that in this case you have to change the
BOOTSZ fuses, too.
make: *** [device_001.sizeelf] Error 1
Original comment by saulius....@gmail.com
on 15 Nov 2009 at 5:12
GoogleCodeExporter commented
the problem is with size of hex file, size od BL program in memory,
change optimization in makefile from s to 1 or 2 helps.
Original comment by kmezyn...@gmail.com
on 22 Aug 2012 at 10:39
GoogleCodeExporter commented
and you should use bash instead of bash ;]
# Define programs and commands.
SHELL = bash
Original comment by kmezyn...@gmail.com
on 16 Sep 2012 at 7:22