www.mikrocontroller.net

Forum: GCC Tutorial für ADUC7000


Autor: Tilo Lutz (katagia)
Datum:

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
Autor: Tilo Lutz (katagia)
Datum:

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.
Autor: Tilo Lutz (katagia)
Datum:

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.
Autor: Eric Schrön (ottili86)
Datum:

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
Autor: Tilo Lutz (katagia)
Datum:

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.
Autor: Eric Schrön (ottili86)
Datum:

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
Autor: Tilo Lutz (katagia)
Datum:

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.
Autor: Eric Schrön (ottili86)
Datum:

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?
Autor: Tilo Lutz (katagia)
Datum:

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.
Autor: Tilo Lutz (Gast)
Datum:

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.

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net