Forum: Mikrocontroller und Digitale Elektronik AVR Studio 5 Automatisch Compilieren und Sender


von Benjamin S. (bennj)


Lesenswert?

Moin

Bin auf das Studio 5 umgestiegen und läuft auch alles ganz gut, aber ich 
finde keine Auto funktion wie im Studio 4.

Ziel ist es die Verbindung zum Controller immer zu erhalten und 
änderungen im Programm mit einem klick zu compilieren und zu übertragen.

Jetzt geht es soweit ich sehe nur mit 
"AVR-Programming->Apply->Memories->Program

Danke schonmal

Benjamin

von Alex (Gast)


Lesenswert?

Hallo Benjamin,
leider gibt es diese Funktion im AS5 nicht, über die Problematik wird 
seit dem erscheinen der Beta1 eifrig bei avr freaks diskutiert. Die 
einfachste Möglichkeit, die ich bisher gefunden habe, ist es "Available 
Tools" (View -> Available AVR Tools) einzublenden und dieses Fenster 
dauerhaft in seinem Arbeitsbereich zu positionieren. Dort siehst du dann 
einen AVR Simulator und deinen Programmer. Mit rechtsklick + AVR 
Programming kommst du dann in das selbe Menü und musst die Schritte 
trotzdem ausführen.

Grüße
Alex

von Benjamin S. (bennj)


Lesenswert?

Hi Alex,

danke für den Tip. Hilft schon ein wenig weiter. Na dann hoffen wir mal 
auf die nächste Version.

Schöne Grüße

Benjamin

von Sebastian H. (sh______)


Lesenswert?

Es gibt ne Möglichkeit mit Hilfe externer Kommandozeilen-Tools.
Beitrag "AVR Studio 5 - uC Programmieren ("Write to Flash")"

Ich benutze das z.B. mit avrdude, dort werden mehr µC unterstützt als 
bei der STK500.exe

Funktioniert so auch über "External Tools", so hat man direkt dort nen 
Menüeintrag wo man darüber direkt flashen kann! Lässt sich dann auch in 
die Toolbar legen.

von Benjamin S. (bennj)


Lesenswert?

Moin

Danke, sieht aus wie das was ich suche, leider bekomme ich es für den 
AVRISPMK2 nicht zum laufen. Endet immer mit CODEFEHLER 123.

Kannst du mir vielleicht mal deine Version zeigen

von Michael K. (Gast)


Lesenswert?

Benjamin S. schrieb:

> Danke, sieht aus wie das was ich suche, leider bekomme ich es für den
> AVRISPMK2 nicht zum laufen. Endet immer mit CODEFEHLER 123.

Verwendest Du avrdude? Ich meine mich zu erinnern, daß es da ein Problem 
gibt¹, wenn man avrdude einen Pfad zum .hex-File mit angibt. Versuch 
mal, vor dem Aufruf von avrdude in das Verzeichnis mit der .hex zu 
wechseln und dann avrdude von dort aus und ohne den kompletten Pfad zur 
.hex aufzurufen.

Bei mir sehen die Build Actions im Moment so aus:
1
cd $(OutputDirectory)
2
3
rem *** Programmierung mit avrdude und JTAGICE mkII
4
rem *** avrdude -e -c jtag2isp -p$(avrdevice) -P usb -U flash:w:$(Name).hex
5
6
rem *** Programmierung mit avrdude und AVRISP mkII
7
avrdude -e -c avrispmkII -p$(avrdevice) -P usb -U flash:w:$(Name).hex

Per cd wechselt er in das fragliche Verzeichnis, avrdude findet er auch 
ohne Angabe des absoluten Pfades, weil es sich bei mir im Suchpfad 
befindet.

Durch die Kommentare per 'rem' kann ich relativ leicht zwischen 
verschiedenen Programmiergeräten wechseln.

¹) Kann sein, daß ich das auch verwechsle. Ich habe in letzter Zeit 
verschiedene Kommandozeilen-Programmer ausprobiert :)
EDIT: Nein, eigentlich bin mir mir jetzt wieder ziemlich sicher, daß es 
avrdude war, welches das Problem hatte. Liegt meiner Meinung nach am 
Doppelpunkt nach dem Laufwerksbuchstaben, der es aus dem Tritt bringt.

Viel Erfolg,
42m

von Sebastian H. (sh______)


Lesenswert?

Hallo,

ich hab bei mir den Pfad zum Hexfile mit angegeben bei avrdude. 
Funktioniert mit der aktuellen Version die bei WinAVR dabei ist 
problemlos. Natürlich sollten die Pfade in " stehen.

Leider lassen sich bei den Externen Tools nur der Pfad zum Projekt als 
Variable verwenden, somit müsste man sich für jeden µC nen extra "Tool" 
anlegen bzw. immer ändern. Aber auf jeden Fall schon mal besser wie 
immer übers Menü :)

von Michael K. (Gast)


Lesenswert?

Sebastian H. schrieb:

> Funktioniert mit der aktuellen Version die bei WinAVR dabei ist
> problemlos. Natürlich sollten die Pfade in " stehen.

Ich habe es mit dem Pfad versucht und bin, wieso auch immer auch mit 
Anführungszeichen, gescheitert. Daher hab ich es per Verzeichniswechsel 
gelöst :)

42m

von Benjamin S. (bennj)


Lesenswert?

moin und Danke für die Antworten.

Leider klappts noch nicht so ganz.

Vorraussetzung bis jetzt waren AVRStudio5 und AVRISPMKII.

Habe jetzt AVRDude und WINAVR installiert und ins PATH Verzeichnis 
gelegt.

Mit folgenden Build Actions:

cd $C:\Users\bs\Documents\AVRStudio\AVRGCC2\AVRGCC2\Debug\
avrdude -e -c avrispmkII -p$m168 -P usb -U flash:w:$AVRGCC2.hex

kommt das heraus:

Error  1  The command "cd 
$C:\Users\bs\Documents\AVRStudio\AVRGCC2\AVRGCC2\Debug\
avrdude -e -c avrispmkII -p$m168 -P usb -U flash:w:$AVRGCC2.hex" exited 
with code 1.  C:\Program Files\Atmel\AVR Studio 
5.0\Vs\Avr.common.targets  27  5  AVRGCC2

von Knut (Gast)


Lesenswert?

Wenn ich mal doof frage, wo gibt es im AVR Studio 4 einen Knopf zum 
kompilieren und anschließenden Programmieren?

Knut

von Sebastian H. (sh______)


Lesenswert?

Wie gesagt, bei mir klappt es mit den folgenden Parametern problemlos:
1
Command: D:\WinAVR\bin\avrdude.exe
2
Arguments: -e -P usb -c avrispmkII -p ATmega88PA -e -U flash:w:"$(ProjectDir)Debug\xxx.hex":a

Wäre allerdings super, wenn dort bei externen Tools ebenfalls die 
gleichen Variablen möglich wären wie bei den BuildActions :(

Gruß
Sebastian

von Michael K. (Gast)


Lesenswert?

Benjamin S. schrieb:

> cd $C:\Users\bs\Documents\AVRStudio\AVRGCC2\AVRGCC2\Debug\

Der Pfad ist in Deinem Fall kein Macro :) Das $ ist da fehl am Platz.

Also entweder $(OutputDirectory) verwenden oder direkt den Pfad, dann 
aber ohne $, ( oder ) :D

42m

von Benjamin S. (bennj)


Lesenswert?

Klasse, läuft !! Danke

Es fehlte noch der libusb Treiber

libusb-win32-devel-filter-1.2.4.0.exe

Endgültige Version bei mir:

cd C:\Users\bs\Documents\AVRStudio\AVRGCC2\AVRGCC2\Debug\
avrdude -e -P usb -c avrispmkII -p ATmega168 -e -U 
flash:w:"AVRGCC2.hex":a



@Knut  Es gab den Button "Auto" in der Toolbar und man kann die 
funktionen die ausgeführt werden sollen im Programmer Menü auswählen. 
man konnte auch das Programmer Menü geöffnet und verbunden halten 
während man Programmiert hat.

von Joachim P. (joachim_p)


Lesenswert?

Sebastian H. schrieb:
> Wie gesagt, bei mir klappt es mit den folgenden Parametern problemlos:
> Command: D:\WinAVR\bin\avrdude.exe
> Arguments: -e -P usb -c avrispmkII -p ATmega88PA -e
>            -U flash:w:"$(ProjectDir)Debug\xxx.hex":a

Um nicht jedes Mal den Namen der zu übertragenden .hex - Datei eintragen 
zu müssen, kann das Makro $(ItemFileName) genutzt werden:
1
... -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":a

Leider habe ich keine Möglichkeit gefunden, auch noch das 
'Debug'-Verzeichnis über Makros zu kodieren.

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.