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