mikrocontroller.net

Forum: Compiler & IDEs avr-gcc und GUI


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es irgendeine Möglichkeit, den Kommandozeilencompiler avr-gcc in
ein GUI einzubetten. Ich finde es auf Dauer ziemlich ermüdend, ständig
das entsprechende makefile zu aktualisieren.
Habe bis jetzt mit Visual C programmiert, dort erfolgt das Kompilieren
wesentlich komfortabler.
Falls jemand eine Anleitung kennt, wie so etwas anzustellen ist, währe
ich sehr dankbar.

Thomas

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Emacs? :-)

WinAVR kommt mit Programmer's Notepad.

Ansonsten gibt's auch noch ein polnisches GUI, genauen Locator habe
ich nicht zur Hand (da ich mit Emacs zufrieden bin).

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da werd ich mich wohl mal schlau machen müssen, habe bis jetzt PN
benutzt.

Thomas

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas
>>Ich finde es auf Dauer ziemlich ermüdend, ständig
das entsprechende makefile zu aktualisieren.

Gerade deswegen hat Jörg Wunsch das Tool Mfile geschrieben, das erzeugt
ein Makefile mittels einer grafischen Oberfläche.

Bei richtiger Konfiguration kann man mit PN kompilieren und AVR flashen
alles über das PN GUI. Man braucht also die Kommandozeile gar nicht.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Anleitung zum Betrieb des avr-gcc unter PN (Programmer's Notepad)
findest Du hier:
http://users.rcn.com/rneswold/avr/

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist!
Falscher Link!
Irgendwie vertausche ich die beiden Dokumente jedes Mal...
Die Datei heisst
install_config_WinAVR Windows.pdf
und ist von Colin O'Flynn und Eric Weddington.
Ob ich die hier irgendwo gefunden habe weiss ich nicht mehr. Halt mal
googlen.
Rahul

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
& Rahul

Dein Posting hat mir sehr geholfen, das PN arbeitet so weit jetzt auch
gut, nur hängt es bei der Programmierung des Devices. Die habe ich
sonst immer mit Pony-Prog vorgenommen. Eine entsprechende Änderung im
von WinAVR mitgelieferten makefile auf "pony-stk200" bei Programmer
und die Auswahl des Parallelports machen die Sache aber leider nicht
gangbar. Müssen sonst noch irgendwelche Einstellungen vorgenommen
werden?

Thomas

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Makefile sieht dazu so aus:


# Programming support using ponyprog. Settings and variables.
#PONYPROG= ponyprog2000.exe
PONYPROG= C:\program files\ponyprog2000\ponyprog2000.exe
# Program the device.
program: $(TARGET).hex $(TARGET).eep
  echo -e "SELECTDEVICE $(MCU)\nLOAD-PROG $(TARGET).hex\n#LOAD-DATA
$(TARGET).eep\nWRITE-PROG" >isp.e2s
  $(PONYPROG) isp.e2s

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Einfügen deiner Codezeilen führt bei mir zur Fehlermeldung:
"missing seperator".
Hast du vielleicht irgendwelche Zeichen vergessen? Ansonsten wäre es ja
genau das, wonach ich gesucht habe.

Thomas

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Makefiles haben viel mit C gemeinsam...
kann es sein, dass da ein paar Semikolons am Ende der Zeilen fehlen?
Vergleich doch einfach mal dein altes Makefile mit dem neuen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann schon sein, aber rumexperimentieren bringt mich nicht wirklich
weiter.

Thomas

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scheint beim c&p ein LF reingerutscht zu sein. Hoffe, es geht so:


# Program the device.
program: $(TARGET).hex $(TARGET).eep
  echo -e "SELECTDEVICE $(MCU)\nLOAD-PROG (TARGET).hex\n#LOAD-DATA
$(TARGET).eep\nWRITE-PROG" >isp.e2s
  $(PONYPROG) isp.e2s

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, geht nicht, wahrscheinlich bin ich zu dämlich.

Also die zwei Zeilen nach der "program: xxx"-Zeile sind in
Wirklichkeit eine Zeile, anstelle des LF ein Space und es sollte gehen.

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,
vielleicht doch avrdude nochmal versuchen? Wenn Windows NT/2k/XP: ist
give-io installiert? Sonst funktioniert es nicht mit einem stk200-PPI.
Siehe X:\winavr\bin\install_giveio.bat (als "Admin"). Was heisst
"machen die Sache aber leider nicht gangbar" also wie ist die
Fehlermeldung?

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@mtomas: Die Fehlermeldung bei avrdude:

avrdude -p atmega8 -P lpt1   -c pony-stk200 -U flash:w:test.hex
avrdude: can't open device "giveio"

avrdude: failed to open parallel port "lpt1"

make: *** [program] Error 1

@ Michael: Das zusammenziehen der Zeilen hat leider nichts gebracht
(Fehler in Zeile 297), kannst du nicht einfach dein makefile posten.
Meins schaut so aus (siehe Anhang).

Thomas

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer wie ich keine Lust hat, sein Make immer an jedes Projekt neu
anzupassen, es geht auch ganz ohne.

Diese AC.BAT compiliert alle *.C im aktuellen Ordner und link sie dann
zusammen.
Lediglich den AVR-Typ muß man anpassen, wenn man mal einen anderen
nimmt.


http://www.mikrocontroller.net/attachment.php/45783/Ac.bat


Peter

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu Peter, und was hat das mit dem Download des Codes zu tun?  Den hast
Du da auch nicht drin. ;-)

Ob Du nun ein Batchfile oder ein Makefile anpassen mußt, bleibt das
gleiche...  make ist an mancher Stelle flexibler (besonders als die
dummen MS-DOS-Batches), aber das wird sicher hier nicht so häufig
gebraucht.

Btw,. *.C Dateien wären C++-Dateien... (großes ,C'). :)

Thomas, das sieht aber genau nach dem von mthomas beschriebenen
Problem aus: Du hast den giveio.sys-Treiber wohl nicht installiert
(sagt mir mein zugegebenermaßen begrenztes Windows-Verständnis).

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für eure Hilfe, mit Hilfe der entsprechenden Treiber
funktioniert die Programmierung mit avrdude jetzt prima.
Ich habe die Treiber im Anhang angefügt, falls noch jemand daran
Interesse hat.
Es vereinfacht die Sache ungemein, wenn man nun alles im Programmers
Notepad erledigen kann und nicht parallel noch Pony-Prog und die
Eingabeaufforderung geöffnet haben muss.

Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um den Thread abzuschließen sei mir noch die Bemerkung gestattet, dass
die von Michael geposteten Codezeilen für Pony-Prog auch funktionieren.
Leider sind durch das Copy&Paste sämtliche Tabulatoren verloren
gegangen. Deshalb hat das Einfügen in mein Makefile auch anfangs nicht
funktioniert. Das Ersetzen der Leerzeichen am Zeilenanfang durch Tabs
war die Lösung des Problems ;-)

Thomas

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau, Makefiles sind aus hysterischen Gründen TAB-empfindlich.

Vor einem Kommando, das zu einem Target gehört, muß ein TAB am
Anfang der Zeile stehen.

Michael hätte das Schnipselchen besser als Attachment anbieten sollen,
die normalen Beiträge hier werden halt verHTMLwurschtelt.  Das ist ein
dokumentiertes Feature dieses Forums :) (bspw. ist der Zeilenumbruch
von Andreas ausdrücklich dokumentiert worden).

Wer das nicht will, muß halt die klassischen Varianten nehmen: News
(de.sci.electronics) oder Mailinglisten (avr-gcc-list @ www.avr1.org).
Dort kommen die Beiträge auch so raus, wie man sie reinfüttert. ;-)
(Von einer angehängten signature des Listservers bei avr-gcc-list mal
abgesehen.)

Autor: Divison (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe das hinbekommen, das jetzt Ponyprog aus dem Makefile raus
startet.

Bei bedarf einfach fragen oder mailen.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was ist daran nun eigentlich vorteilhaft, statt für diesen Fall
gleich bei avrdude zu bleiben? ;-)

Autor: Divison (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nix, nur die vorliebe, weil ich damit schon immer arbeite!

Autor: eugen D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
benuzt doch einfach das mfile das mit winavr mitkommt, einfach nur den
mc einstellen, und den namen des files, und alles andere iss total
easy, assemblerfiles einbinden ohne probs .....
mfg eugen d

Autor: thomasb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich verwende das avrstude 4.0 mit winavr .. es funktioniert miteinander
ganz gut, das make starte ich trotzdem aus einem kommandofenster, damit
ich die fehlermeldung sehen. ansonsten könnte ich das make auch von
avrstudio aus anstossen. was mir extrem hilft, ist die bequeme
simulationsmöglichkeit von dem code (mit quickwatch) - das ganze
erinnert mich start an visual studio von m$ ...
beim simulieren musst du nur achten, daß die optimierung des compilers
abeschaltet ist, ansonsten funzt das ganze nicht. wenn du noch fragen
hast ...

das sind meine erfahrungen.

thomas

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit hast Du aber den größten Haken der Simulation erkannt: sie ist
komplett unrealistisch, wenn Du dafür die Optimierung abschalten mußt.
Der Code ist dann komplett anderer, und der Aussagewert der Simulation
ist u. U. gleich 0.

Autor: thomasb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@jörg:

das ist mir schon klar, daß der optimierte code ein anderer ist, als
der simulierte. aber programmfehler (if's greifen nicht, zählerstände,
...) sehe ich in der simulation doch besser ... natürlich schaut's bei
zeitkritischen sachen anders aus. wir arbeitest du? ich denke du
verwendest den pn, insight zum debuggen, simulavr zum simulieren?
vielleicht ist das die bessere variante. ich habe mich schon einige
zeit damit beschäftigt ... vielleicht bin ich zu doof dafür ... gibt's
z.b. wo eine anleitung, wie ich mit insight debugge, ohne über irgend
einen com-port eine verbindung irgendwohin zu benötigen?

ich glaube, mir geht einfach eine einfache anleitung für die winavr
tools ab ... oder vielleicht habe ich diese nicht gefunden ...?

vielleicht gibt mir jemand den richtigen kick in die richtung avr-tools
... :-) ich bin an sich für jeden tip dankbar :-)

schöne grüße,
thomas

ns: dein makefile-editor ist super, danke für das teil !!

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> das ist mir schon klar, daß der optimierte code ein anderer ist, als
> der simulierte. aber programmfehler (if's greifen nicht,
> zählerstände, ...) sehe ich in der simulation doch besser ...

Man kann sich auch dran gewöhnen, optimierten Code zu debuggen.

> wir arbeitest du? ich denke du verwendest den pn, insight zum
> debuggen, simulavr zum simulieren?

PN?  Ich bin mir gar nicht sicher, ob der auf meinem FreeBSD überhaupt
läuft...  Ich dachte, der wäre Windows-only.

Emacs -- ein Editor, aber viel mehr als das, eben eine Oberfläche für
alles.  Damit schreibe ich eben auch diese Zeilen (nachdem ich mich
früher ständig über diese Web-Foren geärgert habe, weil die
eingebauten Textfeld-Editoren in den Webbrausen einfach spartanisch
sind), damit schreibe ich meine Mails, meine Briefe, und ich mache
sämtliche Softwareentwicklung damit.  Egal, ob es sich um
Unix-Programme, das Debuggen eines FreeBSD-Kernels oder eben Code für
den AVR handelt -- eine ,,IDE'' für alles.  Nicht jedesmal was Neues
lernen müssen.  Mfile ist natürlich auch in einem Emacs entstanden.

Insight?  Nö, wenn, dann habe ich gehört, daß DDD als GDB-Frontend
bessere Bewertungen bekommen hat (läuft aber m. W. im Gegensatz zu
Insight nicht unter Windows), aber ich habe nie wirklich ein GUI beim
Debugger vermißt.  GDB pur also.

Simulavr zum Simulieren von Algorithmen, ja.  Vieles in der printf und
scanf Familie der avr-libc ist so entstanden, malloc teilweise auch
(wobei der Algorithmus auch teilweise auf dem FreeBSD direkt simuliert
worden ist).

AVaRICE und ein selbstgezimmertes JTAG ICE als Emulator.

Falls ich mal wirklich eine gute Simulation brauche, lasse ich VMLAB
unter Wine (ein Windows-Emulator) laufen.

> vielleicht ist das die bessere variante. ich habe mich schon einige
> zeit damit beschäftigt ... vielleicht bin ich zu doof dafür
> ... gibt's z.b. wo eine anleitung, wie ich mit insight debugge,
ohne
> über irgend einen com-port eine verbindung irgendwohin zu benötigen?

Naja, der GDB (der unter Insight liegt) kann nur dann Code direkt
ausführen, wenn es sich um solchen für die Maschine selbst handelt.
Für alles andere jedoch kann er über ein Fernsteuerprotokoll mit
entsprechenden Hilfsprogrammen reden.  Für den AVR können das simulavr
für eine Simulation bzw. AVaRICE + JTAG ICE für eine Emulation auf
einem Ziel-ATmega sein.  Der GDB verbindet sich über diese via TCP.
Im Falle von simulavr braucht's dafür keine serielle Schnittstelle,
im
Falle von AVaRICE braucht man diese, um das JTAG ICE anzusteuern.

simulavr ist leider recht spartanisch in der Simulation von IO
Komponenten.  Damit ist es eigentlich wirklich nur für Algorithmen
geeignet, alles andere macht man besser auf dem Zielprozessor.

> ns: dein makefile-editor ist super, danke für das teil !!

Freut mich, wenn ich den Leuten damit helfen konnte.  Nachdem ich es
geschrieben habe, benutze ich es auch selbst. ;-)

Autor: brandner thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@jörg:

ok, das klingt gut. du bringst mich auf den geschmack, mein "bastel
notebook" auf linux zu bringen und unter linux weiterzuentwickeln ...
:-)

gibt so ein paket wie winavr auf unter linux? wo bekomme ich die ganze
software hierfür her? vielleicht rüste ich wirklich auf linux um ...
:-)

vielen dank jedenfalls für die informationen,

thomas

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> gibt so ein paket wie winavr auf unter linux?

Irgendwas gibt's da, aber ich habe den Namen vergessen.  Erstens
nehme
ich kein Linux sondern FreeBSD, für das ich zudem noch selbst die
entsprechenden Pakete pflege.  Außerdem gibt's ja fertige RPMs von
den
einzelnen Tools auch fertig (meistenteils von Ted Roth, der seine
eigene Entwicklun unter Linux macht).

Mich stört es nicht, auch mal schnell einen Compiler selbst zu
compilieren. ;-)

Was brauchst Du noch an Software?  Ein gutgehender Editor (vim und
Emacs dürften die beliebtesten sein, andere gibt es aber wie Sand am
Meer) gehört irgendwie ohnehin zum System.  Dinge wie `make' sind
eigentlich auch von Haus aus dabei.

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.