Hallo, ich habe mit dem jtag-Emulator (ATmega16) und gdb/avarice folgendes Problem: avarice connected mit dem jtag-Emulator und wartet auf Port 3333 (4242 habe ich auch schon probiert). Sobald ich in insight auf "connect" gehe, bricht avarice die Verbindung ab und es wird "E01" gemeldet. Ich benutze WIN98. Zuerst starte ich: avarice -d -f test.bin -j com1 :3333 Dann starte ich insight, lade test.elf, stelle Remote/TCP, localhost, 3333 ein. Dann gehe ich auf "connect to target". Danach werkelt avarice los und bricht kurz darauf wieder ab, folgende Zeilen werden dabei ausgegeben: Output von avarice: ------------------- Connection opened by host 127.0.0.1, port 3412. GDB: <Hc-1> ->GDB: GDB: <qC> ->GDB: GDB: <qOffsets> ->GDB: GDB: <?> ->GDB: S05 GDB: <Hg0> ->GDB: GDB: <g> GDB: (Registers)Read 32 bytes from 0x800000 jtagRead command[R, 1]: 52 20 1F 00 00 00 20 20 response: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 0 7 07 07 07 07 07 07 07 07 00 46 ->GDB: E01 gdb exited. command[G, 1]: 47 20 20 response: Die Einstellungen habe ich von http://www.avrfreaks.net/phorum/read.php?f=2&i=11328&t=11328 abgeschaut, aber es funktioniert nicht. Was mache ich falsch? Danke im Vorraus, Stefan
Mittlerweile habe ich 2 Scripte gefunden: gdb-avarcice-script in \share\avarice und ice-gdb in \bin mit denen man den Start von insight und avarice wohl automatisieren kann und die noch eine Menge Zeug einstellen. Mein Problem ist nur: wie bekomme ich diese Scripte zum laufen?? Bis jetzt habe ich insight und avarice immer direkt gestartet. Wo finde ich eine Beschreibung der Syntax dieser Scripte, um das Ganze mal nachvollziehen zu können? Danke, Stefan
Das dürften Shell-Scripts sein. Allerdings ist es sicherlich nicht notwendig, daß Du deren Syntax komplett verstehst, bevor Du sie benutzen kannst. Allerdings mußt Du wohl entweder Dein Windows davon überzeugen, zu deren Ausführung eine Unix-Shell (`bash.exe') zu benutzen. Unter Unix wird dies mit der ersten Zeile (#!/bin/sh) gemacht. Ggf. einfach starten mit bash <name des scripts>
Vielen Dank, Jörg. Ich habe mir jetzt mal Cygwin installiert und es mit dessen bash.exe probiert. Die Scripte scheinen damit teilweise zu laufen, an einer Stelle will er wohl noch einen Perl-Interpreter haben.. Aber das kann ich mir erst wieder genauer anschauen, wenn die Familie wieder komplett gesund ist :-( Klar kann ich die Scripte auch benutzen, ohne dass ich sie verstehe. Aber ein bischen Hintergrundwissen kann nicht schaden, vor Allem, wenns mal nicht klappt, wie bei mir gerade mit dem avarice. Stefan
Hmm, eine bash sollte bei WinAVR eigentlich sowieso schon dabei sein, »make« benötigt sie zu seiner Kommandoausführung. Aber Du hast Recht, einer der Scripts ist auch ein Perl-Script. Klar ist es immer gut, wenn man sich mit den Details ein wenig auskennt, aber sowohl Unix-Shell als auch erst recht Perl sind zwei ziemlich komplexe Sprachen, die man (typischerweise) nicht durch Lesen eines Manuals an einem Abend erlernt. Perl ist ohnehin syntaktisch ein ziemlicher Mischmasch aus Unix-Shell, C, awk, paar Pascal-Einstreuungen, und allem, was Larry Wall sonst noch so in den Sinn kam. ;-) Aber die Sprache ist mächtig bequem für alle möglichen Aufgaben vor allem im Bereich der Systemadministration und hat sich dadurch beliebt gemacht.
Tja, scheint wohl so zu sein, dass avarice unter WIN98 nicht läuft. Auf meinem XP-System habe ich bisher 2-mal einen Connect zwischen gdb und avarice gehabt (von unzähligen Versuchen), ich denke, hier ist das Problem, dass ich keinen "echten" COM-Port habe, sondern nur ein USB-Replacemet mit FTDI-Chip. Zur WIN98-Problematik eine Mail, die ich aus Italien bekommen habe: Hi Stefan, I have done some tests and I have discover that Insight and avarice work ok on NT4, XP (probably also Win2K but I have not tested). I also checked that Insight and simulavr work ok on win98. So the problem is avarice. Now I have completed the 2 projects I was working on (atmega8 and atmega128). To complete the projects I used a double boot PC with Win98 and Xp installed on. I also have mailed the problems and the tests to avr-gcc-list (see the complete archive at http://www.avr1.org/pipermail/avr-gcc-list ). Marc Wetzel tested Insight and avarice on XP PC: he replied that he will give when he will have some free time (probably he needs to set-up a win98 system). I would like to check the problem, but I do not have Cygwin on my PC and my internet connection is too slow to download all the package. So probably we will have the solution between some time. Patrizio. Viele Grüße, Stefan
Ich verwende avarice + Insight unter W2k, das Verbinden zum JTagIce (über normalen COM Port) bzw. zum avarice macht mir keine Probleme. Allerdings ist das Debugen schnarch langsam, ist hart an der Grenze zur Unbrauchbarkeit. Das "Durchsteppen" ist (besonders wenn man noch ein paar Variablen im Watch hat) echt eine Qual. BTW: Ich hab mir mal eben die avarice Sourcen angesehen und so weit ich das sagen kann redet avarice bei 115200 Baud mit der JTAG Box und die Kommunikation zwischen JTAG Box und dem AVR wird auf 1 MHz eingestellt. Wenn ich das AS auf die selben Geschwindigkeiten einstelle geht das Debugen um ein Vielfaches schneller! Hat wer ne Idee was da los sein könnte? @Jörg: Verwendest du avarice unter Linux? Wie sieht es da mit der Geschwindigkeit aus? Bertolt
Ich verwende AVaRICE unter FreeBSD, also auch einem Unix. Habe allerdings noch nicht zu viele große Dinge damit erledigt, insofern kann ich Dir das nicht genau sagen. Problematisch ist meiner Erinnerung nach, daß teilweise die Flash-Pages neu programmiert werden müssen, um breakpoints zu implementieren (sollte allerdings bei single-step nicht sein). Außerdem kann ich Dir nicht sagen, ob nicht die Kommunikation zwischen GDB und Insight zum Flaschenhals werden kann; Du sagt ja selbst, daß es bei vielen `watches' langsamer wird. Ich benutze den GDB ausschließlich direkt (im Emacs, so daß ich eine ,,IDE'' darum habe), das ist recht flink. Ein Konzept wie `watches' benutzt man dort aber eher selten (im GDB `display' genannt), sondern man läßt sich die nötigen Variablenwerte meist dann ausgeben, wenn man sie braucht (mittels `print', der GDB kann beliebig komplexe C-Ausdrücke live berechnen).
@Jörg: Oha, ein BSD User der Linux als Unix bezeichnet!? Zur Strafe bekommst du drei Schläge mit dem Dreizack! :-)))) Also es ist auch ohne Watches sehr langsam. Es dauert immer mindestens 10 - 15s, auch wenns letztendlich nur eine ASM Instruction ist :-( Was die Sache noch verschärft ist dass Insight alle Eingaben während es beschäftigt ist verwirft -> wenn ich zwei Zeilen weiter will, kann ich nicht einfach zweimal 'n' (=next) tippen. Breakpoint setzen ist auch manchmal etwas nervig weil Insight einen nicht warnt dass man mehr als die erlaubten 3 (oder 4?) Breakpoints gesetzt hat. Zur Kommunikation zwischen GDB und Insight: GDB ist in dem Fall der avarice, oder? D.h. es ist eine lokale TCP Verbindung. Die sollte doch (sebst unter Windoof + cygwin/mingw) nicht derart bremsen!? Bertolt
> Oha, ein BSD User der Linux als Unix bezeichnet!? Ich habe ja nicht »UNIX[tm]« geschrieben. Unix (in dieser Schreibweise) wird gemeinhin als Synonym für »Unix-artige Betriebssyteme« genutzt (und da sehe ich Linux auf alle Fälle). *BSD ist ja auch kein UNIX[tm], obwohl es von der Abstammung halt in einem früheren Leben auch mal dessen Code miterlebt hat. ;-) Nee, aber 10...15 Sekunden für einen Einzelschritt habe ich nicht so erlebt. Kann sein, daß es 1 Sekunde dauert. Ich muß das mal wieder testen. > Zur Kommunikation zwischen GDB und Insight: > GDB ist in dem Fall der avarice, oder? Nein. Insight sitzt oberhalb GDB, wahrscheinlich reden die beiden über eine Pipe miteinaner. GDB redet mit AVaRICE dann via TCP. Ich denke, Du bist mit Deinen Fragen auf der avr-gcc Liste besser aufgehoben, Ted Roth ist sicher die Person #1, die hier zu den möglichen Verzögerungen, Kommunikationsproblemen usw. etwas sagen kann, auch wenn er selbst (natürlich :) kein Windows benutzt. Auf der Liste hast Du dann auch Eric Weddington wieder mit drauf. Ich weiß gar nicht, ob der AVaRICE auch selbst benutzt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.