Hallo zusammen! Mittlerweile hänge ich schon Tage an diesem Problem und es beginnt doch arg an meinen Nerven zu zehren. Ich habe hier ein AT91SAM7SE-EK Board der Firma Atmel, welches mit einem SAM-ICE JTAG Adapter der Firma Segger angebunden ist. Die ersten Tests habe ich mit einer eingeschränkten Verion der IAR Embedded Workbench gemacht. Das lief einwandfrei, soll jedoch nicht verwendet werden. Zu der Yagarto Toolchain habe ich das Dokument "Using Open Source Tools for AT91SAM7S Cross Development revision C" durchgearbeitet. Mein Problem ist nun folgendes: Eclipse stürzt mir beim Versuch zu debuggen ab. Ich habe, da SAM7SE und SAM7S in weiten Zügen identisch sind, die Befehle aus dem eben erwähnten Dokument übernommen und nach Anleitung eingefügt: monitor reset monitor speed 30 monitor speed auto monitor long 0xffffff60 0x00320100 monitor long 0xfffffd44 0xa0008000 monitor long 0xfffffc20 0xa0000601 monitor sleep 100 monitor long 0xfffffc2c 0x00480a0e monitor sleep 200 monitor long 0xfffffc30 0x7 monitor sleep 100 monitor long 0xfffffd08 0xa5000401 set remote memory-write-packet-size 1024 set remote memory-write-packet-size fixed set remote memory-read-packet-size 1024 set remote memory-read-packet-size fixed symbol-file main.out continue Wobei ich die Kommandos einzeln über arm-elf-gdb eingegeben habe. Bei dem Kommando "set remote memory-read/write-packet-size fixed" fragt er nach, ob er das wirklich so setzen soll, deswegen habe ich die Zeilen mal testweise rausgeworfen, was mich aber auch nicht weitergebracht hat. Die main.out existiert in meinem Projekt nicht. Allenfalls vielleicht eine main.o bzw PROJEKT.elf, welche übertragen wird und auch die Symbolinformationen beinhaltet (habe ich extra überprüft). Vorher, als ich verkehrte Kommandos drin hatte (waren eigentlich für OpenOCD) konnte er das Programm zwar abfahren im Debug Modus, jedoch nicht Schritt für Schritt durcharbeiten. Mittlerweile stürzt Eclipse einfach nur noch kommentarlos ab. Für jeden Tip bin ich dankbar, weil mir echt langsam die Zeit davon läuft. Es handelt sich um eine Diplomarbeit und ich habe nur noch 4 Monate... Grüße Elorian
Fehler gefunden..waren (wie immer) gleich mehrere auf einmal....bestehend aus dummheit (an der falschen Stelle gelesen) und einem etwas unglücklich gebauten Beispielprogramm der Firma Atmel...mit einem andere gehts jetzt! Wenn es von Interesse ist, kann ich bei Gelegenheit nochmal ne Minianleitung posten, wo ich reinschreiben kann, womit ich besonders Schwierigkeiten hatte... Grüsse e-lore
hallo Florian, ich weiß nicht, ob das schon geschehen ist mit deiner Anleitung - aber ich hätte sehr starkes interesse daran... vor allem mit der programmiergeschichte über das JTAG Interface... - welche Komponenten benutzt du? OpenOCD in Verbindung mit Eclipse? Funktioniert der Debug-Modus gut? wäre für Tipps dieser Art sehr dankbar... Hast du z.B. auch schon versucht ein externes Flash zu programmieren über den µC? PeterK
Hallo! Aaalso. Ich nutze zur Zeit das AT91SAM7SE-EK Board. Als JTAG hab ich hier von der Firma Segger ein SAM-ICE. Das funktioniert NICHT mit dem OpenOCD, wohl aber mit dem Eclipse. Dazu braucht man das Serverprogrämmelchen von der Firma Segger, welches man kostenlos von deren Seite bekommt. Wenn du dir ein JTAG von der Firma Olimex besorgst (sind recht günstig und es gibt da eins mit einem zusätzlichen RS232 Port UND einer Stromversorgung für die Platine, dann kannst du auch OpenOCD verwenden. Ich habe beides ausprobiert, bin aber momentan auf das SAM-ICE angewiesen. Der ist zwar ein wenig langsam, wenn man in Schritten das Programm Traced, aber generell bin ich ganz zufrieden. Was sehr gut funktioniert hat ist das Tutorial "Using Open Source Tools for AT91SAM7S Cross Development" von James P. Lynch, welches in der Revision C vorliegt. Das kann man von der Atmel Seite herunterladen. Es umschreibt Schritt für Schritt, wie man vorgehen muss, wenn man entweder Olimex oder Segger einsetzt. Wichtig ist dabei, daß man genau liest...das war nämlich mein Fehler. Es gibt da jeweils einen Initialisierungsstring, der z.B. erstmal den Prozessor anhält und dann einige konfigurationen durchschickt. Dieser String ist UNTERSCHIEDLICH, wenn man ein debugging im RAM oder im Flash machen möchste. Ich hab leider erstmal den falschen erwischt....naja..kostet halt Zeit sowas. Externen Flash habe ich noch nicht programmiert und den auf dem Board sitzenden SDRAM habe ich auch noch nicht genutzt. Dafür habe ich ein Tutorial gefunden, ich weiss nur nicht, ob ich im Verlaufe meiner Diplomarbeit noch dazu komme mein Programm dahingehend zu erweitern, daß das erforderlich wird. Falls dein angestrebtes Projekt in ähnliche Richtungen geht, kann man sich auch gerne regelmässig austauschen. Mehr kann ich im Augenblick nicht schreiben, da ich noch am arbeiten bin :) ich schaue aber im verlaufe des Tages mehrfach hier rein!
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.