Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/debugging/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 做OpenOCD+;STLINK-V3SET是否支持在菊花链配置中调试多个控制器?_Debugging_Stm32_Openocd_Jtag - Fatal编程技术网

Debugging 做OpenOCD+;STLINK-V3SET是否支持在菊花链配置中调试多个控制器?

Debugging 做OpenOCD+;STLINK-V3SET是否支持在菊花链配置中调试多个控制器?,debugging,stm32,openocd,jtag,Debugging,Stm32,Openocd,Jtag,我希望使用STLINK适配器运行多核调试。 我有使用其他工具(如Lauterbach的uTrace/Trace32)进行调试的经验。 现在,我想在家里建立一个多核系统,作为一个爱好项目——我没有uTrace,只有不同版本的STLink(便宜得多)。遗憾的是,我对使用OpenOCD一点经验都没有。 非常感谢您的帮助 到目前为止我做了什么 RTFM.1我在手册中看到了许多典型的用例,但没有系统地描述哪些命令包括/需要(哪些)子命令。这阻碍了对我的(异国情调?)用例的解决方案的认识 设置工作单核Ope

我希望使用STLINK适配器运行多核调试。 我有使用其他工具(如Lauterbach的uTrace/Trace32)进行调试的经验。 现在,我想在家里建立一个多核系统,作为一个爱好项目——我没有uTrace,只有不同版本的STLink(便宜得多)。遗憾的是,我对使用OpenOCD一点经验都没有。 非常感谢您的帮助

到目前为止我做了什么

  • RTFM.1我在手册中看到了许多典型的用例,但没有系统地描述哪些命令包括/需要(哪些)子命令。这阻碍了对我的(异国情调?)用例的解决方案的认识

  • 设置工作单核OpenOCD配置:

    • 生成的配置文件使用安装中的示例OpenOCD脚本文件:
      stlink.cfg
      (接口:
      hla
      ),
      stm32f1x.cfg
      swj dp.tcl
      mem\u helper.tcl
    • 这一设置很好地工作-但只有一个单板/核心。。。! 不过,它表明我的STLINK和目标板是正常的,并且工具版本(原则上)可以相互通信
  • 检查了STM32CubeIDE安装中的其他OpenOCD示例文件

    stm32h7x_dual_core.cfg
    用于错误的µ-控制器,但它包含一个双核选项。在里面,我发现了这个警告:

    # Issue a warning when hla is used, and fallback to single core configuration
    if { [set $_CHIPNAME.DUAL_CORE] && [using_hla] } {
        echo "Warning : hla does not support multicore debugging"
        set $_CHIPNAME.DUAL_CORE 0
    }
    
    因此,
    接口hla
    不能用于多核调试
    (就我理解的这条评论是正确的而言)

  • [编辑]

    描述了STM32H7系列中双核变体的集成 . 尽管如此,这些控制器在JTAG链中只包含一个抽头,允许在其后面的内部总线上访问多个接入端口(AP)

    [/编辑]


    以下步骤描述了我如何使用与
    hla
    不同的接口设置,为单板运行STLINK/JTAG配置

  • 在OpenOCD中查找其他
    接口
    选项

    OpenOCD支持许多不同的接口

         **C:\Temp>** C:\ST\STM32CubeIDE_1.3.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.openocd.win32_1.3.0.202002181050\tools\bin\openocd.exe -c "interface st-link" -c "transport list"
         Open On-Chip Debugger 0.10.0+dev-01193-g5ce997d (2020-02-20-10:57)
         Licensed under GNU GPL v2
         For bug reports, read
                 http://openocd.org/doc/doxygen/bugs.html
         The following transports are available:
                 jtag
                 aice_jtag
                 stlink_swd
                 stlink_jtag
                 swd
                 stlink_swim
                 hla_jtag
                 hla_swd
         [...]
    
    但与我的STLINK一起,我会收到与
    接口
    相关的错误消息,除非我选择
    hla
    选项或以下两个选项之一:

    • stlink\u swd
      -swd不支持菊花链,所以这不是我的选择

    • stlink\u jtag
      -我正在寻找jtag,但这似乎不起作用:

      使用以下最小(?)脚本

      我没有收到任何连接,但收到以下日志(激活大量调试):

  • 检查OpenOCD邮件列表档案

    有一些提示表明,多核JTAG+STLINK在早期的OpenOCD版本中不受支持,但OpenOCD中的STLINK驱动程序代码有一些(初步的?)更改,我不理解。 因此,我仍然想知道目前的状况是什么

  • 问题

    有人知道OpenOCD是否通过STLINK支持JTAG,或者我的尝试是徒劳的吗? 我是否必须添加正确的JTAG链/TAP/target定义来消除基本错误消息,或者进一步尝试是没有意义的


    详细信息-我正在使用以下工具版本:

    • STM32CubeIDE for Windows,版本:1.3.1(内部版本:6291_20200406_0752(UTC)), 包括
    • OpenOCD,版本0.10.0+dev-01193-g5ce997d(2020-02-20-10:57)
    • STLINK-V3SET(
      信息:STLINK V3J6M2B4S1(API v3)参考:PID 0483:374F
    • 目标板:2x,包括 (对于NucleoBoard(STM32F4/STM32L4),我可以尝试同样的方法,但我认为这不是重点)

    一,
    “OpenOCD用户指南”,0.10.0+开发,STM,2020年2月20日(st-OpenOCD.pdf,STM32CubeIDE安装的一部分)

    可能有点晚,但:

    从UM2448开始
    “STLINK-V3SET不支持JTAG(菊花链)中的设备链接。

    PS:我想添加一个标签“STLINK”或类似的标签。这不存在(与和相反)。我的声誉不允许我创建/提出一个。更有经验的用户怎么想?你同意创建它吗?IMO(非常个人的意见)在这种情况下,openOCD不是很好的解决方案。我更喜欢JLinkserver。如果它是业余爱好/教育项目,你可以使用J-Link EDU或Jlink mini。我认为stlink V3会更好更快。但我认为它不是。@P_uj_uuu-谢谢分享你的意见。我在其他与stlink相关的帖子中也读过类似的意见(但不是在我决定花钱购买stlink-V3之前…。stlink适配器比J-link便宜一点(除非我们将stlink-V3与J-link EDU mini进行比较),所以我决定进一步关注这个问题,以检查成本最低的解决方案。阅读AN5286…..UART桥接器这是一个非常标准的东西。但我不会说它可以工作。它可以工作。
    我想知道我是否应该尝试一下CMSIS-DAP,但不只是HID实现。HID非常慢,HID实现只是unBelible Slown一点也不晚——我在这段时间里没有发现任何像这样清晰的声明。但为了进一步说明,我在这段时间里买了一个J-Link,它是上周刚到货的:-)。
    
        interface st-link
        transport select stlink_jtag
    
        Debug: 17 15 options.c:184 add_default_dirs(): bindir=/src/work/openocd/win32/build/bin
        Debug: 18 15 options.c:185 add_default_dirs(): pkgdatadir=/src/work/openocd/win32/build/share/openocd
        Debug: 19 15 options.c:186 add_default_dirs(): exepath=C:/ST/STM32CubeIDE_1.3.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.openocd.win32_1.3.0.202002181050/tools/bin
        Debug: 20 15 options.c:187 add_default_dirs(): bin2data=../share/openocd
        Debug: 21 15 configuration.c:42 add_script_search_dir(): adding C:\Users\x\AppData\Roaming/OpenOCD
        Debug: 22 15 configuration.c:42 add_script_search_dir(): adding C:/ST/STM32CubeIDE_1.3.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.openocd.win32_1.3.0.202002181050/tools/bin/../share/openocd/site
        Debug: 23 15 configuration.c:42 add_script_search_dir(): adding C:/ST/STM32CubeIDE_1.3.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.openocd.win32_1.3.0.202002181050/tools/bin/../share/openocd/scripts
        Debug: 24 15 configuration.c:97 find_file(): found openocd.cfg
        Debug: 25 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_interface st-link
        Debug: 26 15 command.c:143 script_debug(): command - interface ocd_interface st-link
        Debug: 28 15 command.c:364 register_command_handler(): registering 'ocd_st-link'...
        Debug: 29 15 command.c:364 register_command_handler(): registering 'ocd_st-link'...
        Debug: 30 15 command.c:364 register_command_handler(): registering 'ocd_st-link'...
        Debug: 31 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_transport select stlink_jtag
        Debug: 32 15 command.c:143 script_debug(): command - ocd_transport ocd_transport select stlink_jtag
        Debug: 33 15 adi_v5_stlink.c:223 stlink_jtag_select(): stlink_jtag_select()
        Debug: 34 15 command.c:364 register_command_handler(): registering 'ocd_stlink_dap'...
        User : 35 15 command.c:693 command_run_line(): stlink_jtag
        User : 36 15 command.c:695 command_run_line(): 
        Info : 37 15 server.c:311 add_service(): Listening on port 6666 for tcl connections
        Info : 38 15 server.c:311 add_service(): Listening on port 4444 for telnet connections
        Debug: 39 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_init
        Debug: 40 15 command.c:143 script_debug(): command - init ocd_init
        Debug: 42 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_target init
        Debug: 43 15 command.c:143 script_debug(): command - ocd_target ocd_target init
        Debug: 45 15 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_target names
        Debug: 46 15 command.c:143 script_debug(): command - ocd_target ocd_target names
        Debug: 47 15 target.c:1438 handle_target_init_command(): Initializing targets...
        Debug: 48 15 stlink_usb.c:3755 stlink_dap_init(): stlink_dap_init()
        Debug: 49 15 stlink_usb.c:2674 stlink_usb_open(): stlink_usb_open
        Debug: 50 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x3744 serial: 
        Debug: 51 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x3748 serial: 
        Debug: 52 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x374b serial: 
        Debug: 53 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x3752 serial: 
        Debug: 54 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x374d serial: 
        Debug: 55 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x374e serial: 
        Debug: 56 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x374f serial: 
        Debug: 57 15 stlink_usb.c:2688 stlink_usb_open(): transport: 2 vid: 0x0483 pid: 0x3753 serial: 
        Info : 58 46 stlink_usb.c:1000 stlink_usb_version(): STLINK V3J6M2B4S1 (API v3) VID:PID 0483:374F
        Info : 59 46 stlink_usb.c:2810 stlink_usb_open(): using stlink api v3
        Debug: 60 46 stlink_usb.c:1230 stlink_exit_mode(): MODE: 0x01
        Debug: 61 46 stlink_usb.c:1278 stlink_usb_init_mode(): MODE: 0x01
        Info : 62 46 stlink_usb.c:1032 stlink_usb_check_voltage(): Target voltage: 3.278671
        Debug: 63 46 stlink_usb.c:1303 stlink_usb_init_mode(): MODE: 0x01
        Debug: 64 46 stlink_usb.c:1130 stlink_usb_mode_enter(): stlink_usb_mode_enter(JTAG)
        Debug: 65 46 stlink_usb.c:740 stlink_usb_error_check(): UNKNOWN_JTAG_CHAIN
        Error: 66 46 stlink_usb.c:2819 stlink_usb_open(): init mode failed (unable to connect to the target)
        Debug: 67 46 stlink_usb.c:1230 stlink_exit_mode(): MODE: 0x01
        Debug: 68 46 command.c:642 run_command(): Command failed with error code -4
        User : 69 46 command.c:705 command_run_line():