Forum: Compiler & IDEs OpenOCD Problem: unable to open ftdi device


von Thomas M. (mth)


Lesenswert?

Hallo Gemeinde,

Ich bekomme den OpenOCD Server einfach nicht in Gang und hoffe jemand 
hat den entscheidenden Hinweis. Bei der Abarbeitung der Konfiguration 
steigt OpenOCD mit folgender Fehlermeldung aus:
"Error: unable to open ftdi device: device not found"

Ich arbeite mit:
OpenOCD: 0.3.1 (2009-11-13)
JTAG Adapter: Amontec JTAGkey
Board: Keil MCB 1700
Target: LPC1768
BS: Vista

Die Treiber für den FTD2xx Chipsatz stammen von der Amontec Webseite. 
Die jtagkey_demo Applikation hat mir den ordnungsgemäßen Betrieb des 
Adapters bestätigt. Bei der OpenOCD Installation war auch ein Treiber 
dabei: "libusb-win32_ft2232_driver". Diesen habe ich auch ausprobiert, 
jedoch stürzt dabei OpenOCD ab und die jtagkey_demo Applikation findet 
kein USB to JTAG Device.

Hier meine OCD-Konfiguration:

#######################################
telnet_port 27182
gdb_port 31415

interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8


if { [info exists CHIPNAME] } {
  set  _CHIPNAME $CHIPNAME
} else {
  set  _CHIPNAME lpc1768
}

if { [info exists ENDIAN] } {
  set  _ENDIAN $ENDIAN
} else {
  set  _ENDIAN little
}

if { [info exists CPUTAPID ] } {
  set _CPUTAPID $CPUTAPID
} else {
  set _CPUTAPID 0x4ba00477
}

#delays on reset lines
jtag_nsrst_delay 200
jtag_ntrst_delay 200

# LPC2000 & LPC1700 -> SRST causes TRST
reset_config trst_and_srst srst_pulls_trst

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf 
-expected-id $_CPUTAPID

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position 
$_TARGETNAME

# LPC1768 has 32kB of SRAM on its main system bus (so-called Local 
On-Chip SRAM)
$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x10000000 
-work-area-size 0x8000 -work-area-backup 0

$_TARGETNAME configure -event reset-init {
  # Force target into ARM state
  armv4_5 core_state arm
  #do not remap 0x0000-0x0020 to anything but the flash
#  mwb 0xE01FC040 0x01
  mwb 0xE000ED08 0x00
}

# LPC1768 has 512kB of user-available FLASH (bootloader is located in 
separate dedicated region).
# flash bank lpc1700 <base> <size> 0 0 <target#> <variant> <cclk> 
[calc_checksum]

flash bank lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 12000 
calc_checksum

# 4MHz / 6 = 666kHz, so use 500
jtag_khz 500

###########################################

Hat jemand eine Idee oder eine Beispielkonfiguration?

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Thomas Matthes schrieb:
> Hallo Gemeinde,
>
> Ich bekomme den OpenOCD Server einfach nicht in Gang und hoffe jemand
> hat den entscheidenden Hinweis. Bei der Abarbeitung der Konfiguration
> steigt OpenOCD mit folgender Fehlermeldung aus:
> "Error: unable to open ftdi device: device not found"

Was passiert wenn openocd mit -d3 (erweiterte Ausgaben gestartet) wird?

> Ich arbeite mit:
> OpenOCD: 0.3.1 (2009-11-13)
> JTAG Adapter: Amontec JTAGkey
> Board: Keil MCB 1700
> Target: LPC1768
> BS: Vista
>
> Die Treiber für den FTD2xx Chipsatz stammen von der Amontec Webseite.
> Die jtagkey_demo Applikation hat mir den ordnungsgemäßen Betrieb des
> Adapters bestätigt. Bei der OpenOCD Installation war auch ein Treiber
> dabei: "libusb-win32_ft2232_driver". Diesen habe ich auch ausprobiert,
> jedoch stürzt dabei OpenOCD ab und die jtagkey_demo Applikation findet
> kein USB to JTAG Device.

Was heisst "stürzt ab"? Bei was?

Es gibt zwei Treiber: den Herstellertreiber von FTDI und die Treiber 
libusb/libftdi. Soweit ich weiss, werden die "offizellen" OpenOCD 
Binärversionen für Windows von Freddie Chopin nur noch mit Unterstüztung 
für libusb/libftdi bereitgestellt - hat irgendwas mit der Lizenz zu tun 
(Ich baue mit OpenOCD immer selbst aus den Quellen und dann für 
FTDI-Treiber, kenne also nur einer der Konfigurationen, die bei mir auch 
gut funktoniert). Beim letzten Mal schauen, waren die Treiber von 
Amontec im Grunde die von FTDI mit angepasster INF-Datei (Ich nutze 
inzwischen die Treiber direkt von ftdichip.com und passed die INF-Datei 
selbst an - funktioniert gut, ausser Mecker von XP wg. unsignierten 
Treibern bei der Installation).

Also: OpenOCD für libusb/libftdi wird sehr wahrscheinlich nicht mit FTDI 
bzw. Amontec Treibern funktionieren und die jtagkey-demo wird wohl über 
die FTDI-DLL mit dem FTDI-Treiber reden wollen. Entweder 
libusb/libftdi-Treiber + OpenOCD für libusb/libftdi - oder FTDI-Treiber 
+ OpenOCD für eben diese.

> Hier meine OCD-Konfiguration:
> ...
> Hat jemand eine Idee oder eine Beispielkonfiguration?

testweise erstmal:
openocd -d3 -f interface/jtagkey.cfg -f board/keil_mcb1700.cfg -c init
Ausgabe anschauen und gegebenfalls über telnet-interface ein wenig 
testen (reset, targets etc.)

von Thomas M. (mth)


Lesenswert?

Danke für die Infos, das hat mir erstmal weitergeholfen. Das ftdi device 
wird jetzt erkannt. Ich habe das Binary von Freddie Chopin Website und 
diese Version bietet Unterstützung für FT2232H und FT4232H. Nun bin ich 
doch nicht um eine Kompilierung herumgekommen, da ich einen FT2232L 
Chipsatz verwende.

Was ist da eigentlich los, warum dürfen nun plötzlich OpenOCD-Binaries 
die an die FTD2XX Library gelinkt sind, nicht mehr öffentlich bereit 
gestellt werden? Den FTDI Hersteller sollte das doch eigentlich egal 
sein. Und um Garantie- bzw. Sicherheitsklauseln kann es so gesehen auch 
nicht gehen, davon wird sich doch sowieso distanziert (Verwendung auf 
eigene Gefahr).

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Thomas Matthes schrieb:
>...
> Was ist da eigentlich los, warum dürfen nun plötzlich OpenOCD-Binaries
> die an die FTD2XX Library gelinkt sind, nicht mehr öffentlich bereit
> gestellt werden? Den FTDI Hersteller sollte das doch eigentlich egal
> sein. Und um Garantie- bzw. Sicherheitsklauseln kann es so gesehen auch
> nicht gehen, davon wird sich doch sowieso distanziert (Verwendung auf
> eigene Gefahr).

Hat wohl nichts mit der Fa. FTDI, sondern mit der Lizenz von OpenOCD zu 
tun (GPL). Habe die ellenlange/verzweigte/kontroverse Diskussion in der 
developer-mailingliste dazu nur sporadisch mitverfolgt, die kann man 
aber in deren Archiv nachlesen. Resultat ist aber offensichtlich, dass 
Unterstützung für die Herstellertreiber nicht mehr vom halboffiziellen 
Packager von OpenOCD Binärversionen für MS Windows (F. Chopin) 
bereitgestellt wird. Ist schade, da die FTDI-Treiber unter MS-Windows 
sehr gut funktionieren (daher baue ich mir OpenOCD auch immer noch 
selbst). Wäre wohl nur dadurch zu ändern, dass die OpenOCD Lizenz 
erweitert und/oder modifziert wird. Das können bei GPL m.W. nur alle 
Entwickler im Konsens entscheiden (Chance dafür ca. 0).

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.