Problem mit Segmenten bei WinAVR-20071221

#739897
Lesenswert?

Hallo,

Problem: Nach dem Update von AVRStudio (4.12 SP4 -> 4.13 SP2) und WinAVR 
(WinAVR-20060421 -> WinAVR-20071221) erhalte ich komischerweise beim 
Compilieren eines alten (bisher funktionierenden) Projekts 
Fehlermeldungen, dass sich jetzt Segmente überschneiden würden.

Ich habe zwei eigene Segmente im Flash definiert (Atmega168):
.bootloader 0x1F00
.basflash  0x1C00

Früher passte das, da wurde Segment .text automatisch richtig angepasst, 
jetzt aber offenbar nicht mehr. Wie kann ich das reparieren?

1
Mit AVRStudio V4.13 SP2 und neuem WinAVR-20071221
2
-------------------------------------------------
3

4
Build started 2.1.2008 at 10:01:35
5
avr-gcc.exe  -mmcu=atmega168 -Wall -gdwarf-2                                                              -DF_CPU=18432000UL -Os -fsigned-char -MD -MP -MT AVRFlashBasic.o -MF dep/AVRFlashBasic.o.d  -c  ../AVRFlashBasic.c
6
avr-gcc.exe -mmcu=atmega168 -Wl,-Map=AVRFlashBasic.map -Wl,-section-start=.bootloader=0x3e00 -Wl,-section-start=.basflash=0x3800 AVRFlashBasic.o     -o AVRFlashBasic.elf
7
c:/atmel/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/bin/ld.exe: section .basflash [00003800 -> 00003cff] overlaps section .text [00000000 -> 000039c9]
8
c:/atmel/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/bin/ld.exe: section .data [000039ca -> 000039d1] overlaps section .basflash [00003800 -> 00003cff]
9
make: *** [AVRFlashBasic.elf] Error 1
10
Build failed with 2 errors and 0 warnings...
11

12

13

14
Mit AVRStudio V4.13 SP2 und altem WinAVR-20060421
15
-------------------------------------------------
16

17
Build started 2.1.2008 at 09:57:41
18
avr-gcc.exe  -mmcu=atmega168 -Wall -gdwarf-2                                                              -DF_CPU=18432000UL -Os -fsigned-char -MD -MP -MT AVRFlashBasic.o -MF dep/AVRFlashBasic.o.d  -c  ../AVRFlashBasic.c
19
avr-gcc.exe -mmcu=atmega168 -Wl,-Map=AVRFlashBasic.map -Wl,-section-start=.bootloader=0x3e00 -Wl,-section-start=.basflash=0x3800 AVRFlashBasic.o     -o AVRFlashBasic.elf
20
avr-objcopy -O ihex -R .eeprom  AVRFlashBasic.elf AVRFlashBasic.hex
21
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex AVRFlashBasic.elf AVRFlashBasic.eep || exit 0
22
avr-objdump -h -S AVRFlashBasic.elf > AVRFlashBasic.lss
23

24
AVR Memory Usage
25
----------------
26
Device: atmega168
27

28
Program:   14132 bytes (86.3% Full)
29
(.text + .data + .bootloader)
30

31
Data:        171 bytes (16.7% Full)
32
(.data + .bss + .noinit)
33

34
EEPROM:      507 bytes (99.0% Full)
35
(.eeprom)
36

37

38
Build succeeded with 0 Warnings...


Grüße Ralf
#740652
Lesenswert?

Hallo Jörg,

nach dem Vergleich des alten und des neuen Map-Files ist mir nicht 
wirklich klar geworden, was sich "aufgebläht" hat, ich sehe nur, dass 
viele Zeilen dazugekommen sind, die mir aber nicht viel sagen. Ab 
*(.trampolines) gehts los. Ich habe die beiden Files mal angehängt. Ist 
das alles so wie es sein soll?

Grüße Ralf
Angehängte Dateien:
Moderator Persönliche Seite #741130
Lesenswert?

Zewa wrote:

>>(Version 20071221 hat dort einen Bug)
>
> Wann wird das eigentlich gefixt ? Ist doch jetzt schon ne weile bekannt.

Der Bug ist noch am gleichen Tag repariert worden, an dem der Bugreport
beim avr-libc-Projekt aufgeschlagen ist.  Dmitry war wirklich schnell
hier.

Nun braucht's aber erstmal eine neue avr-libc-Version (kein großes
Problem), und von da muss das Ganze einen Weg in eine neue WinAVR-
Version finden (was sicher etwas länger dauert).  Außerdem solltest
du dir Eric Weddingtons Ankündigung vom WinAVR 20071221 nochmal
durchlesen, da hat er ausdrücklich darauf verwiesen, dass er das
unmittelbar vor den Weihnachtsferien herausgegeben hat und auf allerlei
Feedback erst nach diesen eingehen kann.  Oder wie stellst du dir so
ein Familienweihnachten mit 3 Kindern vor?
Gast #741213
Lesenswert?

Ich wollte hier keinen Angreifen oder so.
Ich habe großen Respekt vor allen die am WinAVR mitwirken und die ganzen 
Sachen kotenlos zu Verfügung stellen.
Leider war mir nicht klar, wieviel Aufwand es ist. So warte ich eben 
geduldig auf die neue Version vom WinAVR ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren