Code Composer Studio v5 is based off much newer Eclipse components than v4. CCSv4 used Eclipse 3.2 and CDT 3.1, CCSv5 is currently using Eclipse 3.6 and CDT 7.0. At the bottom of this topic there are links that describe what is new in each of the Eclipse and CDT releases. We will also highlight some of the key changes. Some of the minor functional differences are also highlighted below.
Key Changes and Limitations
- Using "stock" Eclipse and CDT. What this means is that we are no longer branching the Eclipse and CDT source code. This means that CCS will now keep pace with the latest Eclipse and CDT releases so that you will be able to take advantage of any fixes and improvements made. TI will also be contributing fixes and enhancements back to the open source community. The Eclipse and CDT update sites will automatically be checked for updates. This will greatly improve compatibility with other Eclipse plug-ins.
- "Active project" selection. The active project is not selected as soon as you click on a project in the project view.
- Drag and drop support. You can now drag text around within editor windows as well as from the editor to the watch window.
- OS application debug support. This is a benefit of being based on stock Eclipse. The application (run-mode) debuggers for many popular OSs are based on Eclipse. So you can now integrate Application level debug for OSs such as Linux, Android, OSE, Neutrino and Nucleus just to name a few.
- Linux host support: CCSv5 supports both Windows and Linux PCs.
- Command Lined Project Create/Import/Build: Command line to invoke commands is different CCSv4 commands were invoked by executing java with a specific .jar in CCSv5 eclipsec.exe is used. CCSv4 "jre\bin\java -jar startup.jar restOfCommand" ; CCSv5 requries "eclipsec -nosplash restOfCommand"
CCSv5 has many minor improvements from CCSv5. Many of these features come inherent with using a new version of Eclipse. The most notable is the speed and accuracy improvements on the indexer. Detail list of these Eclipse/CDT bug fixes and improvements can be found in the link at the end of this section. Other improvements added by the TI team include:
The Debug View:
- Debug View is cleaner, simpler and more customizable, but it looks and works slightly differently
- No extra “thread” node, no CIO/target error nodes
- Multi-CPU device are listed directly below Project or targetconfiguration node
- Debug View is customizable to display more or less of JTAG hierarchy
- Debug View may be optionally collapsed to a single line to optimize screen real-estate, selections are somewhat similar to address bar behavior in windows explorer on Vista or Win7
You can now specify a dss or js script to perform multi-cpu intialization
- Useful for executing GEL commands on each cpu, loading programs, running past initialization routines.
Persist between debug sessions which cpu’s are visible
- Script accomplished this in CCS v4.x, v5 will have explicit GUI to control this behavior.
Dynamically create custom groups to which commands can be sent to
- E.g. run/halt/step/load program/reset/restart
- Custom created groups are preserved between debug sessions
Status view displays status information for all CPUs (including routers) in a single view.
Other CCSv5 Improvements
- Automatically highlights syntax errors in your source code as you type
- Console view highlights errors in red
- TODO: markers are automatically marked as tasks
- tooltip variable watching is much more detailed
- block selection mode (column editing) Alt+Shift+A
- static call hierarchy, select a function and then select Open Call Hierarchy from the navigate menu or press Ctrl+Alt+H. Type hierarchy and other similar features are also present.
- New quick outline feature. If you don't want to have the outline view open you can access a quick outline by pressing Ctrl+O
- Customizing of toolbars and menu items is much improved. You can finally add or removed individual items instead of just groups.
- Refactoring has been extended.
- drag and drop from the editor to the expressions view works!
- You can open up a web browser window inside CCS (Window->Show View->Other->Internal Web Browser), probably has a shortcut too.
- C/C++ search (smart search) works
- Include browser allows you to drag a file from your project explorer into the include browser and you can see the include hierarchy
- There is a templates view which shows you all the code templates installed and lets you insert them into your code, you can also create and edit them.
- Mylyn is included.
CCSv5 Missing Features
Since CCSv5 is now based on "off-the-shelf" Eclipse components, there are some minor features that are considered 'missing'.
- No inplace editing for columns
- AddExpression command does not support explicit expression formatting
- No Grid mode support
- No bitfield enumerations (e.g. On/Off drop down list vs entering 0 or 1 in the value field)
Variables (v4 ->Locals) and Expressions (v4 -> Watch):
- These views have been renamed to use standard Eclipse names.
- Add global variables is available in Expressions view
- Expression format can be adjusted at view level.
- Defaults are type dependent
- No disassembly style change support
- No cache coloring support; disabled by default in CCSv4
- Does not support address box history
- Memory save/load and other TI specific menus are available from context menu; CCSv4 had toolbar buttons for most some of these.
- Target menu in CCSv4 is replaced by Run menu
- Load Program/Symbols is a drop down rather than a set of dedicated buttons
- Standard Eclipse/CDT help is included
- CCSv5 includes more options which are standard CDT/Eclipse options, including type based search that uses Indexer(C-code parser)
- CCSv4 had these extra search options removed
- CCSv5 does not automatically switch from Debug to C/C++ (i.e. Edit) perspective
Multi-Core Debug (Synchronous Operations):
- CCSv5 does not have a button to enable synchronous operations on all CPUs in debug view. User can create synchronous groups by selecting more than one (or all) cpus, right clicking and selecting "group". This action will create a grouping of CPUs. Selecting the group node and executing load program,run, halt, step will issue the command to all cpus that belong to that group.
CCS Migration Considerations
- From CCSv3.3: CCSv5 has the same CCSv3.3 import utiilty that exists in CCSv4. As a result, you can easily import legacy CCSv3.3 projects.
- From CCSv4.x: CCSv4 managed make files are supported in CCSv5. The manged make internal storage format has changed so Eclipse will do an internal migration automatically. This means that once your CCSv4 project has been converted over to CCSv5, you will not be able to use it in CCSv4.
Version 5.0(Ganymede): http://wiki.eclipse.org/CDT/User/NewIn50
Version 6.0(Galileo): http://wiki.eclipse.org/CDT/User/NewIn60
Version 7.0(Helios): http://wiki.eclipse.org/CDT/User/NewIn70
Version 8.0(Indigo): http://wiki.eclipse.org/CDT/User/NewIn80