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


von Fritz (Gast)


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 ?

von ... (Gast)


Lesenswert?

via "External Makefile"

von Fritz (Gast)


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.

von Oliver (Gast)


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

von Karl H. (kbuchegg)


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.

von Fritz (Gast)


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.

von Karl H. (kbuchegg)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.