Мне нужно создать и протестировать конфигурацию openocd.cfg для программирования микроконтроллера ST32 через интерфейс программирования SWD с FT4232H. У меня еще нет ST32 MCU, поэтому я пытаюсь подключить мини-модуль FT4232H-56Q к аналоговому ADuCM4050, который находится на ADZS-U4050WL-EZKIT, и подключиться к нему с помощью openocd.

Я ожидаю, что файл openocd.cfg для FT4232H будет таким же (назначение выводов, уровень и направление по умолчанию и т.д.), Поэтому я бы хотел, чтобы это работало, и меняю ADuCM4050 на часть ST32 при получении.

Проблема в том, что я не могу заставить работать конфигурацию / синтаксис openocd. Я получаю ошибку:

User : 122 531 command.c:687 command_run_line(): target/aducm4x50.tcl:48: Error: invalid command name "dap"

Я запускаю это на Windows, и я не понимаю, как поступить. Были люди с подобной ошибкой здесь, но они сказали , что они решили его, изменяя их синтаксис пути. Я пытался указать абсолютные и относительные пути и не могу пройти мимо. Я помещаю файлы openocd.exe, openocd.cfg и usb lib * .dll в каталог скриптов. Я буду пробовать Linux завтра.

openocd.cfg:

interface ftdi
transport select swd
ftdi_vid_pid 0x0403 0x6011
ftdi_layout_init 0x20 0xfb
ftdi_layout_signal nTRST -data 0x20
ftdi_layout_signal SWD_EN -data 0
ftdi_channel 1
ftdi_layout_init 0x00 0xed
ftdi_channel 2
ftdi_layout_init 0x00 0xfd
ftdi_channel 3
ftdi_layout_init 0x00 0xfd

Вот весь вывод при запуске с отладкой d3:

D:\testing\openocd-0.10.0\scripts>openocd.exe -f openocd.cfg -f target/aducm4050.cfg -d3
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
User : 13 1 command.c:544 command_print(): debug_level: 3
Debug: 14 2 options.c:181 add_default_dirs(): bindir=bin-x64
Debug: 15 3 options.c:182 add_default_dirs(): pkgdatadir=
Debug: 16 4 options.c:183 add_default_dirs(): exepath=D:/testing/openocd-0.10.0/scripts
Debug: 17 5 options.c:184 add_default_dirs(): bin2data=../
Debug: 18 6 configuration.c:42 add_script_search_dir(): adding C:\Users\Mike\AppData\Roaming/OpenOCD
Debug: 19 8 configuration.c:42 add_script_search_dir(): adding D:/testing/openocd-0.10.0/scripts/..//site
Debug: 20 11 configuration.c:42 add_script_search_dir(): adding D:/testing/openocd-0.10.0/scripts/..//scripts
Debug: 21 13 configuration.c:82 find_file(): found openocd.cfg
Debug: 22 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_interface ftdi
Debug: 23 17 command.c:143 script_debug(): command - interface ocd_interface ftdi
Debug: 25 19 command.c:364 register_command_handler(): registering 'ocd_ftdi_device_desc'...
Debug: 26 20 command.c:364 register_command_handler(): registering 'ocd_ftdi_serial'...
Debug: 27 22 command.c:364 register_command_handler(): registering 'ocd_ftdi_location'...
Debug: 28 23 command.c:364 register_command_handler(): registering 'ocd_ftdi_channel'...
Debug: 29 25 command.c:364 register_command_handler(): registering 'ocd_ftdi_layout_init'...
Debug: 30 27 command.c:364 register_command_handler(): registering 'ocd_ftdi_layout_signal'...
Debug: 31 29 command.c:364 register_command_handler(): registering 'ocd_ftdi_set_signal'...
Debug: 32 30 command.c:364 register_command_handler(): registering 'ocd_ftdi_get_signal'...
Debug: 33 32 command.c:364 register_command_handler(): registering 'ocd_ftdi_vid_pid'...
Debug: 34 34 command.c:364 register_command_handler(): registering 'ocd_ftdi_tdo_sample_edge'...
Debug: 35 35 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select swd
Debug: 36 38 command.c:143 script_debug(): command - ocd_transport ocd_transport select swd
Debug: 37 39 command.c:323 command_new(): BUG: command 'swd' does not have the '.usage' field filled out
Debug: 38 41 command.c:364 register_command_handler(): registering 'ocd_swd'...
Info : 39 43 ftdi.c:1051 ftdi_swd_init(): FTDI SWD mode enabled
Debug: 40 44 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_vid_pid 0x0403 0x6011
Debug: 41 49 command.c:143 script_debug(): command - ftdi_vid_pid ocd_ftdi_vid_pid 0x0403 0x6011
Debug: 43 51 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_init 0x20 0xfb
Debug: 44 62 command.c:143 script_debug(): command - ftdi_layout_init ocd_ftdi_layout_init 0x20 0xfb
Debug: 46 64 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_signal nTRST -data 0x20
Debug: 47 78 command.c:143 script_debug(): command - ftdi_layout_signal ocd_ftdi_layout_signal nTRST -data 0x20
Debug: 49 80 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_signal SWD_EN -data 0
Debug: 50 93 command.c:143 script_debug(): command - ftdi_layout_signal ocd_ftdi_layout_signal SWD_EN -data 0
Debug: 52 96 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_channel 1
Debug: 53 106 command.c:143 script_debug(): command - ftdi_channel ocd_ftdi_channel 1
Debug: 55 117 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_init 0x00 0xed
Debug: 56 119 command.c:143 script_debug(): command - ftdi_layout_init ocd_ftdi_layout_init 0x00 0xed
Debug: 58 133 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_channel 2
Debug: 59 135 command.c:143 script_debug(): command - ftdi_channel ocd_ftdi_channel 2
Debug: 61 148 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_init 0x00 0xfd
Debug: 62 151 command.c:143 script_debug(): command - ftdi_layout_init ocd_ftdi_layout_init 0x00 0xfd
Debug: 64 163 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_channel 3
Debug: 65 166 command.c:143 script_debug(): command - ftdi_channel ocd_ftdi_channel 3
Debug: 67 178 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ftdi_layout_init 0x00 0xfd
Debug: 68 181 command.c:143 script_debug(): command - ftdi_layout_init ocd_ftdi_layout_init 0x00 0xfd
Debug: 70 194 configuration.c:82 find_file(): found target/aducm4050.cfg
Debug: 71 195 configuration.c:82 find_file(): found target/aducm4x50.tcl
Debug: 72 206 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select swd
Debug: 73 208 command.c:143 script_debug(): command - ocd_transport ocd_transport select swd
Warn : 74 218 transport.c:297 jim_transport_select(): Transport "swd" was already selected
Debug: 75 220 configuration.c:82 find_file(): found target/swj-dp.tcl
Debug: 76 233 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select
Debug: 77 235 command.c:143 script_debug(): command - ocd_transport ocd_transport select
Debug: 78 248 configuration.c:82 find_file(): found bitsbytes.tcl
Debug: 79 250 configuration.c:82 find_file(): found memory.tcl
Debug: 80 263 configuration.c:82 find_file(): found mem_helper.tcl
Debug: 81 264 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_usage_text mrw address
Debug: 82 278 command.c:143 script_debug(): command - add_usage_text ocd_add_usage_text mrw address
Debug: 84 280 command.c:1098 help_add_command(): added 'mrw' help text
Debug: 85 293 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_help_text mrw Returns value of word in memory.
Debug: 86 295 command.c:143 script_debug(): command - add_help_text ocd_add_help_text mrw Returns value of word in memory.
Debug: 88 305 command.c:1111 help_add_command(): added 'mrw' help text
Debug: 89 317 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_usage_text mrb address
Debug: 90 319 command.c:143 script_debug(): command - add_usage_text ocd_add_usage_text mrb address
Debug: 92 332 command.c:1098 help_add_command(): added 'mrb' help text
Debug: 93 334 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_help_text mrb Returns value of byte in memory.
Debug: 94 348 command.c:143 script_debug(): command - add_help_text ocd_add_help_text mrb Returns value of byte in memory.
Debug: 96 351 command.c:1111 help_add_command(): added 'mrb' help text
Debug: 97 363 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_usage_text mmw address setbits clearbits
Debug: 98 365 command.c:143 script_debug(): command - add_usage_text ocd_add_usage_text mmw address setbits clearbits
Debug: 100 378 command.c:1098 help_add_command(): added 'mmw' help text
Debug: 101 380 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_add_help_text mmw Modify word in memory. new_val = (old_val & ~clearbits) | setbits;
Debug: 102 395 command.c:143 script_debug(): command - add_help_text ocd_add_help_text mmw Modify word in memory. new_val = (old_val & ~clearbits) | setbits;
Debug: 104 398 command.c:1111 help_add_command(): added 'mmw' help text
Debug: 105 409 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_adapter_khz 1000
Debug: 106 412 command.c:143 script_debug(): command - adapter_khz ocd_adapter_khz 1000
Debug: 108 422 core.c:1631 jtag_config_khz(): handle jtag khz
Debug: 109 432 core.c:1598 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 110 434 core.c:1598 adapter_khz_to_speed(): convert khz to interface specific speed value
User : 111 448 command.c:544 command_print(): adapter speed: 1000 kHz
Debug: 112 449 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select
Debug: 113 463 command.c:143 script_debug(): command - ocd_transport ocd_transport select
Debug: 114 465 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select
Debug: 115 478 command.c:143 script_debug(): command - ocd_transport ocd_transport select
Debug: 116 480 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select
Debug: 117 493 command.c:143 script_debug(): command - ocd_transport ocd_transport select
Debug: 118 495 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_swd newdap aducm4050 cpu -expected-id 0x6ba02477
Debug: 119 507 command.c:143 script_debug(): command - ocd_swd ocd_swd newdap aducm4050 cpu -expected-id 0x6ba02477
Debug: 120 509 tcl.c:549 jim_newtap_cmd(): Creating New Tap, Chip: aducm4050, Tap: cpu, Dotted: aducm4050.cpu, 2 params
Debug: 121 519 core.c:1304 jtag_tap_init(): Created Tap: aducm4050.cpu @ abs position 0, irlen 0, capture: 0x0 mask: 0x0
User : 122 531 command.c:687 command_run_line(): target/aducm4x50.tcl:48: Error: invalid command name "dap"
in procedure 'script'
at file "embedded:startup.tcl", line 60
at file "target/aducm4050.cfg", line 8
at file "target/aducm4x50.tcl", line 48

Помимо устранения ошибки "dap", я не вижу, чтобы выводы A и B канала FT4232H меняли свои выводы в соответствии с моим файлом openocd.cfg. Все они высоки, но я ожидаю, что некоторые из них будут низкими с "ftdi_layout_init 0x20 0xfb". Я правильно понял? Или может быть так, что FT4232H не перенастроен из-за ошибки "dap"?

# ftdi_layout_init [data] [direction]

#  name   signal  state      direction  JTAG name
# *DBUS0  TCK     (low=0)   (out=1)    TCK
# *DBUS1  TDI     (low=0)   (out=1)    TDI
# *DBUS2  TDO     (low=0)   (in=0)    TDO
# *DBUS3  NC      (low=0)   (out=1)    TMS
# *DBUS4  NC      (low=0)   (out=1)    
# *DBUS5  RST     (high=1)   (out=1)    (nTRST)
# *DBUS6  NC  (low=0)   (out=1)    (nRST)
# *DBUS7  NC  (low=0)   (out=1)    RTCK
ftdi_layout_init 0x20 0xfb

Редактировать: Нет, похоже, что этот выход происходит независимо от того, подключен ли он к FT4232H через USB. Таким образом, у меня все еще могут быть проблемы с драйвером USB (использование Zadig.exe для изменения драйвера FTDIBus на WinUSB, но без изменений), или, возможно, он не пытается с ошибкой "dap".

Заранее благодарим за любую помощь или предложения, которые вы можете иметь.

0