PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Studio 4.12 SP4 + GCC: Linker(?)-Meldung: ".bootloa



fhs
16.10.2006, 21:15
Hallo,

nach vielen Jahren reiner Assembler-Programmierung für AVRs (und C für PCs), habe ich jetzt endlich einmal AVR Studio (v. 4.12 SP4) + GCC probiert und kapiere die beim Schritt "Build" erscheinende Meldung (bzw. den unten rot markierten Teil!) nicht:

************************************************** *
avr-objcopy -O ihex -R .eeprom Tacho.elf Tacho.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex Tacho.elf Tacho.eep
avr-objdump -h -S Tacho.elf > Tacho.lss

AVR Memory Usage
----------------
Device: attiny2313

Program: 1354 bytes (66.1% Full)
(.text + .data + [highlight=red:56ce2a9507].bootloader[/highlight:56ce2a9507])
************************************************** *

Eingebunden habe ich nur die Libraries "libm.a" und "libc.a". Der Makefile wird vom AVR Studio generiert.

Wird hier automatisch ein Bootloader eingebunden? Was genau bedeutet die Zeile mit ".bootloader"? Wo gibt es eine Dokumentation zu den Linker Flags?

Ich komme mir recht doof vor, die Antworten nicht selbst gefunden zu haben und hoffe auf Hilfe hier.

Danke!

Fred

CowZ
16.10.2006, 21:57
Hi,

Das bedeutet, dass in den 1354 Bytes der Text, die Daten und der Bootloader enthalten sind.

Gruß, CowZ

fhs
17.10.2006, 06:18
Das bedeutet, dass in den 1354 Bytes der Text, die Daten und der Bootloader enthalten sind.

Danke, CowZ. Welche Möglichkeit gibt es, das automatische Einbinden eines Bootloaders (wo kommt der her?) zu unterdrücken? Ohne "richtige" Bootloader Fuses und genügend Flash scheint ein Bootloader beim Attiny2313 nicht so sinnvoll -- und ich brauche den Speicherplatz!

Gruß

Fred

Ergänzung: Auch in https://www.roboternetz.de/wissen/index.php/Avr-gcc#Ablauf_der_Codegenerierung ist ".bootloader" erwähnt -- aber ich weiß immer noch nicht, wie das Einbinden abzuschalten ist.

linux_80
17.10.2006, 11:03
Hallo fhs,

das mit der Meldung ist immer so, kommt bei mir auch, ohne das ich etwas mit Bootloader mache, und solange das am Schluss steht:

Build succeeded with 0 Warnings...
passt compilermässig alles soweit.
Fertigen Bootloader gibts sowieso nicht, den muss man selber bauen, es sind nur ein paar Routinen die man einbinden könnte. (includes)

Du kannst Dir ja das Programm beim übersetzen in Assembler ausgeben lassen, *.lss Datei, dann siehst Du was alles ins Flash kommt.

fhs
17.10.2006, 11:44
Du kannst Dir ja das Programm beim übersetzen in Assembler ausgeben lassen, *.lss Datei, dann siehst Du was alles ins Flash kommt.

Klar, danke, linux_80; das Programm läuft einwandfrei.

Ich habe heute früh eine techn. Anfrage an Atmel geschickt und melde mich hier wieder, wenn Atmel mir erklärt, warum diese ".bootloader" Meldung kommt, obwohl gar kein Bootloader geladen wird.

Gruß

Fred

SprinterSB
17.10.2006, 11:49
Welche Möglichkeit gibt es, das automatische Einbinden eines Bootloaders (wo kommt der her?) zu unterdrücken?

Keine Panik, es wird nix automatisch eingebunden. Du machst ofenbar ein avr-size -C und das ist nun mal die Ausgabe von dem Teil.

Auf dem Flash landen die Inhalte folgender Sections: .text (dein Programm) .data (Initializer für deine Daten) und .bootloader (in deinem Falle leer).

Auch wenn die .bootloader-Section leer ist geht sie in die Berechnung der Größe mit ein. Ist dann eben 0.

fhs
19.10.2006, 08:05
Hallo,

vielen Dank für alle Antworten. Hier die Erklärung, die ich von Atmel erhalten habe:

****ZITAT Atmel (Fettdruck hinzugefügt)****
The AVR GCC plugin use external tools from the winavr distribution to print the information about the memory usage on the screen. What you see is not a message from the linker, but from a program called avr-size.exe or avr-mem.sh (winavr version dependent I think).

It is this program that writes this misleading information about .text + .data +.bootloader. The reason for this is to list up all the sections that may be included in the object file, but it don't check which sections that really exist.

So, in your case you can ignore this +.bootloader.
**** ZITATENDE ****

Das bestätigt voll Eure Darstellung.

Viele Grüße

Fred

ogni42
19.10.2006, 09:07
Ist es nicht cool, wie kundenfreundlich die Leute bei Atmel sind? Bei anderen Herstellern wartet man Monate auf eine Antwort (weiss ich aus eigener Leidvoller Erfahrung).

fhs
19.10.2006, 09:58
Ist es nicht cool, wie kundenfreundlich die Leute bei Atmel sind? Bei anderen Herstellern wartet man Monate auf eine Antwort (weiss ich aus eigener Leidvoller Erfahrung).

Hallo,

was technische Anfragen angeht, kann ich das mit einer Ausnahme bestätigen: Bei einer Frage an Atmel (zum Abstand der bonding wires vom MLF Gehäuse [ich wollte das Gehäuse für ein Mikromodell abschleifen]) bin ich trotz mehrerer Anrufe (D und USA) absolut nicht weitergekommen. Musterbeschaffung kann manchmal auch schwierig sein - aber das Problem liegt ja bei den Distributoren und ist nicht spezifisch für Atmel.

Fragen zum AVR Studio und zu anderen technische Details (z.B. eine Frage im Jahre 1999, wie belastbar der interne Oszillator beim AT90S2313 ist) sind immer innerhalb von 36 Stunden beantwortet worden!

Gruß

Fred

bluelight_electronic
23.10.2006, 17:33
Hi,

das Problem mit Mustern liegt leider DEF. bei Atmel -> Atmel gibt an die Distris Pro Kunde nur noch maximal 10 Muster her .. oder gleich ne VPE (Entgeltlich) .. (ist leider nun seit 2 Monate so)

Technische fragen werden innerhalb 36h beantwortet geb ich dir recht ;) meist sogar innerhalb 12.. :)