www.mikrocontroller.net

Forum: Compiler & IDEs AVR Studio - Script vor Kompilierung ausführen


Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Verwende AVR-Studio (4.18.700) und WinAVR und möchte ein VBS-Script 
ausführen, das in den Source-Files (*.c, *.h) einige automatische 
Veränderungen durchführt, bevor sie kompiliert werden.
Soweit ist das ja kein Problem (Script starten, <Build> im AVR-Studio 
ausführen), allerdings wäre es nett, wenn AVR-Studio nach drücken von F7 
(Build) automatisch zuerst mein Script ausführt, und dann den restlichen 
Ablauf startet. Wie kann ich das erreichen ?

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
via "External Makefile"

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit klar, aber der Umstieg auf ein "External Makefile" ist (soweit 
ich weis), ein Endgültiger. Soll heißen, in einem "External Makefile" 
kann ich zwar dann beliebig herumhacken, aber wenn sich mein Projekt 
vergrößert (neue Sourcefiles), muss ich die neuen Files händisch 
nachtragen und verliere somit den Luxus der automatischen 
"Makefile-Generierung" und das möchte ich eigentlich nicht (würde mehr 
Aufwand bedeuten als bei jeder Kompilierung das Skript per 
Tasten-Shortcut auszuführen).
Ich suche also einen Weg, dem AVR-Studio beizubringen, das es das 
Starten meines Scripts ins "automatisch" erstellte Makefile schreibt 
(oder so ähnlich).
Ein anderer Ansatz wäre vielleicht ein Zugriff auf die Belegung des 
Build-Button’s des AVR-Studios, da dieser ja den ganzen Ablauf anstößt. 
Allerdings habe ich diesbezüglich noch nichts brauchbares gefunden.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fritz schrieb:
> Ich suche also einen Weg, dem AVR-Studio beizubringen, das es das
> Starten meines Scripts ins "automatisch" erstellte Makefile schreibt
> (oder so ähnlich).

Der Weg wäre, daß mal bei Atmel vorzutragen, und drauf hoffen, daß die 
das mal irgendwann einbauen. Zusammen mit der Möglichkeit, eigene 
Programmer einzubinden, denn das geht auch nicht.

Ein ganz kruder Hack wäre sowas hier:

Eins der Pogramme aus der winvar-chain (avr-size oder avr-gcc) durch 
eine Progrämmchen ersetzen, das zuerst dein script, und dann das 
eigentliche avr-Programm aufruft.

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver schrieb:

> Der Weg wäre, daß mal bei Atmel vorzutragen, und drauf hoffen, daß die
> das mal irgendwann einbauen. Zusammen mit der Möglichkeit, eigene
> Programmer einzubinden, denn das geht auch nicht.

In Grenzen geht das schon.
Es gibt die Möglichkeit sich eigene 'Tools' zu definieren.
Aber wirklich schön ist das auch nicht. Das Problem ist, dass es dort 
keine Platzhalter gibt, mit denen man eine Commandline mit zb dem Namen 
des Hexfiles anreichern kann.

Ich warte schon seit Jahren, dass sowas mal eingebaut wird. Den Wunsch 
habe ich im Frühjahr bei der Request-Liste in AVR-Freaks wieder 
vorgetragen. Das wäre gar nicht so schwer zu realisieren.
Vielleicht gibt es so etwas auch schon und ich habe es nur noch nicht 
gefunden.

Du Hoffnung stirbt zuletzt.

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Oliver
Den Weg mit einem "Zwischenstück" habe ich mir auch schon überlegt und 
ausprobiert. Allerdings hat er mein Skript, das ich anstatt der make.exe 
oder statt der avr-gcc.exe eingetragen habe nicht ausgeführt. (liegt 
vielleicht daran, das es die Endung *.vbs hatte und keine *.exe war). 
Evt. geht es mit einem kompilierten Programm (*.exe). Auf jeden Fall 
müsste man dann in diesem Programm die übergebenen Parameter beim Aufruf 
des ursprünglichen Prgramms weiterleiten (bzw. evt. noch die 
Ausgabeströmme ans AVR-Studio zurückleiten).
Sofern keine bessere Idee auftaucht, werde ich wohl weitere Versuche in 
diese Richtung unternehmen müssen.

@Karl Heinz
Stimmt, so etwas sollte eigentlich nicht so schwierig sein. Bei anderen 
Systemen (z.B.: Keil & C167) gibt es die Möglichkeit Pre- und 
Postscripten einzutragen die dann vor- bzw. nach der Kompilierung 
ausgeführt werden.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fritz schrieb:

> @Karl Heinz
> Stimmt, so etwas sollte eigentlich nicht so schwierig sein. Bei anderen
> Systemen (z.B.: Keil & C167) gibt es die Möglichkeit Pre- und
> Postscripten einzutragen die dann vor- bzw. nach der Kompilierung
> ausgeführt werden.

Ich meinte eigentlich, dass ich bei der 'Commandline' im 'Tools' Dialog, 
so was schreiben kann

  PBOOT -p 9600 -o $HEXFILE

und der Tools-Prozessor ersetzt $HEXFILE beim 'Aufruf' des Tools mit dem 
Namen des projektspezifischen Hex-Files. Solche Tools kann man in 
Menüpunkte einbauen bzw. sich einen Toolbar-Button dafür erzeugen 
lassen. Prinzipiell also ein Super-Mechanismus. Nur leider ohne die 
Möglichkeit von Platzhaltern für projektspezifische Filenamen ziemlich 
unbrauchbar.

Falls das jemand sucht:
Menüpunkt "Tools" / "Customize"
Im Dialog, dann auf den "Tools"-Reiter.
Dort kann man sich selber Menüpunkte definieren.

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.