mikrocontroller.net

Forum: Compiler & IDEs AS7 avr-gcc updaten ?


Autor: Veit D. (devil-elec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mich treibt immer noch das Problem um wie ich eine aktuelle avr-gcc 
Version meinem Atmel Studio 7 verfügbar mache.

diese gut gemeinte Beschreibung funktioniert nicht.
Die Toolchain avr-gcc-8.0_2017-07-19_mingw32 ist verfügbar unter:
****************************************************************
https://sourceforge.net/projects/mobilechessboar/f...

Package Name und Package Base Path in AtmelStudio eintragen
***********************************************************
SolutionExplorer | Project: rechte Maustaste: Propreties | Advanced | 
Link: Tools>Options>Toolchain>FlavourConfiguration | 
Atmel-8Bit-CPP-language | Package Name und Package Base Path eintragen.


Package in AtmelStudio auswählen
********************************
SolutionExplorer | Project: rechte Maustaste: Propreties | Advanced | 
Toolchain Flavour | neue Toolchain auswählen.

Auch habe ich es mit anderen fertigen Paketen versucht.
http://blog.zakkemble.co.uk/avr-gcc-builds/
https://sourceforge.net/projects/mobilechessboar/f...

Habe immer entpackt und auf den Ordner verwiesen der über den avr, bin, 
include usw liegt.

Mit leeren Projekt immer "recipe for target 'main.o' failed"

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal bin versucht?

Autor: MitLeserin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Veit D. schrieb:
> Package Name und Package Base Path in AtmelStudio eintragen
> ***********************************************************
> SolutionExplorer | Project: rechte Maustaste: Propreties | Advanced |
> Link: Tools>Options>Toolchain>FlavourConfiguration |
> Atmel-8Bit-CPP-language | Package Name und Package Base Path eintragen.

mein Pfad:
*********
C:\Atmel_Toolchain\AVR8_GCC\avr-gcc-8.0_2017-07-19_mingw32\bin


.. sinngemäss anpassen sollte funktionieren.

Autor: Veit D. (devil-elec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit dem Pfad auf .../bin  kompiliert es zwar fehlerfrei, zeigt aber 0% 
und 0Byte RAM/Flash Belegung an. Kann noch nicht richtig sein.

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Veit D. schrieb:
> mit dem Pfad auf .../bin  kompiliert es zwar fehlerfrei, zeigt aber 0%
> und 0Byte RAM/Flash Belegung an. Kann noch nicht richtig sein.

Da ist vermutlich das Linker Skript kaputt oder passt nicht zum Code.

Autor: Apollo M. (Firma: @home) (majortom)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi,
ich verwende ganz einfach zwei versionen parallel, last 5.x und 7.x, via 
button/external tools und den zwei attached cmd's

damit code size richtig erscheint habe ich von version 5.x die 
avr_size/objcopy/objdump rüber kopiert, es gibt aber ein problem, im 
simulator/debugger werden nicht alle symbol infos richtig angezeigt.

ich benutze die 7.x zu mindest als letzten size/speed optimierungsstep!


mt

Autor: Veit D. (devil-elec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die Informationen. Es tut sich was zum guten ...

Ich habe mit vier Versionen probiert, 6.4.1, 7.1.1, 7.2.0 und 8.0, alle 
scheinen zu kompilieren, keine Fehler/Warnungen, aber Speicheranzeige 0.

Nachdem Datei austauschen Tipp muss man nur die alte (von AS) 
"avr-size.exe" in den neuen avr-gcc Pfad ...\bin  reinkopieren/ersetzen. 
Danach funktioniert die Speicheranzeige. Ob die allerdings stimmt, da 
bin ich mir nicht so sicher. Denn eine "avr-size.exe" ist ja in den 
neuen Paketen vorhanden und hat eine andere Dateigröße. Funktioniert nur 
nicht, warum auch immer.

bei mir von:
C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin

Dann habe ich mal rumgespielt und verstehe den Mechanismus dahinter noch 
nicht wirklich. Einmal konnte ich zwischen den toolchains wechseln und 
der Flashverbrauch änderte sich. Danach anderes Projekt, wieder 
gewechselt und Flashverbrauch änderte sich nicht.

Nur die RAM Verbrauchsanzeige blieb immer konstant.

Kann man nun zwischendurch die Toolchain Versionen ändern oder bleibt 
die für immer konstant mit der Version mit der man sein Projekt neu 
erstellt hatte? Irgendwas widerspricht sich.

Sind die neueren Versionen schon für höhere C++ Version wie 14 oder 17 
voreingestellt oder muss man dafür noch Optionen setzen? Ich finde die 
Übersichtsseite nicht mehr.

Und was hat es mit dem "GDB" auf sich? Was ist das und wofür? Weil der 
Pfadeintrag ist tot nach toolchain Version Änderung. Irgendwas zum 
debuggen muss das sein.

Autor: MitLeserin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit der Kommandozeile aufgerufen liefern alle avr-size.exe der 
jeweiligen Toolchains für ein beispiel.elf die entspechenden Angaben.

Mit Atmel-Studio aufgerufen liefert die Toolchain Native und die 
Toolchain avr8-gnu-Toolchain-3.5.0.85 mit

Using "RunOutputFileVerifyTask" task from assembly 
"C:\Atmel7\7.0\Extensions\Application\AvrGCC.dll".
Task "RunOutputFileVerifyTask"

Program Memory Usage   :  62 bytes   0.8 % Full
Data Memory Usage     :  0 bytes   0.0 % Full

die selben Resultate wie avr-size aus Kommandozeile.


Mit Toolchain avr-gcc-7.1.1_2017-07-27_mingw32 und mit Toolchain 
avr-gcc-8.0_2017-07-19_mingw32 aufgerufen liefert

Using "RunOutputFileVerifyTask" task from assembly 
"C:\Atmel7\7.0\Extensions\Application\AvrGCC.dll".
Task "RunOutputFileVerifyTask"

Program Memory Usage :  0 bytes   0.0 % Full
Data Memory Usage :  0 bytes   0.0 % Full

Autor: Oliver S. (oliverso)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche avr-size Version bei einem Aufruf ohne vollständige Pfadabgabe 
aufgerufen werden, hängt von den eingestellten Pfaden im System ab.

Oliver

Autor: Apollo M. (Firma: @home) (majortom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann man nun zwischendurch die Toolchain Versionen ändern oder bleibt
> die für immer konstant mit der Version mit der man sein Projekt neu
> erstellt hatte?

ich kann jederzeit mit einen mausklick wechseln, dann wird immer nur der 
link zum tool verzeichnis gewechselt. geht aber nur, wenn atmelstudio 
als admin gestartet wird, da mklink die rechte braucht.
die toolchain optionen bleiben aber gleich, wenn andere optionen auch 
gewünscht sind, dann über unterschiedliche solution configuration, like 
debug/production/size/speed/...

unter gcc 7.2, stimmt bei mir die code/ram size immer und
default C++ language dialect options is ‘-std=gnu++14’.

mt

Autor: MitLeserin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Veit D. schrieb:
> Kann man nun zwischendurch die Toolchain Versionen ändern oder bleibt
> die für immer konstant mit der Version mit der man sein Projekt neu
> erstellt hatte? Irgendwas widerspricht sich.

Toolchain kann mit | Properties | Advanced | Toolchain Flavour | sehr 
einfach ausgewählt werden.

Properties Seite abspeichern ( oder automatisch abspeichern lassen )

Mit | Build | Rebuild Solution |  die Output Daten löschen und neu 
erstellen lassen.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Veit D. schrieb:
> Nachdem Datei austauschen Tipp muss man nur die alte (von AS)
> "avr-size.exe" in den neuen avr-gcc Pfad ...\bin  reinkopieren/ersetzen.
> Danach funktioniert die Speicheranzeige. Ob die allerdings stimmt, da
> bin ich mir nicht so sicher. Denn eine "avr-size.exe" ist ja in den
> neuen Paketen vorhanden und hat eine andere Dateigröße. Funktioniert nur
> nicht, warum auch immer.

Die alte avr-size (z.B. aus WinAVR) enthält zur Anzeige der Größe einen 
üblen Hack.  So übel, dass es der Hack nie in die offizielle Versiob 
geschafft hat.

Autor: Veit D. (devil-elec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

an das Rebuild Solution hatte ich nicht gedacht, funktioniert.

Habe dann auch nochmal die gcc 7.2 von zakkemble mit der Arduino IDE 
probiert, laut Beschreibung soll das funktionieren. Geht auch nicht. 
Angeblich fehlt in \bin die avr-g++. Sie liegt aber genau da wo sie sein 
soll.

Wenigstens läuft jetzt AS mit neuer Version.

Warum die alte avr-size ein Hack sein soll verstehe ich nicht. Glaube 
kaum das Atmel daran "rumgepfutscht" hat.

Danke @ all.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Veit D. schrieb:
> Warum die alte avr-size ein Hack sein soll verstehe ich nicht.

Die Änderung wurde von den Binutils-Maintainern abgelehnt (und würde es 
auch heute noch werden), kam also nie in eine offizielle Release (es sei 
denn als inoffizieller Patch auf eine Release).

> Glaube kaum das Atmel daran "rumgepfutscht" hat.

Irgendwann hat Atmel dann einen 2ten Ansatz gestartet: Anstatt die 
komplette Device-Info — immerhin >> 200 Devices — neben in avr-libc, 
Compiler auch in Binutils reinzukloppen, würde folgender Ansatz gewählt:

Dort, wo die Device-Info verfügbar ist (avr-libc) wird sie in eine 
eigens dafür vorgesehene .note-Section eingetragen, und zwar im 
Startup-Code:

http://svn.savannah.nongnu.org/viewvc/avr-libc/tru...

Da quasi alle Anwendungen diesen Startup-Code verwenden, ist die Info 
also prinzipiell verfügbar.  Beispiel: Ein simples Programm mit 
-mmcu=atmega8 übersetzt und dann
$ avr-objdump -s -j .note.gnu.avr.deviceinfo a.elf

a.elf:     file format elf32-avr

Contents of section .note.gnu.avr.deviceinfo:
 0000 04000000 2a000000 01000000 41565200  ....*.......AVR.
 0010 00000000 00200000 60000000 00040000  ..... ..`.......
 0020 00000000 00020000 08000000 01000000  ................
 0030 0061746d 65676138 00000000           .atmega8....    
Damit ist das Zeug prinzipell in avr-size verfügbar, ohne avr-size zu 
hacken.

So weit, so gut.  Wie's dann weitergeht? Keine Ahnung.  Frag Atmel :-)

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.