Forum: Compiler & IDEs Tutorial für ADUC7000


von Tilo (Gast)


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

von Tilo (Gast)


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.

von Tilo (Gast)


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.

von Eric S. (ottili86)


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

von Tilo (Gast)


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.

von Eric S. (ottili86)


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

von Tilo (Gast)


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.

von Eric S. (ottili86)


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?

von Tilo (Gast)


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.

von Tilo Lutz (Gast)


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.

von Harald N. (haraldn)


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)

von Tilo (Gast)


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.

von Harald N. (haraldn)


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
von Tilo (Gast)


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.

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
Noch kein Account? Hier anmelden.