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 ?
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.
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
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.
@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.
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.