Forum: Mikrocontroller und Digitale Elektronik USBprog - JTAG ICE mkII Firmware


von Peter (Gast)


Lesenswert?

Hallo,

gibt es noch irgendwelche Leute, die sich mit der Weiterentwicklung 
dieser Firmware für den USBprog beschäftigen?

Im Berlios Repository tut sich ja schon lange nichts mehr.

Gruß
Peter

von armino (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

jup mich hatte das auch etwas geärgert.. das erst angekündigt wurde das 
die Firmware in Entwicklung ist und dann kam Sie irgendwie doch nicht...

Also die letzten Tage mal selbst rangehockt... Quellen aus dem SVN 
gezogen (bevor Berlios vielleicht dicht gemacht wird?) und übersetzt...

Soweit so gut... ein paar Änderungen haben sich wohl seit dem letzten 
Einchecken ergeben sodass ein paar Befehle in der Firmware nicht 
implementiert waren. Kurze Zeit später konnte man schon Programmieren... 
das ganze war dann doch etwas langsam also hab ich mich etwas tiefer in 
den Code gewühlt und etwas aufgeräumt...

Anbei also mal mein aktueller Stand, was funktioniert:
 Programming:
  - Fuses lesen und setzen
  - Lockbit lesen (schreiben nicht getestet)
  - Programm laden, verify (EEPROM nicht getestet)

 Debugging:
  - Programm laden und stopp at main
  - brechpunkte setzen
  - run to cursor

Was noch nicht funktioniert:
 - FirmwareVersion falsch (jedes mal Update-Meldung wegklicken)
 - ordentliches Single Step (keine Ahnung wie Atmel das macht) bisher 
wird jeweils eine ASM Instruction gesteppt...
 - Step Over, Step Out fehlen noch vollständig

Bisher alles nur mit einem Atmega32 getestet (also als Target)...

Gerne würde ich die Sourcen auch wieder zurückspielen aber ich hab da 
wohl keinen Entwickler Account bei Berlios... mal schauen... vielleicht 
finden sich ja noch 1-2 Entwickler die Spaß dran haben...
Ich hab leider nur rudimentäre Möglichkeiten (also USB-Logger, kein 
digitales Oszi oder Logic Analyser) und keinen original mkII (warum 
auch) deshalb kann ich nur schwer erahnen was da auf unterster JTAG 
Ebene wirklich passieren sollte...

Grüße,
armino

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

armino schrieb:
> Was noch nicht funktioniert:
>  - FirmwareVersion falsch (jedes mal Update-Meldung wegklicken)

Da kannst du ja schon fast einen DIP-Schalter dranbauen, damit für
jede AVR-Studio-Version dann die passende Firmwareversion eingestellt
werden kann. ;-)

>  - ordentliches Single Step (keine Ahnung wie Atmel das macht) bisher
> wird jeweils eine ASM Instruction gesteppt...
>  - Step Over, Step Out fehlen noch vollständig

Das ist bei AVR Studio 4 ziemlich verwürgt gemacht.  Die haben einen
Teil der Aufgaben, die eigentlich ein Debugger machen sollte, ins
JTAG ICE ausgelagert.  Dafür gibt's dort dann diesen relativ großen
SRAM drauf, der wird als `tag memory' benutzt.  Das funktioniert
irgendwie so, dass für jede Wortadresse, die in der Hochsprache den
Beginn einer neuen Quellcodezeile markiert wird, ein Bit in diesem
Speicher gesetzt wird (memory type "EVENT", also 0x60).  Wenn also
auf Byteadresse 0x28 und 0x42 die einzigen beiden Zeilen deines
Programmes wären, dann würde wohl (so ich das verstanden habe) der
event memory mit den Werten 0x00, 0x00, 0x10, 0x00, 0x02, 0x00 …
gefüllt.  (Ein ROM-Befehls-Wort wird jeweils in eine Bitadresse
übersetzt.)  Wenn dann ein "high-level language single-step"
gemacht wird am PC = 0, dann setzt das ICE einen Breakpoint auf
Wortadresse 0x14 (Byteadresse 0x28), die es sich aus dem event
memory zurückgerechnet hat.  Eigens dafür wird eins der vier
Breakpointregister komplett reserviert.

(Disclaimer: das ist ungefähr das Szenario, das mir vor vielen
Jahren ein Atmel-Mitarbeiter mal erklärt hat, als ich mich im
Rahmen von AVaRICE dafür interessiert habe.  Da AVaRICE das alles
nicht benutzt, weiß ich natürlich nicht, ob ich das komplett
richtig verstanden habe.)

Im AVR Studio 5 ist ein völlig anderer Debugger drin, da sollte das
deutlich entspannter sein, und der event memory wird meines Wissens
dort gar nicht mehr benutzt.  Eventuell willst du ja lieber an
dieser Stelle weitermachen.

> Gerne würde ich die Sourcen auch wieder zurückspielen aber ich hab da
> wohl keinen Entwickler Account bei Berlios...

Andreas bietet ja auch hier auf mikrocontroller.net einen SVN-Server
an, eventuell nimmst du das ja als Übergang, bis sich was besseres
findet.  BerliOS will ja zum Jahresende dich machen.

von armino (Gast)


Lesenswert?

hmmm ja das mit dem tag-ram hab ich mir schon fast gedacht nachdem der 
am anfang immer den Event-Memory runterlädt...

nunjoah ich hab also "mal eben" (was ja schon ne weile dauert) AVR 
Studio 5 installiert... hmm so wirklich gefallen tut es mir nicht.. und 
anscheinend hat sich auch einiges (wie du ja beschrieben hast) bzgl. dem 
Ansprechen von der DebugHardware geändert... somit funktioniert die 
Firmware dort erstmal nicht...

Wobei ich auch einen komischen Effekt hab. Nämlich selbst im AVR 
Simulator bei einem Atmega32 gibt er mir den Fehler das er keine Sourcen 
beim debuggen findet... (scheint mir noch nicht so ganz ausgereift zu 
sein das ganze)
An der USB Kommunikation hab ich gesehen das er auch garnichts 
runterlädt nur einen Chip-Erase den macht er (somit steht nur 0xFF 
drin)...

Längerfristig würde ich sowieso wahrscheinlich auf AVaRICE umsteigen da 
ich dann auch Linux nutzen würde... funktioniert das denn mit so einem 
"Clone"-mkII?? Nicht das ich jetzt die Firmware für das AVRStudio 5 
hinschraub und dann mit AVaRICE auf die Nase fall...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

armino schrieb:
> Längerfristig würde ich sowieso wahrscheinlich auf AVaRICE umsteigen da
> ich dann auch Linux nutzen würde... funktioniert das denn mit so einem
> "Clone"-mkII?

Da habe ich keine Ahnung.  Aber wenn du die Firmware selbst in der
Hand hast, können wir uns ja allemal absprechen, wie sich AVaRICE
mit ebendieser unterhält.  Es ist dann auch nicht undenkbar, dass
AVaRICE mit dem USBprog ein leicht abgewandeltes Protokoll spricht,
sofern es in der Lage ist, USBprog halt auch von einem Atmel JTAGICE
bzw. AVR Dragon zu unterscheiden.

von Michael S. (michi-s2)


Lesenswert?

Toll das sich mal jemand der Sache annimmt, USBProg währe ja an sich ne 
tolle Sache, aber irgendwie wird da lieber ne neue Hardware entwickelt, 
als sich mal um die Software zu kümmern. Es scheint ja so als wenns da 
drunter und drüber geht.
Die "aktuelle" Firmware (von 2008) ist nicht per GUI erreichbar. Die GUI 
läd die http://www.ixbat.de/usbprog/versions.xml runter. Die wiederum 
zeigt auf http://www.ixbat.de/usbprog//jtagmk2.bin und bekommt einen 
Error 404. Der Berlios FTP von USBProg ist auch leer.

Wenn man der Software glaubt und auf 
http://www.embedded-projects.net/usbprog geht, kann man dort zwar 
USBProgs kaufen, aber es ist doch etwas geklicke bis man auf 
http://www.usbprog.org landet, da gibts zwar mehr Firmwares aber die 
dortige jtagice2.bin funktioniert nicht mit AVRStudio (4 und 5) und hat 
auch keine Doku, also schwierig die Pinbelegung zu finden.

Wie dem auch sei, ich habe mich um so mehr gefreut, zu sehen, dass es 
noch jemanden gibt der an der Software arbeitet. Als ich allerdings 
deine Software ausprobiert hab, hats nicht funktioniert, lsusb hat 
nichts gefunden. Scheint als würde das USB-Gerät nicht erkannt (auch 
nicht unter Windows).
Wenn ich die AVRISP MKii Firmware verwende geht alles.

Hab übrigens ne eigene Version des USBProg basierend auf der Version 3

Gruß,
Michi

von holger (Gast)


Lesenswert?

>USBProg währe ja an sich ne
>tolle Sache, aber irgendwie wird da lieber ne neue Hardware entwickelt,
>als sich mal um die Software zu kümmern. Es scheint ja so als wenns da
>drunter und drüber geht.

Wieso drunter und drüber? Es herrscht Stillstand seit?
Das Forum ist so gut wie tot.

von Michael S. (michi-s2)


Lesenswert?

holger schrieb:
> Wieso drunter und drüber? Es herrscht Stillstand seit?
> Das Forum ist so gut wie tot.

Die Webseiten scheinen zumindest öfter mal zu wechseln. Ich meine das 
war früher mal strukturierter.

Eine Website mit SVN und n Script das die versions.xml anpasst, alles 
ein Pfad, usw... ach ja man könnte viel machen...

von hellospencer (Gast)


Lesenswert?

Hallo,

Ich suche den Source Code für eine "JTAG ICE mkII Firmware". Z.B. der 
Code, mit dem die "avrispmk2.bin" Firmware für den usbprog erstellt 
wurde. Kann aber auch aus einem anderen Projekt sein.

Ich möchte den Code dann auf einen LPC portieren. Mein System schuat ca. 
so aus:

+-------+                                      +-------------+
| AVR   |                     +------+         | PC          |
| Daisy +---TDI,TDO,TCK,TMS---+ LPC  +---USB---+ serial port |
| Chain |                     |      |         | avarice     |
.       .                     | JTAG |         | avr-gdb     |
. node0 .                     | ICE  |         | eclipse     |
.       .                     | mkII |         +-------------+
. node1 .                     +------+
.       .
+-------+

Leider habe ich noch nirgends eine passende Firmware gefunden. Kennt da 
jemand einen passenden Source Code? Danke!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hellospencer schrieb:
> Ich suche den Source Code für eine "JTAG ICE mkII Firmware". Z.B. der
> Code, mit dem die "avrispmk2.bin" Firmware für den usbprog erstellt
> wurde.

Den gibt's meiner Meinung nach nur direkt im SVN:

http://svn.berlios.de/viewvc/usbprog/trunk/avrispmk2klon/

von Franz (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Den gibt's meiner Meinung nach nur direkt im SVN:
>
> http://svn.berlios.de/viewvc/usbprog/trunk/avrispmk2klon/

Das ist zwar ein ziemlich alter Thread, aber er ist nützlich. Deshalb 
wollte ich mal fragen, warum ein checkout von dieser URL bei mir immer 
mit einem "redirect cycle"-Error quittiert wird. Bei Googlecode hat es 
dann geklappt.

https://code.google.com/p/usbprog/source/checkout

Wieso kommt dieser Fehler zustande?

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.