Ich würde gerne unter Debian 9 den Treiber für einen FTDI FT232H bauen,
nach dieser Anleitung:
http://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guide_for_Linux.pdf
Allerdings passiert, typisch Linux, bereits beim ersten Befehl ein
Fehler. Ich hab mir die Version für dem Raspberry Pi (ARMv6)
heruntergeladen und mit tar entpackt.
Jetzt hab ich einen Ordner release, aber keinen release*s*. Wenn ich
es aber trotzdem probiere, erhalte ich das:
1
sudo cp release/build/lib* /usr/local/lib
2
cp: -r not specified; omitting directory 'release/build/libftd2xx'
3
cp: -r not specified; omitting directory 'release/build/libusb
Gibt es eine komfortablere Methode als das alles händisch zu
compilieren?
Jim M. schrieb:> Dir ist schon klar das OpenOCD diesen FTDI Krempel nicht (mehr)> benötigt?
Nein, ich hab keine Ahnung von OpenOCD und auch nicht von FTDI-Chips.
Was genau bedeutet das? Ich wollte OpenOCD in Kombination mit gdb
benutzen, um meinen Raspberry über JTag zu debuggen. Wie sonst komme ich
an die JTag Schnittstelle? Einen JLink oder sowas hab ich nicht.
Max M. schrieb:> Wie sonst komme ich> an die JTag Schnittstelle?
Welchen Adapter hast Du denn für JTAG überhaupt? OpenOCD bringt für
etliche Adapter die Configs mit.
OpenOCD (das man sich ggf. selbst aus dem git baut) kann jedenfalls FTDI
Chips direkt ansprechen. Schau Dir da mal die Doku an.
Allerdings sind nicht alle gleichermaßen geeignet, nur die -H Varianten
haben die MPSSE für JTAG.
>Wie kombiniere ich openocd nun mit gdb?
Welche Toolchain hast Du? Was mit Eclipse CDT?
Compilierte OpenOCD Binaries (inkl. Config-Datein) für Linux, Windows
und MAC-Os kriegst hier, versuche es mal damit...
https://github.com/gnu-mcu-eclipse/openocd/releases
Dr. Sommer schrieb:> Das kann nur Cortex-M/R, also nicht dafür geeignet Code für den R-PI zu> erzeugen.
Das hier ist mein (schlechtes) Makefile. Ich hab schon ein paar einfache
Programme auf dem RPi B+ zum laufen bekommen, der Code bzw. die
Toolchain funktioniert also (sonst würde openocd wahrscheinlich auch gar
keinen JTAG TAP erkennen):
Dr. Sommer schrieb:> Der enthaltene GDB geht vermutlich auch nicht damit.
Soweit bin ich doch noch gar nicht? OpenOCD sollte doch erstmal
funktionieren und den Pi richtig erkennen.
Max M. schrieb:> Ich hab schon ein paar einfache Programme auf dem RPi B+ zum laufen> bekommen,
Okay, wo hast du deinen GCC denn her?
Max M. schrieb:> Soweit bin ich doch noch gar nicht?
Klar, wär dann ggf. das nächste Problem gewesen
Open On-Chip Debugger 0.10.0+dev-00376-g3d3b45af (2018-03-30-18:38)
3
Licensed under GNU GPL v2
4
For bug reports, read
5
http://openocd.org/doc/doxygen/bugs.html
6
adapter speed: 1000 kHz
7
none separate
8
Error: Debug adapter does not support any transports? Check config file order.
9
embedded:startup.tcl:21: Error:
10
in procedure 'script'
11
at file "embedded:startup.tcl", line 60
12
in procedure 'jtag' called at file "openocd.cfg", line 17
13
in procedure 'default_to_jtag' called at file "embedded:startup.tcl", line 167
14
in procedure 'transport' called at file "embedded:startup.tcl", line 158
15
in procedure 'ocd_bouncer'
16
at file "embedded:startup.tcl", line 21
Hat hier jemand schon mal mit OpenOCD gearbeitet und weiß, wie die
Konfigurationsdateien aufgebaut sind? Ich blick ehrlicherweise durch die
Doku gar nicht durch.
Das hier geht auch nicht:
Baum schrieb:> Könnte hilfreich sein ;)
Danke, ich hab das Einrichten von OpenOCD und das Anlegen der
Zugriffsrechte genauso gemacht (nur VID und PID entsprechend geändert).
Allerdings kam immer noch selber Fehler.
Rufus Τ. F. schrieb:> Vielleicht muss man das> OpenOCD irgendwie mitteilen.
Anscheinend, mit diesem Config-File
(https://forum.sparkfun.com/viewtopic.php?t=46655) geht es schonmal
etwas weiter:
Open On-Chip Debugger 0.10.0+dev-00382-gbe87994d (2018-04-07-19:32)
3
Licensed under GNU GPL v2
4
For bug reports, read
5
http://openocd.org/doc/doxygen/bugs.html
6
adapter speed: 1000 kHz
7
jtag
8
adapter speed: 1000 kHz
9
none separate
10
raspi.arm
11
Info : Listening on port 6666 for tcl connections
12
Info : Listening on port 4444 for telnet connections
13
Info : clock speed 1000 kHz
14
Error: JTAG scan chain interrogation failed: all zeroes
15
Error: Check JTAG interface, timings, target power, etc.
16
Error: Trying to use configured scan chain anyway...
17
Error: raspi.arm: IR capture error; saw 0x00 not 0x01
18
Warn : Bypassing JTAG setup events due to errors
19
Error: 'arm11 target' JTAG error SCREG OUT 0x00
20
Error: unexpected ARM11 ID code
21
Info : Listening on port 3333 for gdb connections
Baum schrieb:> Versuch ttyUSB0 als interface.
Klappt auch nicht, selbe Fehlermeldung nur dann mit ttyUSB0.
Edit: Möglicherweise stimmt auch das hier nicht:
1
ftdi_layout_init 0x0008 0x400b
>Config Command: ftdi_layout_init data direction>Specifies the initial values of the FTDI GPIO data and direction registers. Each
value is a 16-bit number corresponding to the concatenation of the high and low
FTDI GPIO registers. The values should be selected based on the schematics of the
adapter, such that all signals are set to safe levels with minimal impact on the
target system. Avoid floating inputs, conflicting outputs and initially asserted
reset signals.
Wo finde ich die Beschreibung für die GPIO Register in diesem Dokument?
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232H.pdf
Unter Linux muss man eventuell mittels sudo als root arbeiten.
Ich würde auch mal mit "adapter_khz 1" und Oszilloskop/Logic analyser
nachschauen ob sich da an den entsprechenden Pins überhaupt was tut.
Note: "All zeros" ist auch die Fehlermeldung wenn das Target schlicht
keinen Strom hat.
Jim M. schrieb:> Unter Linux muss man eventuell mittels sudo als root arbeiten.
Dafür hab ich ja hoffentlich die .rules-Datei angelegt (dafür waren
root-Rechte notwendig).
Jim M. schrieb:> Oszilloskop/Logic analyser> nachschauen
Gute Idee! Es tut sich tatsächlich was (FT232H -> Raspi). Möglicherweise
bedeutet das, dass die GPIOs beim Raspi falsch konfiguriert sind,
allerdings habe ich alles doppelt und dreifach gecheckt.
Jim M. schrieb:> keinen Strom hat.
Alle Power-LEDs sind am Leuchten.
Edit: Eigentlich dürfte doch am TDI-Pin nichts ausgegeben werden, dass
ist ja schließlich ein Eingang?
Max M. schrieb:> Edit: Eigentlich dürfte doch am TDI-Pin nichts ausgegeben werden, dass> ist ja schließlich ein Eingang?
Könnte sein dass da ein Pullup aktiv wird? Im LA kann man leider
Übersprechen einer offenen Leitung schlecht von echten Daten
unterscheiden. Pack da mal 'n 10k Pullup oder Pulldown drauf.
Ich sehe allerdings auch Deine aktive OpenOCD config nicht (und habe im
Thread die Übersicht verloren). Eventuell wird da was flashc
initialisiert.
Jim M. schrieb:> Ich sehe allerdings auch Deine aktive OpenOCD config nicht (und habe im> Thread die Übersicht verloren). Eventuell wird da was flashc> initialisiert.
Hier mein FT232H.cfg für den FTDI:
1
interface ftdi
2
ftdi_vid_pid 0x0403 0x6014
3
ftdi_layout_init 0x0008 0x00fb
und für den Raspi:
1
# Broadcom 2835 on Raspberry Pi
2
3
telnet_port 4444
4
#gdb_port 0
5
#tcl_port 0
6
7
#jtag_khz 1000
8
adapter_khz 1000
9
10
#jtag_nsrst_delay 400
11
#jtag_ntrst_delay 400
12
13
if { [info exists CHIPNAME] } {
14
set _CHIPNAME $CHIPNAME
15
} else {
16
set _CHIPNAME raspi
17
}
18
19
reset_config none
20
21
if { [info exists CPU_TAPID ] } {
22
set _CPU_TAPID $CPU_TAPID
23
} else {
24
set _CPU_TAPID 0x07b7617F
25
}
26
jtag newtap $_CHIPNAME arm -irlen 5 -expected-id $_CPU_TAPID