Forum: Mikrocontroller und Digitale Elektronik Olimex Atmel ARM board und Jtag


von romanua (Gast)


Lesenswert?

Hallo,

Ich habe ein ATMEL SAM7 Board von Olimex (wie hier in Shop) mit dem
Wiggler (auch von Olimex). Leider bekomme ich  keinen Code ueber
Crossworks in den Mikrokontroller.

Wenn ich JTAGSEL (BDS jumper auf dem board) auf HIGH (VCC) lege,
bekomme ich eine "target not responding" Meldung. Wenn ich  JTAGSEL
auf LOW(GND) lege, kann ich zwar eine Verbindung herstellen, stimmt
aber der geflashte Code mit der Datei beim Verifizieren nicht
ueberein.

Hat schon jemand von Euch mit Olimex SAM7+Wiggler+Crossworks Erfolg
hehabt?

mfg,
r.

von romanua (Gast)


Lesenswert?

Hallo, ich glaube, ich habe mir einbisschen selber geholfen. Vielleicht
hilft es auch weiter jemandem.

Also ich bin im Besitzt eines Olimex ATMEL ARM Boards und eines
"Wigglers". Ich habe versucht in Crossworks den Flash zu beschreiben.
Es ging, aber die Verifezierung hat immer fehlgeschlagen. Ich
"spielte" mit den Einstellungen fuer Oszillator und fuer  JTAG teile
ohne Erfolg.

Da ich mit JTAG nicht weiter wusste, habe ich SAM-BA installiert. Die
Verbindung mit dem Board hat auf Anhieb geklappt. Ich habe "Erase
Flash" geklickt, worauf die folgende Meldung kam: "Cannot continue
because at least one of the involved blocks ist locked. Should it be
unlocked? J/N"

Nach dem Loesch-/Unlockvorgang habe ich den Wiggler wieder
angeschlossen und auf einmal ging es.

Leider kann ich das Ganze noch nicht erklaeren, aber vielleicht hilft
die Geschichte jemandem.

von Yaolan Z. (zhu)


Lesenswert?

Hallo,
ich kriege das gleiche Problem. Ich habe ein Olimex Wiggler und
installierte Crossworks. Irgenwie bekomme ich immer die Fehlermeldung
"target not responding".

Hat jd es mit diesen zwei sachen geklappt, die Programme zu flashen?

Falls es funktioniert, dann werde ich weiter versuchen. Ich habe auch
in Webseite von Crossworks gelesen, bei dieser Fehlermeldung gibt es
folgende Möglichkeiten:

This error message could be caused by the following:

1, Incorrect ARM Debug Interface Type — Check that the Target > ARM
Debug Interface project property matches the type of target you are
trying to connect to.

2, Unreliable JTAG Connection — Try reducing the JTAG clock frequency
or reducing the target interface's cable lengths as much as possible.


Link unter:
http://ccgi.rowley.co.uk/support/faq.php?do=article&articleid=2

von mthomas (Gast)


Lesenswert?

Per OpenOCD koennen die SAM7 Lock-Bits auch ueber einen Wiggler-Adapter
geloescht werden. SAM-BA muss also nicht unbedingt sein.

http://openocd.berlios.de/web/
http://www.mikrocontroller.net/articles/AT91SAM7S_mit_OpenOCD_programmieren
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/index.html
(letzteres "Eigenwerbung")

Martin Thomas

von Yaolan Z. (zhu)


Lesenswert?

Danke für deine Antworten!
Aber ich habe kein Board dabei. Mein µC ist ADuC7027. Ich weiss mit
OpenOCD geht es. Aber ich habe schon Crossworks, ich wollte fragen,
Crossworks+Olimex Wiggler geht nicht????? Falls es geht, dann gibt es
Problem in meiner Platine. Fall es nicht geht, werde ich OpenOCD
benutzen.
Ich hoffe ich nerve euch nicht.

Gruss
Yaolan

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich kenne den ADuC7027 nicht, aber die Kombination Crossworks und
"Wiggler" (auch Nachbauten wie der von Olimex) funktioniert auf den
ernstgemeinten Windowsversionen (2000, XP etc.) hervorragend; bedeutend
besser beispielsweise als ein  Original-Wiggler von Macraigor mit
Macraigors "OCD Commander".

Daher vermute ich, daß ein Problem mit Deiner Schaltung vorliegt oder
aber daß die verwendeten Kabel möglicherweise zu lang sind - wie lang
ist das zwischen Deinem PC und dem "Wiggler", wie lang ist das
zwischen dem "Wiggler" und dem JTAG-Port Deiner Platine?

von Nils (Gast)


Lesenswert?

Hallo Leute,

ich benutze auch das o.g. Olimex Board mit Wiggler und Crossworks. Nach
Startschwierigkeiten wie sie auch romanua hatte, kann ich jetzt Code ins
RAM schreiben. Beim Versuch den Flash-Speicher zu programmieren gibt es
bei mir auch die Verifier-Fehlermeldung.

Nach Kontakt mit Rowley habe ich eine Vorabversion von Crossworks 1.6
bekommen. Diese meckert nicht mehr über Verifier-Fehler sondern meldet,
dass der Speicher gesperrt ist.

Ich hätte vermutet, dass Crossworks den Speicher einfach unlocked, aber
das scheint nicht so zu sein.

Meine Idee ist jetzt, ein Programm zu schreiben, dass alle Seiten des
Flash unlocked. Danach sollte es doch möglich sein, in den Flash zu
schreiben.

vgl. Manual:
[q]
The Flash Command register must be written with the following value:
(0x5A << 24) | (lockPageNumber << 8 & PAGEN) | CLB
lockPageNumber is a page of the corresponding lock region.
[\q]

Komme vielleicht heute abend dazu und werde dann berichten.

Gruß, Nils

von romanua (Gast)


Lesenswert?

Hallo,

Das Problem mit gesperrten Seiten musste ich immer wieder bekaempfen,
da bei mir folgendes Scenario oft aufgetreten ist:

1. inkorrektes Program geflasht.
2. nach dem Reset, kann Target nicht ueber JTAG gestoppt werden,
   weil das  Program im Flash nach dem Reset Ammok laeuft. Was tun?
3. Samba Firmware ins Flash duch das Schliessen des TST Jumpers
   uebertragen. Ab jetzt ist zumindestens ein korrekter Code im Flash,
   aber die Seiten sind gelockt.
4. Samba software starten und das Borad anschliessen. Im Samba Program

   'Erase entire Flash'(oder aenliches) auswaehlen. Kommt die Frage,
   ob die Seiten unlocked werde sollen->'Ja'
5. ab hier gehts es mit Crossworks wieder.


Nils,
wenn Du in Crossworks 1.6 "Erase All" clickst, was passiert?
Bei mir in 1.5 passierte nichts, egal, ob jetzt die Seiten gelockt
waren oder nicht.

von Nils (Gast)


Lesenswert?

Hallo romanua,

Ein Angeclicktes "Erase all" ändert nichts, weil Crossworks durch die
gesperrten Seiten keinen Zugriff hat.

Ich würde ja die Samba 'Erase entire Flash' Methode anwenden, aber
ich nutze Crossworks unter Linux. Deshalb werde ich die Seiten wohl von
Hand entriegeln müssen.

Gruß, Nils

von romanua (Gast)


Lesenswert?

Hallo Nils,

Du hast schon damit Recht, dass das Problem
der gesperten Seiten  gruendlich angeprochen werden muss. z.B.
mit so einem Program wie Du vorher aus dem RAM ausfuehren
wolltest.

Ich wollte bloss wissen, ob Crossworks 1.6 vielleicht die gleiche
Funktionalitaet wie 'Samba' bekommen hat und wuerde dich fragen, ob
Du Seiten unlocken willst.

Die Hoffnung hat mir folgende Zeile in SAM7 Manual Seite 20 gegeben:

Asserting the ERASE pin clears the lock bits, thus unlocking the entire
Flash.

Gruss,
R.

von romanua (Gast)


Lesenswert?

Ich dachte es geht irdenwie ueber JTAG Erase pin zu asserten. Obwohl,
ich gebe zu, ich hab nicht nachgeschaut, wo Erase Pin ueberhaupt ist.

von Nils (Gast)


Lesenswert?

Über die erwähnte Textzeile bin ich auch schon freudig gestolpert, aber
leider gibt es keinen Jumper/Taster dafür. Der Erase Pin ist Pin 55 am
AT91SAM7S64..256 (Pin42 bei AT91SAM7S32). Er ist am Olimex-Board leider
nicht angeschlossen.

Daher werde ich ein Programm fürs RAM schreiben, das die Lockbits
entfernt und den Flash löscht. Dann braucht man bei fehlerhaftem Code
im Flash zwar noch den TST-Jumper damit wieder korrekter Code im Flash
ist, aber man spart Samba, um die Bits zu löschen.

Werde berichten, ob es funktioniert.

Gruß, Nils

von Yaolan Z. (zhu)


Lesenswert?

Vielen Dank für eure Antworten.

@Rufus,
ich denke auch, dass von µC Kern bis zum JTAG connetor zu weit weg
ist.
Jetzt bei mir sind die Lange zwischen µC und JTAG etwa 2cm-5cm. Von
JTAG Anschluss auf der Platine bis PC dauert ungefähr 0,5m. Da die
Platine habe ich schon gelötet, ich schaffe es nicht den Abstand
zwischen JTAG und µC zu verkleinern. Und die Länge des Kabels an Pc hat
es auch gestört?
Keine Ahnung wo liegt das Problem...

von Nils B. (nordlicht_nils)


Lesenswert?

Hallo Leute,

habe ein kleines Programm geschrieben, das die Flash-pages unlocked und
den Flash löscht. Das führe ich im RAM aus. Anschließend kann ich mit
Crossworks den Flash beschreiben. So kann ich unter Linux programmieren
und komme ohne Samba aus.

@romanua:
Der Verifier meldet beim Debugen Unterschiede, obwohl keine
Unterschiede vorhanden sind. Ein extra Verifier-Durchlauf zeigt dann,
dass keine Unterschiede vorliegen. Das Verhalten zeigt sich sowohl
unter Windows als auch unter Linux. Hast Du das auch?

Gruß, Nils

von romanua (Gast)


Lesenswert?

@Nils

Das stimmt. Das Verifizieren faellt immer durch, obwohl es keine
Unterschiede vorhanden sind. Das sieht man auch beim ersten Durchlauf,
wenn man die Meldung 'Verifier has found errors. Do you want to
compare the differences.' mit 'ja' beantwortet. Zwischen beiden
Vergleichfenstern gibt es keine Unterschiede dann, es sei denn es gab
gesperrte Seiten. Ich habe das Netz zum Thema durchsucht. Es gibt auf
www.embeddedrelated.com paar Meldungen dazu. Da sagt anscheinend ein
Rowley Mitarbeiter, dass es an der Loader.exe Datei fuer SAM7 liegt.
Das oft vorgeschlagene Reduzieren  der Geschwindichkeit des JTAGs hilft
nicht (bei mir sicher nicht). Man solle sich bei Rowley melden, um eine
reparierte Datei zu bekommen. Ich habe es nicht gemacht, da man der
Code an sich richtig geflasht wird.

Hier weiter lesen:
http://www.embeddedrelated.com/groups/AT91SAM/show/802.php


Nils, Hast Du vor dein Entsperrprogram zu posten?

von Nils (Gast)


Lesenswert?

@romanua

Die Loader.exe habe ich mal von Rowley bekommen. Habe sie noch nicht
probiert, weil ich bisher dachte, dass sie in meiner Crossworks
Vorabversion 1.6 enthalten sei. Ich werde die neue Loader.exe aber
heute abend mal probieren. Wenn es erfolgreich ist, maile ich sie Dir
gern (ich weiß nicht, was Rowley davon hält, wenn ich sie hier poste).

Klar kann ich das kleine Programm zum Entsperren der Flash-Pages hier
posten. Werde noch ein wenig kommentieren und dann poste ich es.

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.