Hallo Ich habe ein kleines Tutorial für ADUC7000 ARM7 Mikrocontroller geschrieben. Es soll an einem Beispiel zeigen, wie Code mit Eclipse entwickelt und über JTAG debuggt werden kann. Es ist als Ergänzung zu dem Tutorial von J. Lynch gedacht. Es hat eine Weile gedauert, bis die Skripte liefen, vor allem die für OpenOCD. Ich würde mich freuen, wenn sich Interessierte das Tutorial ansehen. Konstruktive Kritik ist erwünscht! Das Tutorial und die Skripte können unter http://www.stud.uni-karlsruhe.de/~usjp/aduc/ heruntergeladen werden. Gruß, Tilo
Ich habe einige Tipfehler korrigiert und einen neuen Abschnitt angefügt, in dem die einzelnen Codeteile kurz angesprochen werden. viel Spaß damit. Auch wenn das Tutorial von einem Windows System ausgeht, kann fast alles auf Linux oder OSX übernommen werden.
Ein neues Update ist draussen. Neu ist die Unterstützung von newlib für STDIN und STDOUT. Ausserm habe ich einige Kleinigkeiten in den Header Files und Linker Skript durchgeführt.
Hi Tilo, ich bin grad dabei dein Tutorial auszuprobieren! Ich find es tatsächlich besser als das von James Lynch, da ich exakt die Hardware vewende, auf die du dich beziehst. Allerdings wären ein paar mehr Screenshots schön, und eine Anleitung, wie ich mein Projekt konfiguriere, wenn mein makefile schon vorhanden ist. Das habe ich aber selbst jetzt schon hinbekommen. Mein eigentliches Problem ist das OpenOCD. Ich habe es exakt so gemacht, wie du beschrieben hast. Allerdings bringt er mir nach dem starten von OpenOCD eine Fehlermeldung, das er vom JTAGDevice nicht lesen und demzufolge auch nicht schreiben kann. Woran liegt das??? Es ist alles richtig installiert. Bei den USB Komponenten im Hardware Manager sind die Keys ebenfalls eingetragen. Gruß Eric
Hallo Eric Danke für den Hinweis. Ich habe mir schon überlegt, ob ich tiefer darauf eingehen soll, wie man ein Projekt anlegt etc. Bisher habe ich mich davor ein wenig gedrückt, da ich im Moment viel anders zu tun habe. In Lynchs Tutorial sind die meisten Dinge gut beschrieben. Er benutzt allerdings eine Makefile statt des gnuarm Plugin. Muss mal schaun wie ich dazu komme. Seine Bilder etc. darf ich verwenden. Dann kann ich mir Zeit sparen. Aber nun zu deinem Problem. Was für ein JTAG Dongle verwendest du? Benutzt du ein fertiges Board von Analog/Olimex/... ? Hast du den uC schon einmal geflasht? Eventuell hilft ein "Mass Erase" mit dem Loader von ADI Ich hatte ab und zu das Problem, dass man den uC über JTAG nicht mehr ansprechen kann, wenn ein "ungünstiges" Programm in Flash liegt.
Danke für die schnelle Antwort. Bei mir sieht es folgendermaßen aus: Ich habe ein Eval Board von Embedded Artists mit einem LPC2468 drauf. Das ist der einzige Unterschied. Ist aber auch ein ARM7TDMI. Daher habe ich mir gedacht, das es genauso gehen muss. Flashen tue ich das mit FlashMagic. Und das funktioniert auch einwandfrei. Auf einem anderen Rechner hatte ich auch schon mal OpenOCD r247 unter einer anderen Eclipse Version mit diesem Board zum laufen bekommen. Allerdings konnte der Debugger da nicht starten. Aber auf meinem aktuellen funktioniert das nicht. Mittlerweile gibt mir das OpenOCD auch andere Fehlermeldungen aus. Allem Anschein nach erkennt er jetzt das Device sagt aber: Error: jtag.c:1444 jtag_validate_chain(): Error validating JTAG scan chain, IR mismatch, scan returned 0x3f Und das kommt so ca. 30 mal Was will der mir damit sagen??? Eric
Hallo ;) Klar, mein Tutorial ist für einen ADUC7000. Da sind einige Dinge unterschiedlich. Vor allem die OpenOCD Skripte in Yagarto werden nicht funktionieren. Da kannst du dich an anderen Tutorials orientieren. 0x3f hatte ich immer dann, wenn die Verkabelung nicht OK war, die Resetleitungen falsch eingestellt waren etc. Wird bei deinem Board TRST, SRST oder beide verwendet? Bei mir wird nur SRST verwendet.
Bei mir wird beides verwendet. Ich muss sicherlich dazu sagen, dass ich mich erst seit zwei Wochen mit diesem Thema beschäftige, und noch keine anderweitigen Erfahrungen mit JTAG habe. Das ich die Scripts anpassen muss, ist mir schon klar. aber das hat doch nichts mit der Konfiguration von OpenOCD zu tun. Oder? Die Konfiguration hat doch nix mit meinem µC zu tun?
Abgesehen von den Reset-Leitungen sind die Einstellungen für ARM7TDMI identisch. Wenn die Reset-Leitung auf Low liegt, hat der uC einen Dauerreset. Eventuell kannst du mit einem Volt-Meter bzw. Logicanalizer überprüfen, was los ist. Ausserdem solltest du dir die Beispiele von OpenOCD ansehen. Da sind die unterschiedlichen Konfiguraitonsmöglichkeiten von TRST und SRST erklärt. Wie gesagt, bei mir wird nur SRST verwendet.
Ich habe das Tutorial ein wenig aktualisiert. Es werden nun alle aktuellen ADUC7000 Modelle unterstützt. Auch die Modelle, bei denen die MMRs an neuen Adressen liegen. In der PDF wird die Newlib kurz erwähnt, vor allem wie man die system calls aktiviert. Ich habe ausserdem ein wenig mehr Beispielcode hinzugefügt. Kommentare in den Beispielen sind noch in deutsch. Ich habe mir überlegt, sie ebenfalls ins englische zu übersetzen, allerdings habe ich dafür im Moment keine Zeit.
Sorry für's Ausgraben des alten Threads. Aber die Site ist down... Gibt's die Sachen noch irgendwo anders oder ist die Site umgezogen? (Ich schätze mal Beendigung des Studiums ist die Ursache)
Ich glaub die ist schon seit 4Jahren down. Hat bisher keien interessiert. Ich muss mal schaun, ob ich die Sachen noch finde, allerdings habe ich seit dem nichts mehr dran gemacht. Ich glaube nicht, das da noch viel zu einem aktuellem Eclipse passt.
Ok... Wäre aber trotzdem nett wenn du mir das Tutorial schicken könntest wenn du es findest (gerne auch per Mail - hab dir eine PM geschickt). Ich suche vor allem eine Einführung in die ADUC7XXX.
Also als Einführung nützt dir das nicht viel. Ich hab damals zusammengestellt, wie man eine lauffähige Toolchain hinbekommt, auf dem Stand von 2008. Zu den Eigenschaften des ADUCs steht da nichts drin. Ich kann dir dafür höchstens ein Demo Blink-Programm anbieten. Der Kern ist auch recht einfach, DMA, NVIC etc gibt es alles nicht. Wegen dem 16Bit breitem Flash lässt sich der ARM-Mode nur begrenzt nutzen. Man sollte den Chip eher als ADC verstehen, der einen uC enthält.
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.