This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320DM6467T: C64XP: Error connecting to the target: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 9.6.0.00172)

Part Number: TMS320DM6467T

之前没有这个错,今天才出现的,不知道法生了什么。test connection 没有问题

C64XP: Error connecting to the target: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 9.6.0.00172)

找到了这个帖子:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/216423/launchxl-f28027-error-connecting-to-the-target-error--1137-0xf?tisearch=e2e-sitesearch&keymatch=C64XP%3A%20Error%20connecting%20to%20the%20target%3A%20%28Error%20-1137%20%40%200x0%29%20Device%20is%20held%20in%20reset.%20Take%20the%20device%20out%20of%20reset%2C%20and%20retry%20the%20operation.%20%28Emulation%20package%209.6.0.00172%29#

但板子是俊竹科技设计的,没有reset开关。

向任何回答表示感谢!

  • 请问GEL文件中有ARM复位DSP核的语句吗?DSP核需要ARM核对其复位。如C:\ti\ccsv8\ccs_base\emulation\boards\evmdm6467\gel\davincihd1080p_arm.gel文件中的boot_dsp_from_arm

    先运行arm gel文件中的boot_dsp_from_arm,再连dsp核。

  • c/ti/ccs1110/ccs/ccs_base/emulation/boards/evmdm6467/gel/davincihd1080p_arm.gel 里有boot_dsp_from_arm 的语句,我试着重新开了一个arm项目,在arm 926 上加载了 c/ti/ccs1110/ccs/ccs_base/emulation/boards/evmdm6467/gel/davincihd1080p_arm.gel, 显示了以下信息:

    ARM926: GEL Output: 
    DaVinci HD1080p ARM Startup Sequence
    
    ARM926: GEL Output: Disable IRQ/FIQ
    ARM926: GEL Output: Flush Cache
    ARM926: GEL Output: Disable MMU
    ARM926: GEL Output: Enable Instruction Cache.
    
    ARM926: GEL Output: Setup PinMux...ARM926: GEL Output: [Done]
    ARM926: GEL Output: Setup Power Modules (All on)...ARM926: GEL Output: [Done]
    ARM926: GEL Output: Setup PLL0ARM926: GEL: Error while executing OnTargetConnect(): Target failed to write 0x01C40900
    	 at (*(pll_ctl)&=~(0x0001)) [davincihd1080p_arm.gel:572]
    	 at setup_pll_0(0, 29) [davincihd1080p_arm.gel:655]
    	 at Setup_Pll0_990_MHz_OscIn() [davincihd1080p_arm.gel:43]
    	 at OnTargetConnect()
    ARM926: Error: (Error -1060 @ 0x2E18) Device is not responding to the request. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.6.0.00172) 
    ARM926: Error: (Error -1029 @ 0x2B5F) Invalid data read from ICECrusher register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.6.0.00172) 
    ARM926: Unable to determine target status after 20 attempts
    ARM926: Failed to remove the debug state from the target before disconnecting.  There may still be breakpoint op-codes embedded in program memory.  It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
    

    但之后回到dsp的那个项目debug还是报错:

    C64XP: Error connecting to the target: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 9.6.0.00172)

    是我操作的问题吗?只要在arm的那个项目里debug就可以运行 boot_dsp_from_arm 了对吧?

  • 看上面的截图里的报错信息,ARM核也报错不能连。如果之前是可以connect的话,建议联系一下板子厂家确认一下是不是硬件的问题。

  • 那请问有没有这个held in reset 的问题有没有硬件复位的解决方法?比如给RST引脚输入低电平之类的?谢谢!

  • 之前能connect,当时一直是报错与DDR2有关的一个错,然后才知道这个错和GEL文件没有导入有关。第二天在target connection 的 ccxml 里在DSP那个核的初始化脚本上选择了c/ti/ccs1110/ccs/ccs_base/emulation/boards/evmdm6467/gel 里的一个 dsp.gel 然后就开始报现在这个错了,就算从初始化脚本李去掉那个gel 也还是报这个错。可能和这个原因有关。另外第二天重新拔插了电源和仿真器,不知道有没有影响。

  • 1. 如果恢复到"之前能connect“情况还是不能连接的话,应该不是gel文件的 问题。

    2. "重新拔插了电源和仿真器",如果不是带电插拔仿真器的话,应该不会损坏仿真器。

    3. 帖子里是ARM核已经连上,DSP核处于held in reset状态,所以需要ARM gel文件去复位dsp核。但您目前的问题是ARM核都没连上。

    建议先到target configuration file配置界面里点击"test connection"看一下仿真器是否正常?

  • test connection 的结果是正常的,仿真器应该没有坏:

    [Start: Texas Instruments XDS100v3 USB Debug Probe]
    
    Execute the command:
    
    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -F inform,logfile=yes -S pathlength -S integrity
    
    [Result]
    
    
    -----[Print the board config pathname(s)]------------------------------------
    
    C:\Users\wzy\AppData\Local\TEXASI~1\CCS\
        ccs1110\0\0\BrdDat\testBoard.dat
    
    -----[Print the reset-command software log-file]-----------------------------
    
    This utility has selected a 100- or 510-class product.
    This utility will load the adapter 'jioserdesusbv3.dll'.
    The library build date was 'Dec  8 2021'.
    The library build time was '11:16:32'.
    The library package version is '9.6.0.00172'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '4' (0x00000004).
    The controller has an insertion length of '0' (0x00000000).
    This utility will attempt to reset the controller.
    This utility has successfully reset the controller.
    
    -----[Print the reset-command hardware log-file]-----------------------------
    
    The scan-path will be reset by toggling the JTAG TRST signal.
    The controller is the FTDI FT2232 with USB interface.
    The link from controller to target is direct (without cable).
    The software is configured for FTDI FT2232 features.
    The controller cannot monitor the value on the EMU[0] pin.
    The controller cannot monitor the value on the EMU[1] pin.
    The controller cannot control the timing on output pins.
    The controller cannot control the timing on input pins.
    The scan-path link-delay has been set to exactly '0' (0x0000).
    
    -----[The log-file for the JTAG TCLK output generated from the PLL]----------
    
      Test  Size   Coord      MHz    Flag  Result       Description
      ~~~~  ~~~~  ~~~~~~~  ~~~~~~~~  ~~~~  ~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~
        1     64  - 01 00  500.0kHz   O    good value   measure path length
        2     64  + 00 00  1.000MHz  [O]   good value   apply explicit tclk
    
    There is no hardware for measuring the JTAG TCLK frequency.
    
    In the scan-path tests:
    The test length was 2048 bits.
    The JTAG IR length was 6 bits.
    The JTAG DR length was 1 bits.
    
    The IR/DR scan-path tests used 2 frequencies.
    The IR/DR scan-path tests used 500.0kHz as the initial frequency.
    The IR/DR scan-path tests used 1.000MHz as the highest frequency.
    The IR/DR scan-path tests used 1.000MHz as the final frequency.
    
    -----[Measure the source and frequency of the final JTAG TCLKR input]--------
    
    There is no hardware for measuring the JTAG TCLK frequency.
    
    -----[Perform the standard path-length test on the JTAG IR and DR]-----------
    
    This path-length test uses blocks of 64 32-bit words.
    
    The test for the JTAG IR instruction path-length succeeded.
    The JTAG IR instruction path-length is 6 bits.
    
    The test for the JTAG DR bypass path-length succeeded.
    The JTAG DR bypass path-length is 1 bits.
    
    -----[Perform the Integrity scan-test on the JTAG IR]------------------------
    
    This test will use blocks of 64 32-bit words.
    This test will be applied just once.
    
    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.
    
    The JTAG IR Integrity scan-test has succeeded.
    
    -----[Perform the Integrity scan-test on the JTAG DR]------------------------
    
    This test will use blocks of 64 32-bit words.
    This test will be applied just once.
    
    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.
    
    The JTAG DR Integrity scan-test has succeeded.
    
    [End: Texas Instruments XDS100v3 USB Debug Probe]

    重新开了一个arm 工程,load 了一个gel文件,现在debug时报错:

    ARM926: GEL Output: 
    DaVinci HD1080p ARM Startup Sequence
    
    ARM926: GEL Output: Disable IRQ/FIQ
    ARM926: GEL Output: Flush Cache
    ARM926: GEL Output: Disable MMU
    ARM926: GEL Output: Enable Instruction Cache.
    
    ARM926: GEL Output: Setup PinMux...ARM926: GEL Output: [Done]
    ARM926: GEL Output: Setup Power Modules (All on)...ARM926: GEL Output: [Done]
    ARM926: GEL Output: Setup PLL0ARM926: GEL: Error while executing OnTargetConnect(): Target failed to write 0x01C40938
    	 at (*(pll_cmd)|=0x0001) [davincihd1080p_arm.gel:619]
    	 at setup_pll_0(0, 29) [davincihd1080p_arm.gel:655]
    	 at Setup_Pll0_990_MHz_OscIn() [davincihd1080p_arm.gel:43]
    	 at OnTargetConnect()
    ARM926: GEL Output: Disable VPSS
    ARM926: GEL Output: Disable IRQ/FIQ
    ARM926: GEL Output: Flush Cache
    ARM926: GEL Output: Disable MMU
    ARM926: GEL Output: Disable EDMA events
    ARM926: GEL Output: 
    ARM926: GEL Output: Disable VPSS
    ARM926: GEL Output: Disable IRQ/FIQ
    ARM926: GEL Output: Flush Cache
    ARM926: GEL Output: Disable MMU
    ARM926: GEL Output: Disable EDMA events
    ARM926: GEL Output: 
    ARM968_0: File Loader: Verification failed: Target failed to write 0x80000800
    ARM968_0: GEL: File: C:\Users\wzy\Desktop\x264-arm\Debug\x264-arm.out: Load failed.
    

    还是arm核没有连上的原因吗?请问有什么可能的解决办法吗?

  • 看了一下,ARM968_0: File Loader: Verification failed: Target failed to write 0x80000800

    应该和cmd的

    DDR2:         o = 0x80000000  l = 0x20000000  /* 512MB of external DDR */

    有关,

    但重新开了一个dsp工程,依旧 held in reset。

  • 是在gel文件里load .out文件了?之前成功的情况下,也是用了这个gel文件?

    一般流程是在ccs里手动connect,然后手动load .out文件。

  • 我是在这里加载gel文件的。

    之前成功指的是什么?之前遇到的问题就是没有加载gel,无法把程序烧录到外部的DDR2  https://e2echina.ti.com/support/processors/f/processors-forum/217114/tms320dm6467t-c64xp-file-loader-verification-failed-values-at-address-0x80000800-do-not-match

    load .out 是指debug吗?手动 connect 是指 test connection吗?

  • 这个是TI EVM板的gel文件,您的板子硬件和TI的EVM板一样吗?如果不一样的话,需要根据您板子的硬件修改gel文件。建议您联系板子厂家,他们对板子的配置熟悉。