Release Notes — CCStudio™ IDE v20.5.0

Feature release

General Information

These release notes contain important information about CCStudio™ IDE v20.5.0 that may not be included in other product documentation. Please review this document before using this release.

CCStudio IDE v20.5.0 is a feature release. For a summary of changes, see the v20.5.0 What’s New section below.

System Requirements

ⓘ Note

CCStudio IDE is a 64-bit application and will not run on 32-bit operating systems.

Windows
  • Windows 11 64-bit
  • Windows 10 64-bit
Linux
  • Ubuntu 24.04 64-bit
  • Ubuntu 22.04 64-bit
  • Ubuntu 20.04 64-bit
macOS
  • macOS 13 Ventura
  • macOS 14 Sonoma
  • macOS 15 Sequoia
  • macOS 26 Tahoe
ⓘ Note

For more details on platform-specific requirements and installation instructions, refer to the CCStudio IDE User’s Guide.

CCStudio IDE v20.5.0 — What’s New

New Features
Issue Summary
EXT_EP-10818 Need ability to sort names alphabetically

Need ability to sort names alphabetically. This will enhance usability for long register lists.

EXT_EP-12245 Need ability to automatically save build output to a log

Need ability to automatically save build output to a log. This was supported with CCS Eclipse but not in CCS Theia.

EXT_EP-12583 Adding register export for .txt in register view

Support export to file like we do in memory browser for registers view

EXT_EP-12610 Enable command history for Scripting Console

We should enable command history in the new scripting console that persists across CCS launches.

EXT_EP-12881 Using CCS Variables inside CCS Scripting

Provide ability to use CCS IDE variables inside CCS Scripting

EXT_EP-13022 Add support for project migration from TIClang to TI 'cl' compilers

If I have a project that is set to use TI Arm Clang and I change it to use the older TI Arm Compiler we seem to lose all settings. And by all I don't just mean compiler options. Product dependencies are lost. i.e. if the project had a dependency setup for an SDK and SysConfig that is gone. SysConfig options are cleared. User compiler and linker options are gone. While it is understood that some options may not migrate, even ones that are the same between the tool chains (i.e. include) are lost.

EXT_EP-13033 Support the clang compiler option -iquote, which is an alternative to -I

The clang compiler option -iquote is an alternative to -I. It adds a entry to the list of directories searched for files included with the syntax ... {noformat} #include "filename.h" {noformat} Use -iquote on directories that contain a file with the same name as a standard header file, but is not a replacement for that file. Add a way for a CCS project to specify a directory with -iquote.

EXT_EP-13208 Provide ability to interpret register values as floating point

The registers view does not have support for a float format type. Both "Real" and "Scientific" are for decimal. It would make more sense to have those for float like CCS Eclipse.

EXT_EP-13235 Get Started with AI

There should be an UI to guide the user to easily configure the available/supported AI tools for CCS. * Provide a list of tested AI extensions that works for CCS the user can install * Have an UI or instruction to guide the user to configure the installed extension * Provide an UI to guide the user to configure Theia AI with the required information using the standard AI model and customer model

EXT_EP-13237 Implement projectless debug tool in CCS AI

Have a debug MCP tool call to start a projectless debug session.

EXT_EP-13238 User should be prompted to restart CCS when sysConfig MCP version changes

This is to simplify user's workflow when switching sysConfig MCP versions. Advanced users can choose to ignore the prompt and just restart the MCP connection.

EXT_EP-13239 Provide a MCP server to enable LM to interface with the IDE

Create a MCP server that can be used with any LM, such as Claude, Cline, etc.

EXT_EP-13240 Start SysConfig MCP server at startup

Create a SysConfig MCP server (https://modelcontextprotocol.io/docs/getting-started/intro) so that code-assistance agents (Theia AI, windsurf, copilot, etc) will be able to modify SysConfig settings through the tool. Without this, these tools often try to modify the .syscfg script directly which frequently leads to mistakes that are difficult for the user to debug. By going through SysConfig, there will be validation and user feedback as to what is being done.

Bug Fixes
Issue Summary
EXT_EP-10378 Hardware breakpoints are only available on the first device of multiple daisy chained devices

Hardware breakpoints are only available on the first device of multiple daisy chained devices. There are no issues with software breakpoints. Other debug actions like connect, load, run, read/write registers/memory, etc also work fine. Operations like source stepping code in flash (asm stepping is fine) can be impacted since that action could require a breakpoint. There are no issues at all with the first device. Note that bypassing the first device so that only the second device is debuggable does not help. It appears only the device physically first on the scan-chain is unaffected by this issue. It is reproducible with a variety of CCS versions, starting with 9.x to 20.x, and debug probes (XDS100v2/v3, XDS110, XDS200). This issue does not appear with CCS 8.3.1 and earlier.

EXT_EP-10492 Disassembly view doesn't decode a VDIV.F64 instruction in a TMS570LC43x (Cortex-R5 big endian) program

Disassembly view doesn't decode a VDIV.F64 instruction in a TMS570LC43x (Cortex-R5 big endian) program. It is simply displayed as: ".word 0xee810b00". The Cortex-R5 is in ARM mode and changing the Disassembly Style from "Mixed ARM/Thumb" to "ARM Only" didn't make a difference. Looking at the assembler listing saved by the compiler shows the expected VDIV.F64 instruction with the encoding of EE810B00.

EXT_EP-12210 CCS20 variables and watch views show incorrect values for PRU core

CCS20 variables and watch views show incorrect values for PRU core. When you hover over variable name in the Variable or Watch views, it shows address 0x000000@Program Memory, the displayed value is also incorrect (since it's read from that address). CCS Eclipse also shows incorrect value from Program Memory but the address is correct

EXT_EP-12225 User settings don't get preserved after CCS update

User settings don't get preserved after CCS update. Workspace level settings are not affected. Previously installed extensions may also be impacted.

EXT_EP-12629 Watchpoint "Data Mask" and "Data Value" fields for newer C2000 do not work as expected

Watchpoint "Data Mask" and "Data Value" fields for C2000 do not work as expected. A simple example where only bit 0 is toggled and the rest of the bits are cleared, the value of the variable changes from 0 to 1. The expectation of setting a mask of 0x1 and a data value of 0x0 is that the watchpoint would trigger only when the variable value is 0 with bit being cleared. However the watchpoint never triggers despite this being the case. The data value is set to 0x1 (with the mask remaining at 0x1), I would expect the watchpoint to trigger when the variable is 1 with the bit being set. Instead, the watchpoint triggers on every bit toggle regardless of the value of the variable. It is unclear what the expected impact of these fields are and if they are working correctly.

EXT_EP-12665 Endless loop of "Force Reset" dialog prompts

Attempting to launch a debug session for an MSPM0L1307 LaunchPad using the XDS110ISO-EVM debug connection. Something is wrong with the connection and a dialog appears asking if a Force Reset should be performed. It has 2 buttons, OK and Force Reset. If the reset does not work the dialog is shown again. Clicking ok, X, or Force Reset just results in the dialog. being presented again. Even terminating the debug session does not exit this loop. Only way to clear it is to close CCS.

EXT_EP-12742 session.breakpoints.add() does not throw if argument is undefined

Calling session.breakpoint.add() with an undefined argument does not throw an error. On the contrary it successfully made a breakpoint at address 0x00000000.

EXT_EP-12848 Memory page has many unknown views in the dropdown

For the MSPM0 device, the CS_DAP has many 'Unknown View' entries in the memory page drop down.

EXT_EP-12920 Installer text is not readable on Ubuntu in dark mode

Using Ubuntu 22 in dark mode, the installer text is not readable, it works fine in light mode.

EXT_EP-12937 Registers View: Provide number format for floating point

The registers view does not have support for a float format type. Both "Real" and "Scientific" are for decimal. It would make more sense to have those for float like CCS Eclipse.

EXT_EP-12950 Watch/variable view double click action

When double clicking an element, there is no consistent behaviour between watch and variable views, as well as child/parent elements. They should all edit the value of the expression/variable.

EXT_EP-12960 Debug launch stuck with "Reconnecting to TI Cloud Agent" message can happen if CCS is launched with multiple XDS110 based targets connected to the machine

Debug launch stuck with "Reconnecting to TI Cloud Agent" when multiple XDS110 based targets are connected. It doesn't seem to happen with all XDS110 based targets but just particular combination. It can be consistently reproduced with one LP-MSPM0G3507 and one LP-EM-CC2745R10-Q1 (via LP-XDS110). The latter board is likely the key factor. The workaround is to disconnect all the targets but one, then launch the CCS IDE. Then connect the other boards.

EXT_EP-12963 Graph view - set default DSP data type based on graph expression

The default is fixed to 32-bit signed. Set default DSP data type based on graph expression

EXT_EP-12992 Debug launch fails if CCXML is in a path with unicode characters

Debug launch fails if CCXML is in a path with unicode characters.

EXT_EP-13018 Moving a linked resource in a project physically moves the file in the file-system

If a project has a linked resource such as a source file. If you create a folder in your project and drag that linked resource into it the physical file is moved in the file-system from its original location into the folder in your project. In many cases these files are part of the SDK so doing this will break any SDK projects that reference those files. Instead it would be expected that the link would just move into the folder and still point to the file in its original location.

EXT_EP-13019 CCS Watch view does not show correct bit-field values

When debugging code, the Watch windows don't show the correct values for bitfields, when bitfields are updated. The bitfield values are correct when the structures are first initialized, but as they are updated, changed bietfields update to no longer show the enum value, but instead to display the negative value of the enum typedef (such as -1 or -4).

EXT_EP-13028 No source info for disassembly instructions

In some scenarios, there is not any source available in the disassembly view. The PC target does halted at the main function in the editor.

EXT_EP-13030 Debug launch fails if CCS is installed in a path with unicode characters

Debug launch fails if CCS is installed in a path with unicode characters. It only appears to impact Windows and Linux. The Windows Unicode UTF-8 setting will workaround the issue on Windows. A workaround is currently unknown on Linux

EXT_EP-13037 CCS 20.3.1 incremental update breaks advanced editor functionality

CCS 20.3.1 incremental update breaks editor functionality such syntax highlighting, code navigation and most other advanced editor features. Clearing the various CCS cache does not help. The issue only impacts an incremental update to CCS 20.3.1. A full CCS 20.3.1 installation from scratch does not have this issue.

EXT_EP-13046 loading .mjs files give an error in the scripting console

Loading .mjs files give an error in the scripting console. This affects both scripting console and target initialization scripts.

EXT_EP-13050 Limit of ten executable actions are available from the context menu

There appears to be a hard limit of ten executable actions that is available from the project "Executable Actions" context menu. There is not any hard limit in the project properties, however any after ten will not be accessible outside the properties.

EXT_EP-13052 ROV does not show data if it is opened while debug session is starting

ROV does not show data if it is opened while debug session is starting. # Start debug session (debug freertos project) # While session is starting, open a new ROV # Observe that once session is started, ROV is not updated to show the data # ROV needs to be reopened to see the correct data.

EXT_EP-13053 Selected line moves when stepping in disassembly view

Selected line moves by 1 when stepping in disassembly view.

EXT_EP-13054 Existing address watchpoints don't enable in the UI when we connect to target

Existing address watchpoints don't enable in the UI when we connect to target Steps to reproduce: -> Start a debug session and set a watchpoint at an address. -> Terminate debug session. -> Start a projectless debug session. The breakpoint would be unverified. This is expected. -> Connect to target. This sets the watchpoint on the target, but it still shows as unverified in the IDE UI.

EXT_EP-13063 Setting a breakpoint on M33 ignores memory access errors

After changing the memory read/write behavior to use the status buffer, the sw bp code now ignores memory access errors because it provides a status buffer but doesn't check it.

EXT_EP-13065 Debugger should re-assess breakpoint type validity when restoring debug state

The debugger is not aware of hardware breakpoint types until the first connect (when CTools is fully initialized). If symbols are loaded prior to the first connect, a symbolic breakpoint, like the one at C$$EXIT, will not be converted to a hardware breakpoint since the debugger is not yet aware of their existence. This can result in a software breakpoint being erroneously used when the debug state is later restored.

EXT_EP-13082 Disassembly view may be empty on debug session start for some devices

The simple workaround is to refresh the view.   The root cause is the late registration of refresh event handlers in {{{}CCSPinnableWidget{}}}. This was not a visible issue when we relied on the {{targetState.changed}} event for triggering debug views to populate with data. However, we moved away from relying on this event, as doing so was causing other issues. The {{refresh}} event also happens to be the appropriate event to rely on here.   The solution to this issue is to always call {{refreshTargetContent}} on the start of a debug session.

EXT_EP-13085 Debugger full verification is not identifying mismatch between the data in the target memory and actual data in the loaded file

Debugger full verification is not correctly identifying mismatch between the data in the target memory and actual data in the loaded file. This issue doesn't happen in all cases, only with some specific files. The behavior varies depending on the CCS version: CCS 20.4.0: Incorrect CCS 12.8.1: Incorrect CCS 9.3.0: Correct There appears to be no issue with verification done by the flash programmer.

EXT_EP-13122 CCS installer should strongly warn users installing on unsupported macOS versions

Today CCS will let you install on older macOS versions that are not supported. These may or may not work. The installer should detect that these versions are not supported and warn them that the product may not operate properly. In the case of macOS 10.15 (Catalina) we should block installation as it will not work as the Theia IDE prevents execution.

EXT_EP-13123 Update installer should block installing on macOS catalina (10.15)

The Theia we include in CCSv20.4.0 detects if you are running on Catalina and blocks execution. This can be a problem for users who are updating an existing CCS installation. For example you can install CCSv20.3.0 on Catalina and it will run fine even though it is not supported. However if you then update to 20.4.0 your installation will be broken.

EXT_EP-13146 $(GEL_file_dir) macro can only be used once for a function call

It appears that the $(GEL_file_dir) macro can only be used once for a function call. For example: GEL_TextOut("$(GEL_file_dir)/file1.c $(GEL_file_dir)/file2.c\n"); Would result in the GEL output: CORTEX_M0P: GEL Output: C:\ti\ccs1281\ccs\ccs_base\emulation\gel/file1.c $(GEL_file_dir)/file2.c The issue occurs with both CCS 12.8.1 and CCS 20.4.0.

EXT_EP-13154 Disassembly view sometimes only loads with one or two lines of disassembly

Disassembly view sometimes only loads with one or two lines of disassembly. Resizing or collapsing and re-expanding the widget immediately fixes the issue.

EXT_EP-13156 CIO file handling only works with load program not with load symbols

CIO file handling fread/fwrite works ok when using load program, and in such cases, the files are found relative to the location of the loaded program executable. The same should happen when using load symbols, but the files cannot be found.

EXT_EP-13180 CCS doesn't set breakpoint in mapped source file

CCS doesn't set breakpoint in mapped source file. Workarounds include involve typing out the location of the breakpoint manually (either in the scripting console, or in a breakpoint creation dialog). In both cases, the breakpoint is set on the target but it does not appear in the source view.

EXT_EP-13186 Add support for the optional Motorola S5 record type

Motorola S5 record type is not supported. Hence files with this record type can trigger an undefined record type error. According to the documentation, it is an option record for "count" which is typically not used. We can ignore it instead of returning an error.

EXT_EP-13193 Link step fails when .syscfg file and SysConfig-generated files are placed in linked folder

Link step fails when .syscfg file and SysConfig-generated files are placed in linked folder.

EXT_EP-13194 CCS hang (blank screen) when building project

When building the project, the IDE hang and turn into a blank screen. No issues building via CLI. Also, setting project build verbosity to "Super quiet" builds without issue in the IDE.

EXT_EP-13196 DSLite callstack fetch API returning partial stack frames

For a simple recursive function, after stepping into the function a couple of times, each subsequent call doesn't seem to be increasing the number of stack frames returned by the DS.

EXT_EP-13210 Improve build-time for building large projects

The build time for large projects with many source files and build options can be greatly impacted by various security software running on the machine. Some optimizations can be done within CCS to help alleviate this issue. # Build-output verbosity affects build-time. For rule commands, gmake writes each command into a temporary .bat file, then runs that .bat file. Switching to 'super-quiet' removes a few 'echo' commands for every compiled file. Today, build-output verbosity can only be set in workspace preferences. It should be allowed to also implement support for setting it per project. Also, support the ability yo add a new 'automatic' build-verbosity mode, which would auto-reduce verbosity based on project size. This 'automatic' mode should be the default. # Long compile commands affect build-time. CCS currently handles long compile commands by generating a few additional commands for each compile rule - these commands write all flags into a temporary .opt file, then run the compiler with that .opt file. This is a bit inefficient because all this is done at build-time, for each compiled file. This can be improved by pre-checking just the compiler include-path, and writing only the include-path into a separate .opt file during makefile-generation.

EXT_EP-13211 re-enabled HW breakpoints show as SW BPs with no CORE attached when added automatically

If user adds more HW breakpoint than are available on a particular device, the BPs are added, but in a disabled (queued) state. If user then removes one of the HW breakpoint, the queued BP is automatically added by the BP manager, but it shows as if it is added as a SW breakpoint, and also without a corresponding CORE attached.  It seems that the BP is correctly added as a HW breakpoint, but this is not confirmed. NOTE : This breakpoint also cannot be removed by clicking on it in the disassembly view and can only be removed in the breakpoint manager view.

EXT_EP-13212 Hide/disable watch and number format in register context menu for groups/bitfields

The options "Watch" and "Number Format" only works for registers, not groups or bitfields. Should hide/disable the options in the menu.

EXT_EP-13220 Disassembly view does not show breakpoints in UI in some cases

Disassembly view does not show breakpoints in UI in some cases. One example is when debug session is in progress, closing and re-opeing disassembly view will cause the UI for breakpoints to stop working.

Previous Releases

Full release notes for earlier versions are available as individual documents. Each page includes a complete What’s New summary, known issues, and a link to the bug-fix tracker for that release.

📄 View previous release notes
Version Type Highlights Release Notes
v20.4.1 Service Debugger fixes for M33 breakpoints, daisy-chain hardware breakpoints, and full verification mismatch View notes
v20.4.0 Feature Theia IDE core v1.64.1; improved project wizard; macOS 26 support; IDE & debug enhancements; Energia support removed View notes
v20.3.1 Service Secure Debug Manager fix (Windows); MSPM33 macOS flash loader; Arm Clang v4.0.4.LTS; J-Link v8.7.0; device support updates View notes
v20.3.0 Feature Graph view; Python scripting; ARM Advanced Features; new device support (CC35xx, MSPM33, UCD3138R); SysConfig v1.25; C6000 compiler v8.5.0.LTS View notes
v20.2.0 Feature Theia IDE core v1.58; AI/code assistant support; debug view improvements; assembly syntax highlighting; JRE v21; SysConfig v1.24 View notes
v20.1.1 Service Watch/Variable view enhancements; clangd support improvements; CC13x4 program load fix; Windows IDE update fix View notes
v20.1.0 Feature IDE feature improvements; macOS Arm native startup; XDS110 firmware fixes; device support updates (AM62L, xWRL68xx, MSPM0C110x); TI ARM Clang v4.0.2 View notes
v20.0.0 Feature First full-featured release based on Theia IDE; replaces the Eclipse-based v12.x release; new views (Modules, Stack Usage, Memory Map, GEL); broad device family coverage View notes

All Open Issues

The following JIRA query returns all open issues across the CCStudio IDE product areas, including Theia IDE, debug and trace, Resource Explorer, and SysConfig:

Components

For details on all components included in this release, please review the manifest: