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.

Error SC_ERR_XDS110_OPEN unable to connect to Tiva C

Other Parts Discussed in Thread: TM4C1294NCPDT, ENERGIA, EK-TM4C1294XL, LMFLASHPROGRAMMER, UNIFLASH

Code Composer Studio Version: 6.1.0.00104

OS: Linux Mint 17.1 Cinnamon 64-bit Version 2.4.8

Target board: Tiva TM4C1294NCPDT

In setting up my first project I attempted to "test" the connection on the "General Setup" tab and received the following in a pop window:

[Start: Texas Instruments XDS110 USB Debug Probe_0]

Execute the command:
%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity
[Result]
-----[Print the board config pathname(s)]------------------------------------
/home/dbristow/.ti/ti/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 'libjioxds110.so'.
The library build date was 'Feb 19 2015'.
The library build time was '02:33:39'.
The library package version is '5.1.641.0'.
The library component version is '35.34.40.0'.
The controller does not use a programmable FPGA.
An error occurred while hard opening the controller.
-----[An error has occurred and this utility has aborted]--------------------
This error is generated by TI's USCIF driver or utilities.
The value is '-260' (0xfffffefc).
The title is 'SC_ERR_XDS110_OPEN'.
The explanation is:
An attempt to connect to the XDS110 failed.
The cause may be one or more of: invalid firmware update, invalid
XDS110 serial number, or faulty USB connection. The firmware and
serial number may be updated using the xdsdfu utility found in
the .../ccs_base/common/uscif/xds110 directory of your
installation. View the ReadMe.txt file there for instructions.
[End: Texas Instruments XDS110 USB Debug Probe_0]

from a terminal I run lsusb

dbristow@stjean ~/myApps/ti/ccsv6/ccs_base/common/uscif/xds110 $ lsusb
Bus 002 Device 013: ID 1cbe:00ff Luminary Micro Inc. Stellaris ROM DFU Bootloader
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 04b3:3025 IBM Corp. NetVista Full Width Keyboard
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

then xdsdfu
dbristow@stjean ~/myApps/ti/ccsv6/ccs_base/common/uscif/xds110 $ ./xdsdfu -e

USB Device Firmware Upgrade Utility
Copyright (c) 2008-2014 Texas Instruments Incorporated.  All rights reserved.

Scanning USB buses for supported XDS110 devices...


<<<< Device 0 >>>>

VID: 0x1cbe    PID: 0x00ff
Device Name:   Device Firmware Upgrade
Manufacturer:  Texas Instruments
Serial Num:    0.1
Mode:          DFU

Found 1 device.

I've followed the instructions in the ReadMe.txt in the xds110 directory.. to no avail! oh except now I Energia can't find the port!

I've tried to find a solution in this forum and many response to USB issues I've looked at, I've uninstalled and reinstalled the drivers..

  • Hi,

    Interesting. If you are using the TM4C129 Launchpad, you should be configuring your device using Stellaris ICDI connection, and not XDS110.

    If you haven't done so, can you try to do this and retest?

    Regards,

    Rafael

  • David Bristow97 said:
    Bus 002 Device 013: ID 1cbe:00ff Luminary Micro Inc. Stellaris ROM DFU Bootloader

    If you are using a EK-TM4C1294XL LaunchPad, then as Rafael says the target should be "Stellaris In-Circuit Debug Interface" rather than "Texas Instruments XDS110 Debug Probe".

    Also, the USB information indicates that connected device is running the ROM bootloader, which means CCS won't be able to connect to the target. Some possible reasons:

    1) The computer is connected to the "Target USB" connector rather than the "DEBUG" USB connector.

    2) The computer is connected to the "DEBUG" USB connector, but the "Stellaris In-Circuit Debug Interface" firmware in the EK-TM4C1294XL has been erased. The LMFLASHPROGRAMMER has the ability to re-program the "Stellaris In-Circuit Debug Interface" firmware. However,  LMFLASHPROGRAMMER is a Windows program and I don't know an equivalent for Linux.



  • I downloaded the LMFlashProgrammer and installed it on a Windows 7 machine. On the config tab I select the 1294 board then selected the program tag it wants a .bin file, which I assume is the firmware that had gotten erased? where does one get that bin file and what specifically am I looking for?
    Could the Uniflash application provide similar functionality to the LMFlashProgrammer? It's available for both Windows and Linux and can be found at www.ti.com/.../uniflash
  • David Bristow97 said:
    On the config tab I select the 1294 board then selected the program tag it wants a .bin file, which I assume is the firmware that had gotten erased? where does one get that bin file and what specifically am I looking for?

    The ICDI firmware in built into the LMFlashProgrammer.

    Go to the "Other Utilities" tab and use the ICDI Firmware Update button.

  • I also had to install the ICDI drivers for windows, then everything worked, I've got my board back to where I started ie I can use Energia on Linux Mint and it sees the board on /dev/ttyACM0. Now to go try and get ccs to work! Thanks for pointing me the right direction.

    Just tried CCS and this time I selected the Stellaris ICDI in the target config and when I click the debug icon the "Hello World" application I get

    "CORTEX_M4_0: Error connecting to the target: Frequency is out of range." I have installed the Stellaris driver using the script in ti/ccsv6/install_scripts


    I've run across this error in this forum...

  • Hi,

    Unfortunately this error is inside the Stellaris debug protocol and is the same for almost every possible issue that may happen with a bad JTAG connection, thus making the debugging a very difficult task.

    However, I was able to connect on my Ubuntu 14.04/64 without problems. Check below the settings I used, as well as the output of the "lsusb" command.

    When you ran the install scripts, did you do it as sudo?

    Regards,

    Rafael

  • No I did not initially install CCS as root/sudo, so I just un-installed it and installed it from root. I verified that the lsub reported teh presence of the ICDI and it did:

    stjean install_scripts # lsusb
    Bus 002 Device 019: ID 1cbe:00fd Luminary Micro Inc. In-Circuit Debug Interface
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 022: ID 04b3:3025 IBM Corp. NetVista Full Width Keyboard
    Bus 001 Device 021: ID 046d:c52b Logitech, Inc. Unifying Receiver
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    I then launched CCSv6 from my desktop icon and opened the debug perspective. I still get the same "Frequency is out of range." and all I see in the debug window is the first line in yours in the left window.

  • David Bristow97 said:
    I still get the same "Frequency is out of range."

    I have seen CCS report that error when there is a missing dynamic library. See ccs6 beta 4 unable to access Tiva Launchpad on CentOS 6.5 for how using load_ti to load a program can report a more detailed error if there is a missing dynamic library.

  • I checked the various install logs in the /opt/ti/ccsv6/install_logs directory, but found no complaints. However I did look in the /usr/lib and found libusbmuxd.so.1.0.8 libusbmuxd.so.2 so as root I installed libusb, as the reference was for Centos and I'm running Linux Mint my command were different:
    sudo apt-get install libusb-1.0-0-dev
    and as Mint puts the result in a different location the link is:
    sudo ln -s /lib/x86_64-linux-gnu/libusb-1.0.so.0.1.0 /usr/lib/libusb-1.0.so

    But to no avail! I still have "Frequency is out of range." do I need to uninstall and reinstall?
  • David Bristow97 said:
    But to no avail! I still have "Frequency is out of range." do I need to uninstall and reinstall?

    As I suggested previously, try using loadti.sh to load a program as if there are missing shared libraries that can give more diagnostics than CCS - which simply reports "Frequency out of range".

    Also, when you installed did you follow the steps in http://processors.wiki.ti.com/index.php/Linux_Host_Support_CCSv6#Linux_Mint_16_.26_17_.28Cinnamon.29_64bit ?

    [I haven't got Linux Mint so can't comment on if the instructions are missing a step to set CCS 6 to work with the Stellaris ICDI interface]

  • I did follow the steps at the URL you pointed to.


    I tried using loadti.sh, (sorry I missed that suggestion earlier) which resulted in the following

    stjean loadti # ./loadti.sh -c /home/dbristow/workspace_v6_1/hi/targetConfigs/TM4C1294NCPDT.ccxml -x /home/dbristow/workspace_v6_1/hi/log.xml /home/dbristow/workspace_v6_1/hi/Debug/hi.out

    ***** DSS Generic Loader *****

    START: 06:35:20 GMT-0600 (MDT)

    Configuring Debug Server for specified target...
    Done
    TARGET: Stellaris In-Circuit Debug Interface
    Connecting to target...
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    ASSERT FAILED (find_lmicdi:122): (rc == TRUE) == 0
    WARNING: pfn 'libusb_get_device_list' is NULL.  Skipping call.
    WARNING: pfn 'libusb_free_device_list' is NULL.  Skipping call.
    SEVERE: CORTEX_M4_0: Error connecting to the target: Frequency is out of range.

    SEVERE: emulation failure occurred
    SEVERE: Error connecting to the target: emulation failure occurred
    Error code #4001, could not connect to target!
    Aborting!

    END: 06:35:20 GMT-0600 (MDT)

  • David Bristow97 said:
    Failed to load dynamic library: 'libusb-1.0.so' (libusb-1.0.so: wrong ELF class: ELFCLASS64)
    OSALDebugEnum: Error dynamically loading libusb (rc = -1)

    That error is because libusb-1.0.so is a 64-bit library, whereas CCS 6 is a 32-bit program.

    David Bristow97 said:
    However I did look in the /usr/lib and found libusbmuxd.so.1.0.8 libusbmuxd.so.2 so as root I installed libusb, as the reference was for Centos and I'm running Linux Mint my command were different:
    sudo apt-get install libusb-1.0-0-dev
    and as Mint puts the result in a different location the link is:
    sudo ln -s /lib/x86_64-linux-gnu/libusb-1.0.so.0.1.0 /usr/lib/libusb-1.0.so

    Those commands linked to the 64-bit libusb-1.0.so.0.1.0 to /usr/lib/libusb-1.0.so which is supposed to be the 32-bit version, which is what has caused the "(libusb-1.0.so: wrong ELF class: ELFCLASS64)" error.

    I think you need to use the following to install the 32-bit version of libusb:

    sudo apt-get install libusb-0.1-4:i386

    sudo ln -s /lib/i386-linux-gnu/libusb-1.0.so.0.1.0 /usr/lib/libusb-1.0.so

    [I am not sure if the source filename for ln is correct, as haven't got Linux mint]

    Once making this change, try loadti.sh first - and if load loadti.sh is successfull try using CCS to load the program.

  • FIXED IT!! I had the wrong libusb a 64 bit one and your suggestion worked