Forum: Compiler & IDEs minGW und AVR


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von grundschüler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere meine avrs mit winAVR und nuerer toolchain. Studio ist 
mir zu langsam und zu nervig.

Zwecks debugging habe ich jetzt mal MinGW ausprobiert: schnell und macht 
im Prinzip alles, was ich erwarte. Wäre jetz natürlich schön, wenn man 
mit MinGW hexfiles generieren und mittels avrdude in die mcus bekommen 
könnte.

Gibts dafür eine einfache Anleitung? Habe dies gefunden: 
Beitrag "AVR Tool Chain mit MinGW". Ist aber schon etwas 
älter.

von Johann L. (gjlayde) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Und was genau ist das Problem?

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
Was wäre denn deiner Meinung nach der Vorteil von MinGW gegenüber deiner 
"neueren" Windows-toolchain?

Oliver

von grundschüler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> der Vorteil

Man kann Debuggen, d.h. Teile des Programms ohne mcu ablaufen lassen und 
schauen wie sich z.B. Variablen verändern.

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Wäre jetz natürlich schön, wenn man
> mit MinGW hexfiles generieren und mittels avrdude in die mcus bekommen
> könnte.

MinGW ist GCC & Co auf Windows für Windows. Damit kannst du keinen
AVR-Code generieren. Dafür gibt es ja den AVR-GCC.

Du kannst MinGW verwenden, um Programmteile auf dem PC vorzutesten. Ist
der Test erfolgreich, übersetzt du das Programm mit dem AVR-GCC und
lädst es auf den AVR. Es gibt m.W. keine GCC-Variante, die beides kann.

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
So ist es.

Echten AVR-Code debuggem geht halt (fast) nur mit dem Studio, das du 
aber nicht nutzen willst.

Oliver

von Johann L. (gjlayde) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Algorithmen kann man durchaus auch auf sehr gut auf einem PC testen.

von Nop (Gast)


Bewertung
0 lesenswert
nicht lesenswert
GCC kann zwar Code für sehr viele verschiedene Architekturen erzeugen - 
allerdings muß man GCC konfigurieren, wenn man ihn compiliert. Man kann 
also nicht zur GCC-Laufzeit auswählen, für was er Code erzeugen soll. 
MingW ist so gebaut, daß es x86-Code rauswirft.

Clang hingegen kann das, mit einem Clang-Binary per Kommandoswitch für 
verschiedene Architekturen Code erzeugen.

von Johann L. (gjlayde) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Neu übersetzen muss man aber immer noch.

von Kaj (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Johann L. schrieb:
> Algorithmen kann man durchaus auch auf sehr gut auf einem PC testen.
Das setzt voraus, dass sich der Entwickler gedanken ueber die Datentypen 
und die vielleicht vorhandene diskrepantz der Wertebereiche auf den 
unterschiedlichen Platformen gemacht hat...

von Bernhard R. (bernhard_r28)


Bewertung
0 lesenswert
nicht lesenswert
Ich schreibe meine Programmteile auch separat und baue/teste diese 
vorher auf dem PC mit dem "normalen" gcc. Dafür benötigst du ja aber eh 
eine "Testumgebung", welche dir die Schnittstellen zur MCU s(t)imuliert. 
Wenn es also schon zwei unterschiedliche Programme werden, warum dann 
nicht zwei unterschiedliche Makefiles verwenden??? Eines für die MinGW 
Toolchain und ein zweites für die AVR-GCC Toolchain. Das macht die ganze 
Sache doch auch gleich viel übersichtlicher...

von Johann L. (gjlayde) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Kaj schrieb:
> Johann L. schrieb:
>> Algorithmen kann man durchaus auch auf sehr gut auf einem PC testen.
> Das setzt voraus, dass sich der Entwickler gedanken ueber die Datentypen
> und die vielleicht vorhandene diskrepantz der Wertebereiche auf den
> unterschiedlichen Platformen gemacht hat...

Wenn ein Entwickler sich keine Gedanken um Datentypen gemacht hat, 
dann ist das schon mal schlecht.

Diskrepanz der Datentypen lässt sich gut mit [u]int*_t Typen begegnen. 
Allerdings hat man immer noch unterschiedliche Größe für int, und dies 
wird für Typ-Promotion verwendet.  Während es also auf einem AVR möglich 
ist, 16-Bit Integer zu vergleichen, ist dies auf einem PC nicht möglich, 
den jeglicher Vergleich wird vorher mindestens zu (unsigned) int 
promoten.

von W.A. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Studio ist mir zu langsam und zu nervig.

Da musst du dich schon deutlicher ausdrücken.

Meinst du Atmel Studio, AVR Studio oder welches sonst?

von Kaj (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Johann L. schrieb:
> Kaj schrieb:
>> Johann L. schrieb:
>>> Algorithmen kann man durchaus auch auf sehr gut auf einem PC testen.
>> Das setzt voraus, dass sich der Entwickler gedanken ueber die Datentypen
>> und die vielleicht vorhandene diskrepantz der Wertebereiche auf den
>> unterschiedlichen Platformen gemacht hat...
>
> Wenn ein Entwickler sich keine Gedanken um Datentypen gemacht hat,
> dann ist das schon mal schlecht.
Ja, das ist richtig, ist aber (m.M.n.) eins der groessten Probleme die 
wir haben, siehe nur mal die Referenzimplementierung von MD5, um nur ein 
Beispiel zu nennen.

https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5#Referenzimplementation

von grundschüler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
danke für die Beiträge.

Beitrag "AVR Tool Chain mit MinGW" habe ich 
dann wohl falsch verstanden.

probiert hatte ich atmel studio 6. Damit habe ich mir meine 
XP-Installation versaut. Es kamen dann ständig vb-Fehlermeldungen.

Alternative zu PC-debugging mit studio wäre dann noch codeblocks?

von Johann L. (gjlayde) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Beitrag "AVR Tool Chain mit MinGW" habe ich
> dann wohl falsch verstanden.

Dort ging es darum, sich eine AVR-Toolchain zu generieren, die unter 
WIndows läuft.  Also z.B. --host=i386-mingw32 und nicht 
--host=x86-pc-linux-gnu.

Prinzipiell hat man dazu 2 Möglichkeiten:  Die Tools nativ unter Windows 
generieren mit entsprechender Umgebung wie cygwin nd --build = --host. 
Oder einen Canadie Cross Build wie z.B. --build=x86_64-linux-gnu -- 
host=i386-mingw32 --target=avr von einer Linux-Maschine aus.

> Alternative zu PC-debugging mit studio wäre dann noch codeblocks?

Code::Blocks for Windos bringt i.d.R. einen mingw Compiler mit, der auch 
separat, also ohne C::B genutzt werden kann.  Wie ich sehe, liegt der 
Comiler da in ./MinGW/bin/gcc und dito für andere Tools wie g++ und 
objcopy etc.

: Bearbeitet durch User
von Bernhard R. (bernhard_r28)


Bewertung
0 lesenswert
nicht lesenswert
Da gäbe es ja auch noch Eclipse CDT mit Debugging über GDB. Das sollte 
ja auch keine große Sache sein, die Toolchain da zum Laufen zu bekommen.

: 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]
  • [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.