MSP432-DEBUGGERS: CCS1271 XDS110 upload fails, but CCS11 upload works fine - same computer

Part Number: MSP432-DEBUGGERS
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

After recent updates to CCS12 (12.8.1.00005), uploads of new executables to MSP432 fail. However rebooting the computer to openSUSE Leap 15.4 with CCS11 makes the upload work fine, same computer, same USB cable same MSP432.

The primary OS on this computer is openSUSE Tumbleweed with the current 6.16.7 kernel. CCS12 was installed July 2024 and worked fine. I also kept the openSUSE 15.4 install with the Linux 5.14.21 kernel which resides on a separate hard drive. There was a recent string of updates to CCS12 on Tumbleweed which brought the version to 12.8.1.00005. Following updates, attempting to upload to the MSP over USB fails with the following error shown in the dialog:

Error initializing emulator:
(Error -260 @ 0x0)
An attempt to connect to the XDS110 failed.
The cause may be one or more of: no XDS110 is connected, invalid
firmware update, invalid XDS110 serial number, or faulty USB
cable. 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 XDS110SupportReadMe.pdf
file there for instructions.
(Emulation package 20.0.0.3178)

So I followed the instructions to flash the latest firmware:

17:28 wizard:.../common/uscif/xds110 # ./xdsdfu -e

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

Scanning USB buses for supported XDS110 devices...


<<<< Device 0 >>>>

VID: 0x0451 PID: 0xbef3
Device Name: XDS110 Embed with CMSIS-DAP
Version: 3.0.0.20
Manufacturer: Texas Instruments
Serial Num: M4321005
Mode: Runtime
Configuration: Standard

Found 1 device.
17:28 wizard:.../common/uscif/xds110 # ./xdsdfu -m

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

Scanning USB buses for supported XDS110 devices...


<<<< Device 0 >>>>

VID: 0x0451 PID: 0xbef3
Device Name: XDS110 Embed with CMSIS-DAP
Version: 3.0.0.20
Manufacturer: Texas Instruments
Serial Num: M4321005
Mode: Runtime
Configuration: Standard

Switching device into DFU mode.
17:35 wizard:.../common/uscif/xds110 # ./xdsdfu -f firmware_3.0.0.32.bin -r

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

Scanning USB buses for supported XDS110 devices...

Downloading firmware_3.0.0.32.bin to device...

That completes fine.

18:48 wizard:.../common/uscif/xds110 # ./xdsdfu -e

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

Scanning USB buses for supported XDS110 devices...


<<<< Device 0 >>>>

VID: 0x0451 PID: 0xbef3
Device Name: XDS110 Embed with CMSIS-DAP
Version: 3.0.0.32
Manufacturer: Texas Instruments
Serial Num: M4321005
Mode: Runtime
Configuration: Standard

Found 1 device.

However, attempting to load a new executable from CCS12 -- fails with the same error. So then I reboot the computer back into openSUSE Leap 15.4 with CCS11 to verify uploads continue to work with the new firmware flashed onto the MSP. It works fine and loads new executables without any problem at all.

So somewhere between CCS11 and CCS12 and openSUSE Leap 15.4 and Tumbleweed, something broke the ability for CCS12 to upload to the MSP. I need CCS12 to work as I can't reboot every time I need to upload a new program to the MSP. I am happy to help troubleshoot and can provide anything that you may need to see to diagnose the issue. I'll just need your help in identifying what that is (logs, driver files, etc...)

I have CCS12 installed to /opt/ti:

$ ls -al /opt/ti
total 20
drwxr-xr-x 5 david david 4096 Jul 18 2024 .
dr-xr-xr-x 10 root root 4096 Nov 24 2024 ..
drwxr-xr-x 4 david david 4096 Jul 28 15:43 ccs1271
drwxr-xr-x 8 david david 4096 Jul 18 2024 simplelink_msp432p4_sdk_3_40_01_02
drwxr-xr-x 10 david david 4096 Jul 18 2024 xdctools_3_60_02_34_core

Uploading used to work from CCS12 on this box when CCS12 was installed a little over a year ago. I don't use CCS all of the time and may go several months between uses, so I'm not sure when exactly whatever changed broke the uploads, but I do know that when I started CCS12 a few weeks ago, there were many updates downloaded and applied and uploads have not worked since then. It has to be something simple, but what?

Let me know what else I can provide and I'm happy to do it.

  • Hi,

      I will forward your questions to our CCS experts for comments. 

  • Hi David,

    Can you try installing the same CCS 11 on Leap on to Tumbleweed and see if it works in that environment?

    Please note that openSUSE is not an officially supported Linux environment so the level of support we can provide for this environment will be limited.

    Thanks

    ki

  • Will do. I can install CCS11 on Tumbleweed. I have been using CCS on openSUSE since CCS6 ? Never any issue. Also, is there a way to link my old account with this one? Since I didn't log in for one year, my account was closed and now all my question history is gone. Username is the same 'hwdev' the old account is 'rankinlawfirm.com' the new one I had to create is '3111skyline.com' (both resolve to the same IP). I tried registering a new account under the old name which appeared to succeed - but login would always fail. The old account details all the use of openSUSE as the OS without issue.

    Thanks, I'll put CCS11 on Tumbleweed and report back.

  • Well, Bad news CCS11 fails to install with the error dialog:

    CCS_ERROR: Unable to install executable /tmp/ccs_5ecd75b0-5691-4545-596b-796baaf97925/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin: Error running /tmp/ccs_5ecd75b0-5691-4545-596b-796baaf97925/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin --prefix "/opt/ti/ccs1120/ccs" --eclipseprefix "/opt/ti/ccs1120/ccs/eclipse" --mode unattended --installer-log "/opt/ti/ccs1120/ccs/install_logs/20250923201553" --ccs true: child process exited abnormally.
    Do you want to retry?

    Check from the command line fails as well, but did give more information (SELinux was disabled to begin with), e.g.

    20:28 wizard:/tmp # /tmp/ccs_5ecd75b0-5691-4545-596b-796baaf97925/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin --prefix "/opt/ti/ccs1120/ccs" --eclipseprefix "/opt/ti/ccs1120/ccs/eclipse" --mode unattended --installer-log "/opt/ti/ccs1120/ccs/install_logs/20250923201553" --ccs true
    Unable to initialize installer.
    Is /tmp writable ?
    Is SELinux enabled? You may need to disable it temporarily
    Please see below for details
    docs.fedoraproject.org/.../index.html
    20:29 wizard:/tmp # sestatus
    SELinux status: disabled

    So I'm stuck at this point. CCS12 does everything except upload to the MSP (compilation is fine, etc..). CCS11 won't install. I haven't tried CCS20 yet, but if given the choice I'd probably rather try the VSCode extension. Which may be an issue as well depending on how the extension end-points are set. I use VSCodium (VSCode minus the MS telemetry). Beginning in March? April? MS began denying extensions to anything other than official VSCode builds. Depending on whether the TI-Embedded extensions is affected by this will dictate whether I can install it.

    I do note the VSCode extension uses openocd to handle communication with the boards (similar to what I use for the Pico boards). So I already have openocd installed. Is there a device file I can use with openocd to directly upload to the MSP from the command line? If so, I can reinstall CCS12 and it will do everything I need and then upload to the MSP manually.

  • I would recommend CCS 20 over the TI VS Code extension. The extension is quite limited in both functionality and device support. 

    If you do explore the extension, it comes bundled with everything you need, including a version of openocd. We recommend you use this version since it has been tested with the extension. If you want to run things manually, then you can do this outside the extension by directly using gdb+openocd.

  • Well, thank you. I'll try CCS20. My ultimate preference is simply doing everything from the command line. It's been 4-5 years since I looked for documentation on handling everything from the command line, and at that point it was uniflash. I'll also do another search for use of openocd with the MSP. If you have a favorite link, I'll take it. I'll report back with results.

  • I don't have a favorite link but there should be some information out there, especially for MSP. I recall several guides out there where I first experimented with GDB+openOCD CLI.

  • Thank you! That looks like the way to go, CCS20 fails to install for the same reason. I suspect Tumbleweed being a rolling release, is just well ahead (kernel and package version wise) of what even CCS20 was developed for. For example, as a dependency I had to install the old python3.9 base requested by the CCS20 installer. Fine, but python3.13 is current. There were two older versions of libnsl (1.0) where libnsl (2.0) is installed and libtinfo which is no more.

    The error dialog complained about the blackhawk component:

    CCS_ERROR: Unable to install executable /tmp/ccs_968318ca-2644-4f95-50c8-b61bce2a2a58/BLACKHAWK_EMUPACK/bh_emupack_setup64_9.0.0.002.bin: Error running /tmp/ccs_968318ca-2644-4f95-50c8-b61bce2a2a58/BLACKHAWK_EMUPACK/bh_emupack_setup64_9.0.0.002.bin --prefix "/opt/ti/ccs2030/ccs" --eclipseprefix "/opt/ti/ccs2030/ccs/eclipse" --mode unattended --installer-log "/opt/ti/ccs2030/ccs/install_logs/20250925192824" : child process exited abnormally.
    Do you want to retry?

    SELinux is disabled, so CCS is just a no-go now on openSUSE Tumbleweed until the CCS dependencies catch up to current package versions.

    I'll see if I can make openocd work. I already have the arm-none-eabi compiler and gdb installed as well as openocd. The device file for the msp432 is the only thing missing for uploads. Though without CCS installed, I won't have the needed board files, headers, etc.. (Now I wish I wouldn't have uninstalled 12.8.00005, it worked fine for building files, but I suspect it will no longer install either)

    If anybody else can think of another silver bullet to try I'm happy try it. The error log for both CCS11 and CCS20 failed installs were submitted under this e-mail as part of the abort install procedure.

    CCS12 no longer installs either -- I've reported this on the openSUSE general mailing list and will see if it may not be some new security measure that is preventing the install from finishing from /tmp. This Tumbleweed install has apparmor, so that may have some new "feature" that is preventing the install. Will report back.

  • For example, as a dependency I had to install the old python3.9 base requested by the CCS20 installer.

    You can ignore that dependency if you are not using mmWave devices.

    The error dialog complained about the blackhawk component:

    CCS_ERROR: Unable to install executable /tmp/ccs_968318ca-2644-4f95-50c8-b61bce2a2a58/BLACKHAWK_EMUPACK/bh_emupack_setup64_9.0.0.002.bin: Error running /tmp/ccs_968318ca-2644-4f95-50c8-b61bce2a2a58/BLACKHAWK_EMUPACK/bh_emupack_setup64_9.0.0.002.bin --prefix "/opt/ti/ccs2030/ccs" --eclipseprefix "/opt/ti/ccs2030/ccs/eclipse" --mode unattended --installer-log "/opt/ti/ccs2030/ccs/install_logs/20250925192824" : child process exited abnormally.
    Do you want to retry?

    This looks related to the issue reported below. Perhaps the workaround suggested there can provide some clues to help:

     RE: CCSTUDIO: CCS 20.1 Installation Problem: Blackhawk breaks installation 

  • Whoop! I'll be damned -- CCS20 install completed fine after creating the start_udev file (which means the install of CCS12 and CCS11 will also likely succeed as well). That should be fixed in the installer, the start_udev file isn't present anymore.

    I'll get things configured in CCS20 (that usually takes a while to hunt through all the dialogs) and build a test executable and see if I can upload to the MSP. 

    Thank you Ki for finding that link. We can add it works for openSUSE Tumbleweed to the list :)

    ========================

    Well CCS20 is VSCode - so now I have 2 versions of VSCode on my computer. But regardless, I can't get CCS20 to compile my projects. I try Project->Properties and select the clangd compiler instead of the the old CCS 2.6 LTS compiler that is no more. The dialog will not let me save the configuration. The error is:

    [0]**** Clean-only build of configuration 'Debug' for project 'timer_a_blink_rate_nortos_ccs' ****

    [1]/opt/ti/ccs2030/ccs/utils/bin/gmake -k -j 4 clean -O

    [2]rm -rf "timer_a_blink_rate_nortos_ccs.out"
    [3]rm -rf "system_msp432p401r.obj" "timer_a_blink.obj" "ccs/startup_msp432p401r_ccs.obj"
    [4]rm -rf "system_msp432p401r.d" "timer_a_blink.d" "ccs/startup_msp432p401r_ccs.d"
    [5]Finished clean

    [6]**** Build finished ****
    [7]Buildfile generation error occurred..
    [8]This project was created using a version of compiler that is not currently installed - 20.2.6.LTS [MSP432].
    [9]Build stopped..

    How do I update the compiler so my existing projects in my workspace use it?

    Also, I tried reinstalling 12.8 with the udev_start fix, but it failed. The full output from the end of the install log is:

    Extracting compressed file /opt/ti/ccs1271/ccs/ccs_base/.metadata/.tirex/mspm0-device-support.package.tirex.json
    [21:08:04] CCS_INFO: Done installing zip file MSPM0 mspm0_device_support_linux_1.09.01.01.zip
    Creating directory /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED
    Creating directory /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/features
    Unpacking files
    Unpacking /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin
    Unpacking /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/content.xml
    Unpacking /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/artifacts.xml
    Unpacking /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/features/com.ti.cgt.dmed.linux_1.1.6.jar
    [21:08:04] CCS_INFO: Installing DMED
    Executing chmod -R 755 "/tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin"
    Script exit code: 0

    Script output:


    Script stderr:


    [21:08:05] showprogress = false
    [21:08:05] CCS_INFO: Installing /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86
    .bin
    [21:08:05] CCS_INFO: Actual executable /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_instal
    ler_x86.bin
    Executing /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86.bin --prefix "/opt/ti
    /ccs1271/ccs" --eclipseprefix "/opt/ti/ccs1271/ccs/eclipse" --mode unattended --installer-log "/opt/ti/ccs1271/ccs/ins
    tall_logs/20250927210234" --ccs true
    Script exit code: 1

    Script output:
    Unable to initialize installer.
    Is /tmp writable ?
    Is SELinux enabled? You may need to disable it temporarily
    Please see below for details
    docs.fedoraproject.org/.../index.html

    Script stderr:
    child process exited abnormally

    It doesn't look like CCS20 has a compiler for the MSP432P401R?? I try and select TI Clang v4.0.3.LTS, but the dialog [Save and Close] will not do anything, neither save or close.

    Ideas?

    =======================

    I have 12.7.1.00001 reinstalled. The workaround (which will work for ccs11 also) was found here: https://aur.archlinux.org/packages/ccstudio The update to 12.8.00005 did not happen (result of the DMED workaround?) But I can build and upload to the MSP432P401R just fine -- that I couldn't do after all the files updated.

    I'll see if I can get the updates to work to 12.8 and see if the ability to upload starts to fail. I never did get CCS20 to build. It did autoreconfigure my project finally and I was able to switch compilers to clang, but even with the simplelink standalone package installed, it still cannot find the needed files (I added the include paths and it did build to the point of failure). That's for later.

    =======================

    I hate it when this happens, but I think I've got an base understanding. I let the 12.7.1 install fully update to 12.8.1.00005. Building and loading the executable works! So that leaves two suspects since there were two modifications required to install and the second I had to apply again after update:

    1. replace /tmp/ccs_062723ed-8162-4277-618c-0e2e60f90ba1/DMED/ti_cgt_dmed_1.1.6_linux_installer_x86
    .bin with the short script that simply returns success;

    2. set execstack -c on ccs1271/ccs/ccs_base/common/bin/libMiniDump.so

    I'll have to research further, but if libMiniDump.so is used during load of the executable to the MSP - then that may be the issue. Beginning around glibc-2.41 the execute bit was removed from pages allocated for stack use. https://www.phoronix.com/news/Glibc-WA-Steam-Exec-Stack That would affect the ability for  libMiniDump.so to do whatever it does executing code from the stack. Tumbleweed currently uses glibc 2.42, and the Jan/Feb 2025 update to glibc 2.4.1 would fall in the middle of the time between my install of CCS12 and the issue that started this forum question.

    So with 12.8 working with the modifications above -- do I need to uninstall CCS20? I haven't been able to get it to build the projects in my workspace, and the automanagement of the project seems like it will mess up the project config of existing projects (I have about 40 in my workspace). So is it best to just uninstall CCS20?