Forum: Compiler & IDEs sdk4arm OpenOCD Flash Problem


von Andi D. (kid-d)


Angehängte Dateien:

Lesenswert?

Hallo zusammen !

Erstmal zu meiner Toolchain und Hardware:

sdk4arm von Amontec (Eclipse etc...)
JTag-Interface: JTAGkey tiny ebenfalls von Amontec
OpenOCD
und ein von Keil stammendes Eval Board MCB 2368 auf dem ein LPC 2368 von 
NXP sitzt.

Zum Problem:

Ich habe nach dem Tutorial von J.Lynch alles eingerichtet. Ich erhalte 
meine .hex ebenso wie die .bin die ich fürs Flashen via JTAG benötige.
Das flashen mit der .hex funktioniert ohne Probleme.
Bei JTAG funktioniert es anscheinend nur wenn davor mittels .hex 
geflasht wurde. Kann also nicht mehrfach nacheinander mit JTAG flashen.
Getestet hab ich das ganze mit dem LCD Display. Wenn ich versuche 
mehrfach mit JTAG zu flashen zeigt mir das LCD display nicht das an was 
es sollte sondern entweder noch das alte oder Zeichen die gar nicht da 
sein sollten welche sich aber nach jedem Druck auf Reset irgendwo 
andershin verlagern oder verschwinden...Oder die Anzeige ist erst nach 
mehrfachem flashen korrekt -.-
und ist dann auch nicht stabil, was heissen soll, wenn ich den Strom 
wegnehme ist die Anzeige wieder verändert.Das Flashen mit JTAG scheint 
den
Kontroller also in einen nicht stabilen zustand zu versetzen. Nehme ich 
das bei make all erzeugte hex file geht alles einwandfrei.Das Problem 
muss also irgendwo mit den Einstellungen von OpenOCD zu tun haben. Ich 
weiß aber leider nicht genau was es sein könnte, da ich Anfänger bin.
hier noch das was in der Console erscheint:
1
Flash Programming with OpenOCD...
2
'c:\Programme\amontec\sdk4arm\ocd\openocd\bin\'openocd.exe -f 'c:\Programme\amontec\sdk4arm\ocd\openocd\bin\'jtagkey-flash-eigene.cfg # program the onchip FLASH here
3
Info:    openocd.c:84 main(): Open On-Chip Debugger (2007-01-31 12:00 CET)
4
Warning: embeddedice.c:175 embeddedice_build_reg_cache(): EmbeddedICE version 7 detected, EmbeddedICE handling might be broken
5
Warning: arm7_9_common.c:683 arm7_9_assert_reset(): srst resets test logic, too
6
Info:    target.c:223 target_init_handler(): executing reset script 'flash.script'
7
Info:    configuration.c:50 configuration_output_handler(): dcc downloads are enabled
8
Info:    configuration.c:50 configuration_output_handler(): waiting for target halted...
9
Info:    configuration.c:50 configuration_output_handler(): target halted
10
Info:    configuration.c:50 configuration_output_handler(): target state: halted
11
Info:    configuration.c:50 configuration_output_handler(): target halted in ARM state due to debug request, current mode: User
12
Info:    configuration.c:50 configuration_output_handler(): cpsr: 0x60000090 pc: 0x0000020c
13
Info:    configuration.c:50 configuration_output_handler(): flash 'lpc2000' found at 0x00000000
14
Info:    configuration.c:50 configuration_output_handler(): erased sectors 0 through 26 on flash bank 0 in 0s 140625us
15
Info:    configuration.c:50 configuration_output_handler(): wrote file main.bin to flash bank 0 at offset 0x00000000 in 0s 203125us
16
Warning: arm7_9_common.c:683 arm7_9_assert_reset(): srst resets test logic, too
17
Flash Programming Finished.

alle files die ich benutze liegen im Anhang in einer RAR. Die 
interessanten files dürften: jtagkey-flash-eigene.cfg ; flash.script und 
das makefile sein

Danke schonmal im Vorraus für eure hilfe.

MFG Andi

von Andi D. (kid-d)


Lesenswert?

Falscher Thread oder weiß wirklich keiner was ? :(

von Kai H. (avrickeler)


Lesenswert?

Hallo Andi,

nehme Deinen Thread nochmal auf, da ich auch Probleme mit OpenOCD habe.

Hast Du mittlerweile mal die neueste Version von GNUARM probiert?
Hat sich Dein Problem mittlerweile gelöst?

Mein Problem mit dem LPC2378 (Olimex und Wiggler) ist, dass ich mit 
OpenOCD (Version r247-20071230.exe) kein Programm lauffähig 
draufgeflasht bekomme. Es ist egal, ob ich ein ELF, BIN oder HEX benutze 
(beinahe gleiche Debug-Outputs wie bei Andi beschrieben).

Ebenfalls ist es Wurst ob ich als
1
jtag_speed 0
oder
1
 jtag_speed 15

angebe.

Ich bin von den Skripten von Martin Thomas ausgegangen und habe diese 
nur etwas verändert (war für 'ne ältere OpenOCD-Version).
Ich kann auch von Insight aus den Chip flashen. Jedoch ist das Resultat 
immer gleich: LPC2378 macht nix, tut nix und landet laut Insight 
"irgendwo" im Code). Wenn ich das Hex-File mit Flash Magic flashe, läuft 
das Ding normal hoch. Davor hatte ich den mit OpenOCD geflashten Code 
über "Flash Magic" verglichen ...und : Verify findet keinen Fehler.????
 <- bitte helft mir!

Da wird doch beim Startup der Code gar nicht erst an Adresse 0 
angesprungen, oder?

Noch ein Hinweis am Rande:
Ich benutze ansonsten als Debugger den IOne / WinIdea von ISystem. Der 
schreibt leider nicht die Initialisierungswerte für globale Variablen 
ins Flash (sollten ja hinter .etext stehen), von dem aus ja später die 
.data-Section die daten kopiert bekommt. Also Vorsicht mit WinIdea, 
initialisierten globalen Variablen und ELF-Dateien - mit Hex kann dat 
Dingen auch richtig flashen aber halt nicht mehr debuggen ;-). -> 
Workaround: globale Variablen im Code nachinitialisieren.


P.S.: Danke an alle in den Foren, die mit Fragen und Antworten mir den 
Einstieg in die ARM-Prog leichter gemacht haben. Thx an Martin Thomas.

Grüße

Kai

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.