mikrocontroller.net

Forum: Compiler & IDEs Tutorial für ADUC7000


Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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 L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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 L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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 L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Harald Nagy (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Harald Nagy (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.