Forum: Compiler & IDEs JTAG chain mit openOCD


von Sebastian (Gast)


Lesenswert?

Hallo liebes Forum,
ich habe folgendes Problem: Ich habe 3 (gleiche) STM32F3-µC , die ich 
auf einmal flashen möchte. Hierzu möchte ich openOCD verwenden.

Einzeln funktioniert das ja soweit, hier der Befehl:
"C:\Program Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\bin\openocd" -f "C:\Program 
Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\scripts\interface\stlink-v2.cfg" 
-f "C:\Program Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\scripts\target\stm32f3x.cfg" -c 
init -c targets -c "halt" -c "flash  erase_sector 0 0 127" -c "reset 
halt" -c "flash write_image firmware.hex" -c "verify_image firmware.hex" 
-c "reset run" -c shutdown

Nun habe ich die 3 µC zu einer JTAG-Chain verbunden (DO des einen µC an 
den DI des anderen µC). Ich glaube, da hab ich nichts falsch gemacht.
Ich glaube mein Fehler liegt in der Bedienung von open OCD. Ich steige 
bei openOCd auch leider nicht so richtig durch.

Gibt es einen Befehl, um so eine chain zu scannen?
Wenn ich folgenden Befehl ausprobiere:
"C:\Program Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\bin\openocd" -f "C:\Program 
Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\scripts\interface\stlink-v2.cfg" 
-f "C:\Program Files\GNU ARM 
Eclipse\OpenOCD\0.10.0-201601101000-dev\scripts\target\stm32f3x.cfg" -c 
init -c targets

... erhalte ich folgende Ausgabe:

GNU ARM Eclipse 64-bits Open On-Chip Debugger 
0.10.0-dev-00287-g85cec24-dirty (2016-01-10-10:13)

Licensed under GNU GPL v2

For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html

adapter speed: 4000 kHz

Info : auto-selecting first available session transport "hla_swd". To 
override use 'transport select <transport>'.

adapter speed: 1000 kHz

adapter_nsrst_delay: 100

Info : The selected transport took over low-level target control. The 
results might differ compared to plain JTAG/SWD
none separate

Info : Unable to match requested speed 1000 kHz, using 950 kHz

Info : Unable to match requested speed 1000 kHz, using 950 kHz

Info : clock speed 950 kHz

Info : STLINK v2 JTAG v29 API v2 SWIM v7 VID 0x0483 PID 0x3748

Info : using stlink api v2

Info : Target voltage: 3.244181

Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints

    TargetName         Type       Endian TapName            State

--  ------------------ ---------- ------ ------------------ ------------

 0* stm32f3x.cpu       hla_target little stm32f3x.cpu       running


hier bleibt es dann auch stehen.
Kann man hier schon erkennen was ich falsch mache?
Bitte entschuldigt, wenn dies eine total dumme Frage ist. :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sebastian schrieb:
> die ich auf einmal flashen möchte.

Das geht so nicht.

Du kannst natürlich eine Chain aufbauen, aber du sprichst jedesmal 
eins der Targets darin an. Dafür musst du irgendwo in der 
Konfiguration beschreiben, wieviele devices und wie viele Bits jeweils 
davor und danach sind.

Bei AVRDUDE habe ich das schon gemacht, bei OpenOCD noch nicht.

von lexi (Gast)


Lesenswert?

Also ich bin da jetzt auch kein Experte...
Aber wenn du dich über Telnet mit OpenOCD verbindest, kannst du dir mit 
"scan_chain" die JTAG-Chain anzeigen lassen.

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.