www.mikrocontroller.net

Forum: Compiler & IDEs WinAVR-Fehlerausgabe anders formatieren


Autor: Frank N. (betafrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

WinAVR (Compiler) spuckt bei Fehlern Meldungen wie diese aus:

main.c:121: error: `Delay' undeclared (first use in this function)

Ich hätte das aber gern so:

E:\Eigene Dateien\TEST1\main.c(121) : `Delay' undeclared (first use in 
this function)

Die IDE würde mich dann per Doppelklick darauf zur entsprechenden 
Codezeile bringen. Läßt sich das ummodeln bzw. wer erzeugt die 
Meldungen?

Danke & Gruß
Frank

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVRStudio (mit angepapptem WinAVR) macht das so...

Autor: Ralf Oberle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es ist relativ einfach, sich selber ein kleines "Filtertool" zu 
schreiben, das die Ausgabe an stdio bzw. stderr neu formatiert. Siehe 
dazu einfach die Hilfe in z.B. MS VC++ 6.0 beim Eintrag dup, spawn, dup2 
etc. suchen. Dort ist auch ein Beispiel mit Quellcode, wie man das genau 
macht.

Der Aufruf ist dann: <Filtertool> <GNU Compiler mit allen Parametern>

Das Tool formatiert dann die Ausgaben vom Compiler um und sendet sie 
entsprechend der neuen Formatierung einfach weiter an stdio bzw. sdterr.

Gruss,

--Ralf

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich will mein eigenes Steuer und Rückmeldesystem entwickeln und dann in 
srcpd integrieren. Jetzt habe ich schon ein bisschen mir den Quellcode 
von srcpd angeschaut blicke aber noch nicht so richtig durch......

So habe ich mein System geplant:
Es gibt einen Microcontroller mit USB-Anschluss(nachfolgend Bus-Master 
genannt). Dieser MC hängt an einem I2C-Bus. An diesem I2C-Bus hängt eine 
Variable-Anzahl weiterer MCs(nachfolgend Bus-Slave genannt). Diese MCs 
haben 20Pins welche sie in den Modus Eingang, Ausgang, Servo bringen 
können.
Jeder "Bus-Slave" hat eine eindeutige ID. Vom Computer aus werden die 
"Bus-Slaves" nicht über ihre I2C-Adresse angesprochen sondern über ihre 
eindeutige ID. Der "Bus-Master" setzt dann die eindeutige ID mithilfe 
einer Tabelle in die I2C-Adresse um.

Jetzt weiß ich nicht wie ich mein System in srcpd integrieren kann, 
vorallem im Bereich "Datenmapping".
in srcpd wird davon ausgegangen das der Rückmelder 16 Eingänge hat. Aber 
ich habe zwischen 0-20.
Muss ich dann für jeden "Bus-Slave" 2*16=32Bits als FB 
weiterverarbeiten? Das gleiche Gilt auch für GA. Die Servos sollen 
zwischen 2-4Positionen anfahren. Ist sowas im srcpd bereits "eingeplant" 
?

Angenommen ich habe mehrere "Bus-Master" angeschlossen. Da soviel 
eingelesen und ausgegeben wird stelle ich fest dass der Bus überlastet 
ist und nehme aus jedem Bus ein paar "Bus-Slaves" heraus und schließe 
die an einen neuen "Bus-Master" an. Dann muss ich ja in allen 
SRCP-Clients die ich verwende die FBs neu zuordnen.
Wie müsste ich mein System in srcpd integrieren, so dass ich in dieser 
Situation irgendwo irgendein mapping verändern kann und ich damit die 
SRCP-Clients nicht verändern muss....

Wisst ihr wie ich das meine?
Ich kann mir vorstellen das ich irgendwo(srcpd.conf???)ein mapping 
festlege und damit sage Eingänge von "Bus-Slave" mit der ID xyz auf FB 
1-20 mappen usw..
Dann könnte ich die Topologie/Aufbau usw. ändern aber  der Eingang der 
vor der Änderung FB1 war wäre es danach immer noch.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry diesen Beitrag von mir ignorieren und bitte löschen!!!

Autor: Frank N. (betafrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Ralf Oberle

Danke - über diesen Weg klappt es.

Gruß Frank :-)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei dup2 + spawn ja nichts andere sind, als eine normale (Unix-)
Pipeline, die cmd.exe auch selbst kann.  Damit wird das Filter dann
drastisch einfacher, da es ja nur von stdin lesen und nach stdout
schreiben muss -- um all den Kram mit spawn und dup2 kümmert sich
cmd.exe selbst.

Ansonsten würde ich von einer IDE erwarten, dass man den Parser für
Fehlermeldungen in sinnvollem Maße an den Compiler anpassen kann.

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.