www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Studio 5 - uC Programmieren ("Write to Flash")


Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich stehe gerade auf dem Schlauch...
Habe das AVR Studio 5 beta mal getestet, finde aber keinen Butten um den 
Microcontroller zu programmieren. Kann es nur umständlich über das 
Programmier-Menü machen, dort die Hex-Datei & den Programmer (MK2) 
auswählen und den "Program" - Button drücken.

Beim AVR Studio 4.18 gabs ja den Button "Write to flash" und sowas habe 
ich in der 5er Version vergeblich gesucht.

Wie geht es denn vereinfacht? Habe nichts gefunden...

Sorry für die dumme Frage & Danke für die Antworten,

Gruß Ben

Autor: Mat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die gleiche Frage, man muss beim AVR Studio 5 immer auf Extras-Avr 
Programming, dann Apply und dann programmieren.

Das Fenster kann man nicht mal parallel zum programmieren offen lassen, 
sondern muss es immer schließen und neu öffnen.

Gibts da eine schnellere/bessere Variante?

Beim alten AVR Studio musste man ja nur einmal den Programmer öffnen und 
dann konnte man mit Write Flash Memory with Current Settings das 
Programm einfach runterschicken.

Vermisse sowas beim neuen.

Wäre über Tipps dankbar.

grüße Mat

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für solche Sachen solltet ihr beide nicht hier im Forum Hilfe suchen, 
sondern das Atmel mitteilen.

mfg.

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mat schrieb:

> Gibts da eine schnellere/bessere Variante?

Ich habe mir für den Zweck in den Post-Build-Actions einen 
entsprechenden Aufruf des Kommandozeilen-Programmers abgelegt.

Ein Druck auf F7 reicht und das Projekt wird compiliert und auf den Uno 
geschoben.

42m

Autor: bronko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.
Habe das gleiche Problem...

@Michael Krauth
Könntest Du Deine Lösung etwas genauer beschreiben? Hab keine Ahnung was 
Du da sagst ;)

Gruß

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jap bin auch sehr interessiert und kenn noch einige die dir dankbar 
wären!

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es wie folgt gelöst:

In den Project Properties wähle ich den Reiter "Build Events" und trage 
unter "Post-build event command line" folgendes ein:
jtagiceii -e -pf -vf -if$(OutputDirectory)\$(Name).hex -d$(avrdevice)

Damit ruft das AVR-Studio nach jedem Build den Kommandozeilenprogrammer 
für den Jtagice auf.

Den Parameter für das Hex-File baut es sich dabei aus den 
Projekt-Einstellungen zusammen (Pfad zu den Kompilaten und Namen des 
Projekts mit angehängtem .hex), das Ziel-Device nimmt es sich ebenfalls 
aus den Projekteinstellungen.

Daß ich mit (im Studio Macros genannten) Variablen arbeite hat den 
Hintergrund, daß ich so diesen Text einfach in ein anderes Projekt 
kopieren kann und mich nicht um die Anpassung z.B. des Pfades kümmern 
muss.

Wird das Projekt jetzt erstellt (z.B. per F7) wird das soeben erstellte 
Hex-File direkt im Anschluss über dieses Post-build Event auf den 
Microcontroller übertragen.

Das sollte IMHO mit allen Kommandozeilen-Programmern funktionieren.

HTH,
42m

Autor: bronko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super.
Das ist eine gute Hilfe gewesen. Ich habe die Zeile für meinen ARV-ISP 
mk2 zusammengeschrieben:
stk500 -cUSB:000200080357 -d$(avrdevice) -e -pf -vf 
-if$(OutputDirectory)\$(Name).hex
Nun schreibt er nach dem kompilieren: The command "...\test.hex" exited 
with code 9009. Eine google-Suche ergab, dass es sich um eine Problem 
mit der Visual Studio handelt:
http://support.microsoft.com/kb/908268
Man soll den Pfad der Regasm.exe vollständig angeben. Leider kann ich 
nicht herausfinden, wie das gehen soll.
Ist jemand ebenfalls diesem Problem begegnet?

Gruß

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bronko schrieb:

> http://support.microsoft.com/kb/908268
> Man soll den Pfad der Regasm.exe vollständig angeben. Leider kann ich

Das mit regasm.exe solltest Du nicht zu wörtlich nehmen :)

Befindet sich stk500.exe denn im Pfad, so daß das Programm auch gefunden 
und gestartet werden kann?

Gib an der Kommandozeile (Start | Ausführen | "cmd" (ohne "")eintippen 
und Enter drücken) mal stk500 ein und drücke Enter. Was bekommst Du als 
Ergebnis?

42m

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Worauf ich hinaus will ist folgendes: Wenn der Befehl/das Programm aus 
den Build-Actions nicht gefunden wird, gibt es eine Fehlermeldung.

In dem Fall kannst Du zweierlei tun: Zum einen gibst Du den (absoluten) 
Pfad zum Programm an, also z.B. statt "stk500.exe" 
"C:\avr\tools\stk500.exe".

Zum anderen kannst Du das Programm irgendwo ablegen, wo es von überall 
gefunden wird, weil es eben im Suchpfad auftaucht, in dem beim Aufruf 
eines Programmes nach dessen Existenz gefahndet wird. In welchen 
Verzeichnissen Windows sucht, kannst Du in den Umgebungsvariablen 
(verstecken sich bei Win7 unter Systemsteuerung | System | Erweiterte 
Systemeinstellungen | Erweitert). Die fragliche Variable heißt "Path". 
Dort kannst Du auch den Pfad zum stk500.exe angeben. Die Angabe wird 
dabei durch ein Semikolon abgetrennt.

Viel Erfolg,
42m

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche grade das "Write to flash" hin zu bekommen, aber irgendwie 
klappt das einfach nicht.

System:
Windows 7 SP1
AVR Studio 5.2 Beta
Jtagice MKII

Board:
XMega - A1 Xplained

Programmieren funktionert über "AVR Programmieren". Jedoch finde ich 
diesen Weg sehr "lang"...

Ich habe schon bei Post-build events den ausdruck
jtagiceii -e -pf -vf -if$(OutputDirectory)\$(Name).hex -d$(avrdevice)
probiert aber ich bekomme die Fehler meldung:
Error  1  The command "jtagiceii -e -pf -vf -ifC:\Users\Computer\Documents\AVRStudio\XMEGA_A1_XPLAINED_test\main\Debug\main.hex -dATxmega128A1" exited with code 9009.  C:\Program Files (x86)\Atmel\AVR Studio 5.0\Vs\Avr.common.targets  27  5  main
das Pfad wird richtig erkannt jedoch der Programmer wohl nicht.

Viele Danke für jede Hilfe

Mfg Tobias

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

baust Du beim Debug-Build auch das hex-File oder vielleicht nur beim 
Release?

42m

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Es wird auch ein hex-File im Debug modus erstellt. Programmieren über 
den langen weg funktioniert ja. Ich habe irgendwie das Gefühl das der 
Programmierer nicht "gefunden" wird

grüße Tobias

Autor: Sebastian H. (sh______)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten den Befehl einfach mal direkt in der Konsole von Windows 
ausprobieren. Wenn es dann dort funktioniert kannst du die 
entsprechenden Werte durch die Variablen ersetzten. Dann siehst du auch 
ob es am Studio liegt oder an was anderem.

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... wenn ich bei Windows Ausführen benutze meckert er das "jtagiceii" 
nicht gefunden werden kann. Jetzt stellt sich die frage woher Windows 
"jtagiceii" überhaupt kennen sollte.

Grüße Tobias

Autor: Sebastian H. (sh______)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wird das Studio das gleiche Problem haben, dass es die Datei nicht 
findet!

Abhilfe:
Kompletten Pfad zur .exe mit angeben oder den Pfad mit in den 
Umgebungsvariablen (Path) mit eintragen.

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte nicht hauen, aber zur welcher *.exe? Bei AVR studio 4 gab es noch 
eine jtagiceii.exe aber die finde ich bei AVR studio 5 nicht.

Viele Grüße Tobias

Autor: Sebastian H. (sh______)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist vermutlich ebenfalls bei WinAVR dabei. Das wird bei der v5 nicht 
installiert und müsste dann manuell installiert werden.

Evtl. gibt es die Tools auch einzeln? Ich hab bei mir für avrdude aber 
auch einfach WinAVR installiert, auch wenn es so nicht weiter benutzt 
wird :)

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OKey also Winavr ist installiert. Sprechen wir die ganze zeit über die 
avrdude.exe?

grüße tobias

Autor: Michael Krauth (michael_k42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias S. schrieb:

> OKey also Winavr ist installiert. Sprechen wir die ganze zeit über die
> avrdude.exe?

Das Vorgehen ist eigentlich immer gleich, egal welchen Programmer Du 
verwenden willst.

Wichtig ist, daß er (und ggf. benötigte Libs) gefunden werden.

Dazu gibt es grundsätzlich zwei Möglichkeiten, den 
Kommandozeilen-Programmer zur Mitarbeit zu überreden.

1. Du packst ihn in den Suchpfad Deines Systems. Dann wird er gefunden, 
egal von wo aus Du ihn aufrufst.

2. Du gibst bei Programmaufruf den Pfad zum Programmer mit an.

42m

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh.. okey jetzt ist der Groschen auch bei mir gefallen. Mit dem link
C:\WinAVR-20100110\bin\avrdude.exe -e -c jtag2 -p x128a1 -P usb -U flash:w:$(ProjectDir)Debug\main.hex
funktioniert es jetzt bei mir. Leider bleibt die Schaltung nach dem 
Programmieren im Reset und muss manuell nochmal neu gestartet werden, 
aber das ist wohl ein anderes Problem...

Danke für die Hilfe

Autor: soundso (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Reset sollte bei einem Release nicht passieren ...

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider passiert das auch wenn Release active ist. Nach dem Programmieren 
muss ich die Schaltung (AVR XMega-A1 Xplaned) von der Versorgung (USB) 
nehmen und dann wieder verbinden...auch ganz schön nervig...

Viele Grüße Tobias

Autor: MichaelH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

nur mal zur Vollständigkeit... beim AVRISP MkII gehts mit folgendem 
Postevent-Befehl:
"C:\Programme\Atmel\AVR Tools\STK500\Stk500.exe" -cUSB:000200080357 -d$(avrdevice) -e -pf -vf -if"$(OutputDirectory)\$(Name).hex"
der Pfad zur Exe muss ggf. angepasst werden (ggf. für dei Exe erst das 
Studio4 installieren). Die Nummer des Programmers (-cUSB) muss auf jeden 
Fall angepasst werden...

Das Problem waren bei mir die fehlenden Anführungszeichen beim Parameter 
-if, da Pfade ja auch Leerzeichen enthalten können.

Gruß
Michael

Autor: Carsten G. (carry)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Ergänzung.
Bei importierten AVR Studio 4 Projekten ist '$(Name)' (in der 
Projektdatei) nicht definiert. Stattdessen kann man 
'$(MSBuildProjectName)' nehmen.


Carsten

Autor: Alex E. (chekov-e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab mir jetzt bei AVR-Studio 5 auch das post-build-event eingebaut,
sieht so aus
"C:\AVR\Programme\AVR Studio 4\STK500\Stk500.exe" -cUSB:000200058992 -d$(avrdevice) -e -pf -vf -if"$(OutputDirectory)\$(MSBuildProjectName).hex"
und funktioniert auch wunderbar.

Nun möchte ich aber nicht bei jedem Kompilieren gleichzeitig flashen, 
also habe ich mir über "Tools\External Tools..." einen Button gebaut 
mit:

Command:
C:\AVR\Programme\AVR Studio 4\STK500\Stk500.exe
Arguments:
-cUSB:000200058992 -d$(avrdevice) -e -pf -vf -if"$(OutputDirectory)\$(MSBuildProjectName).hex"

Beim Ausführen meckert er aber:
STK500 command line programmer, v 2.3 Atmel Corp (C) 2004-2009.

Connected to AVRISP mkII on port USB:000200058992
Device not specified

Wahrscheinlich sagt ihm das "-d$(avrdevice)" an dieser Stelle nichts.
Wie teile ich ihm den im aktuellen Projekt verwendeten Controller mit?

MfG

Autor: Sebastian ... (zahlenfreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem wurde mitlerweile auch von Atmel erkannt und in der Finalen 
Version von Studio 5 angeganen:

Klickt man unter "Debug" auf "Start without debugging" wird das aktuelle 
Hex-file geflasht. Wie aus Studio 4 gewohnt - ohne große Einstellungen.
Dabei scheint automatisch das richtige hex ausgewählt zu werden. Die 
Einstellungen (welcher Programmer, ISP-Geschwindigkeit,...) scheinen in 
den Project Properties unter "Debugging" festgelegt zu werden.
Allerdings hab ich es noch nicht geschafft, auf die Weise mit dem Dragon 
über ISP zu flashen. Da besteht das Studio auf JTAG. Mit meinem ISP MKII 
läufts aber Problemlos.
Auch das EEPROM wird auf die weise nicht geschrieben. Der Haken bei 
"Preserve EEPROM" scheint leider auch keine Auswirkungen zu haben.

Gefunden hab ich das ganze bei den avrfreaks:
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

Sebastian

Autor: Alex E. (chekov-e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich bei mir auf "start without debugging" gehe wird nur "gebuilded" 
ohne zu Flashen. Vielleicht müsst ich da von "Debug" auf "Release" 
wechseln.

Ebenfalls im avrfreaks Forum hab ich das hier gefunden:
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

-> Im pre-build wird eine batch-Datei erstellt,
echo  "C:\AVR\Programme\AVR Studio 4\STK500\Stk500.exe" -cUSB:000200058992 -d$(avrdevice) -e -pf -vf -if"$(OutputDirectory)\$(MSBuildProjectName).hex" > $(MSBuildProjectDirectory)\controller_flashen.bat 
die ich dann bei Bedarf über "External Tools" aufrufe.

Funktioniert super

MfG
Alex

Autor: floggy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Anregungen. Hatte hierbei auch Probleme. Konnte es 
folgendermaßen Lösen:

AVRStudio Version 5.0.1163
AVRISP mkII

Unter den Projekteinstellungen auf Debugging klicken.
(Wählt man das nicht in den Projekteinstellungen aus, kommt später immer 
ein Dialog, wo die vorhandenen Debuggingtools ausgelistet werden, nur 
dass man da nicht den AVRISP mkII auswählen kann.)

Hier als Debugger den AVRISP mkII auswählen, des weiteren lassen sich 
dann noch die ISP Geschwindigkeit auswählen und der EEProm-Schutz.
Da auch eine Einstellmöglichkeit für das Interface besteht, lässt sich 
vielleicht auch der Dragon auf ISP umstellen.
Dann kann man einfach über F5 bzw. Start debugging das Projekt 
kompilieren und den Controller programmieren.

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leuts, ich sitz hier grad' dran und hab das gleiche Prob.
Ich würde gerne die Lösung mit der build-project Eintragung versuchen.


> "C:\AVR\Programme\AVR Studio 4\STK500\Stk500.exe" -cUSB:000200058992 
>-d$(avrdevice) -e -pf -vf >-if"$(OutputDirectory)\$(MSBuildProjectName).hex" > 
>$(MSBuildProjectDirectory)\controller_flashen.bat


-cUSB:000200058992  <- Ist das eine "Portbezeichnung"?
Wo/wie finde ich die? Die Device-ID ist vermutlich nicht, die sieht bei 
mir ganz anders aus. Hab
XP pro
AVRStudio Version 5.0.1163
AVRISP mkII

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
floggy schrieb:
> AVRStudio Version 5.0.1163
> AVRISP mkII
>
> Unter den Projekteinstellungen auf Debugging klicken.
> (Wählt man das nicht in den Projekteinstellungen aus, kommt später immer
> ein Dialog, wo die vorhandenen Debuggingtools ausgelistet werden, nur
> dass man da nicht den AVRISP mkII auswählen kann.)
>
> Hier als Debugger den AVRISP mkII auswählen, des weiteren lassen sich
> dann noch die ISP Geschwindigkeit auswählen und der EEProm-Schutz.
> Da auch eine Einstellmöglichkeit für das Interface besteht, lässt sich
> vielleicht auch der Dragon auf ISP umstellen.
> Dann kann man einfach über F5 bzw. Start debugging das Projekt
> kompilieren und den Controller programmieren.

Wenn ich das mache, will der AVR-ISP mkII die DebugWire-Funktion 
aktivieren. Wenn ich diese Aktion bestätige, ist mein Controller später 
unbrauchbar. Es hängt ein Mega168 als Target dran...

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.