Cannot connect ICE-2000 to custom board with ADSP-SC572

We have a custom board with an ADSP-SC572. We've checked what seems to be everything: power rail ramps, reset, clock, and everything seems fine. The ICE-2000 looks like it wants to connect but then we get a FAULT LED on the board and this message in the tool: Error: Failed to connect to target., Code=0x80047344

We know the ICE-2000 works, so it's not the tool. (checked it with a demo board). We have a full license, so it's not a problem where the ICE-2000 is crippled where the ICE-1000 isn't. (And the ICE-1000 we have shows the same behavior as the ICE-2000)

JTAG testing seems fine.

We have a source oscillator of 24MHz feeding CLKIN0, and we do see SYS_CLKOUT doing the right thing.

Has anyone else had trouble connecting to the ARM of an ADSP-SC57x?

  • Nevermind. It was a tool problem. At least it wasn't our hardware!

  • +1
    •  Analog Employees 
    on Mar 11, 2019 12:31 PM

    Hello,

    From the information that you have shared, we think that this problem due to the preload file that you have used for SC572. Can you please check your preload file have the modifications and is suitable for SC572.

    CCES 2.0.0 (and later) supports the concept of preload files for the ADSP-SC5xx processors, which are equivalent to init codes, but used during the debugging phase of development.

    Preloads are added automatically to debug Configurations when there is an EZ-Kit available for the selected processor (ADSP-SC584, ADSP-SC589, ADSP-SC573). If no EZ-Kit is available, no preload is specified by default as the configuration performed by the preload will need to be tailored to your custom hardware, for which the default one may not be appropriate.

    When your hardware is similar to an EZ-KIT, as a basis for building a preload code executable for your own custom hardware. Alternatively, there are unconfigured preload code projects that might be a better starting point when your target is less like an EZ-KIT.

    The CCES installation provides the source code and project files of preload code for ADSP-SC58x processors in the directory:
    <installation path>:\Analog Devices\CrossCore Embedded Studio <version>\SHARC\ldr

    Also please refer the below FAQ for more information about how to create/modify the preloaded program and .ld file for the custom target on ADSP-SC5XX:
    FAQ: Preload code customization
    ez.analog.com/.../faq-preload-code-customization

    Please refer the below CCES help path:
    CrossCore® Embedded Studio> Integrated Development Environment > Debugging Targets > Debugging ADSP-SC5xx SHARC+ and ARM Projects > About Preload Files

    If you are still facing issues,please note that this issue may be due to session configuration problem. Can you please try once again by deleting the existing debug configurations and import a project as fresh and create a new debug configuration and see if you are facing the same behavior. Also reset the board once before load the code.

    Please let us know if you facing this issue with all projects or with any specific project? Can you please try with simple project and let us know how you gets on.

    Have you ever been able to connect to your ADSP-SC572 target board, or is this the first time you're trying to connect?

    Also, try to clean your project and build again. please confirm whether a dxe file is created in your project after building successfully.

    As you're using a custom board can you please confirm that it complies with the JTAG Technical Reference Guide EE-68, which is available online at the following location: http://www.analog.com/ee68

    Best regards,
    Santha kumari.K

  • Hi again. Now we're having essentially the opposite problem. I have another design, this time WITHOUT L3 memory, and our software guys are having trouble getting Crosscore to talk to this board. The ICE2000 seems to load the preload file, but then fails on loading the main app. Any thoughts????

  • 0
    •  Analog Employees 
    on Jan 30, 2020 12:58 PM in reply to TonyKaravidas

    Does the application use a suitable linker script? The default linker script places code and data into L3, so when that's not present, loading fails.

    A default L2 linker script is provided with the toolchain. To use it, add the following to the Linker->Additional Options page of the project's Tool Settings:

    -Tadsp-sc572.ld
    -Tadsp-sc57x-common-l2.ld

    Please note though that the linker script assumes a set partitioning between the ARM and SHARC cores, so it only uses part of the L2 memory.