content summary - texas instruments...
TRANSCRIPT
Content Summary
• This presentation is split into different sections
so that it can be used for multiple purposes
• Section 1: General Overview
• Section 2: Targeted at existing CCS users and
why they should upgrade
• Section 3: Provides details on common
questions
• Section 4: Slide version of a product demo
showing off some of the cool features
Code Composer Studio v4
Introduction
Code Composer Studio Summary
• What is CCS?
– Integrated development environment for TI embedded processors
– Based on Eclipse open source software framework
– A suite of development tools for compiling, editing, debugging, profiling
and analyzing embedded applications
• Why Eclipse?
– Quickly becoming a standard for IDEs
– Excellent software architecture
– Ability to leverage the work of others
– Wide selection of 3rd party plug-ins available
• What device families does CCS support?
– MSP430, C6000, C5000, C28x, DaVinci, Sitara, OMAP, TMS470,
TMS570, Stellaris…
2/4/2010 3
CCSv4 Pricing Summary
Item Description Price
Platinum Eval Tools Full tools with time limit FREE
Platinum Bundle EVM/DSK, sim, XDS100 use FREE
Platinum Node Locked Full tools tied to a machine $1995
Platinum Floating* Full tools shared across machines $2995
Microcontroller Core MSP/C2000 code size limited FREE
Microcontroller Node Locked MSP/C2000/Stellaris $495
Microcontroller Floating* MSP/C2000/Stellaris $795
*3, 5, 10, 25 user bundles available as well
Part #s: http://tiexpressdsp.com/index.php/Licensing_-_CCSv4#Part_.23s
Key Features & Benefits
• Superior code development environment speeds design and
troubleshooting with an advanced editor and features such as code
completion, code folding, local history of source changes, markers and the
ability to associate tasks with source lines.
• Advanced GUI framework simplifies data and project management through
the creation of perspectives with full customization of menus, toolbars and
'fast views' that enable developers to define the functionality and views
appropriate to specific tasks.
• Extend the environment with a wide selection of plug-ins including static
code analysis, source code control, modeling and scripting development.
• Multi-processor debugging intelligently manages status and information
from multiple cores without the confusion that arises when each core
requires its own separate debugger.
• Debug server scripting interface enables the automation of common tasks
such as code validation and profiling.
• Update manager tool automatically manages tool updates.
#1 Resource for Information
• CCSv4 Mediawiki
– http://tiexpressdsp.com/wiki/index.php?title=Category:
Code_Composer_Studio_v4
– Documentation
– FAQs
– License info
– Training
– Downloads
Getting Support
• See if the question is already answered
– Check the FAQs and topics on the wiki
– Search the e2e forums
• Post a question or issue to the Code Composer
Studio or TI C/C++ Compiler forums on e2e
community
– www.ti.com/e2e
• Check the status of a bug
– https://cqweb.ext.ti.com/pages/SDO-Web.html
– Can create your own queries to track issues important
to you
XDS100: Product Brief
• Robust and efficient JTAG emulation controller
– Plug in and play operation.
• Compatible with Code Composer Studio
• Support for– XDS100 v1: c28x, 54x, 55x, 674x processors
– XDS100 v2: ARM7/9/M3/R4/A8 and 64x+
• Available from TI E-store: $79– Also available from: Spectrum Digital,
Blackhawk, Olimex, Realtime, SEED, ZLG, Bilkon, Pantech, etc.
– Build your own!
• Additional information: http://tiexpressdsp.com/wiki/index.php?title=XDS100
2/4/2010 9
BENEFIT DETAILS
Reasons for an existing user to upgrade
2/4/2010 10
Windowing Environment
• Problems:
– Today’s embedded IDEs offer a large selection of
features however fitting all of your windows into the
IDE is a challenge
– You use different windows at different times
• Solutions:
– A comprehensive windowing solution that allows you
to maximize the available screen space but still have
all functionality at your finger tips
– Ability to create different perspectives that have the
windows that you use most for a given development
activity readily available
2/4/2010 11
CCSv3.3 Environment
Limited space for windows
Often have to make windows small
Can only have a few windows open
2/4/2010 12
CCSv4 Environment
Tabbed editor windowsTab data displays together
to save space
Fast view windows don’t display
Until you click on them
Perspectives contain separate
window arrangements depending
on what you are doing.
Customize toolbars & menus
2/4/2010 13
Source Code Editor
• Problem:
– Most IDEs contain an editor with limited functionality
requiring the purchase of an additional external editor
• Solution:
– CCSv4 includes an excellent editor with equivalent
functionality to the majority of commercial editors
• Code completion (auto-parameter info…)
• Jump to definition/declaration
• Outline view of current source file
• Local history of source file changes
• Compare files
• Back/forward/back to last edit location
• …
2/4/2010 14
Multi-processor Environment
• Problem:
– Many devices today include more than one processing core and
often reside in a system with many other devices. Displaying
debug information from many different cores typically requires
many IDE windows.
• Solution:
– CCSv4 allows you to have a single IDE window and to change
the debug context of the IDE to any of the cores in the system.
– You can also “pin” the context of a debug display to a specific
core.
• If desired you can open a top level IDE for any core
2/4/2010 15
CCSv3.3 Multi-core Environment
Separate top level IDE windows for each core
Can actually run out of windows resources
Parallel debug manager to see status of all
cores
2/4/2010 16
CCSv4 Multi-core Environment
Use the Debug view to select the context
Displays show content for the current debug
context
2/4/2010 17
Project Management
• Problem:
– Typically you have more than one project on going at
a time, with each project being at a different stage in
development and often using different versions of
compile tools or operating systems.
• Solution:
– CCSv4 allows you to set the version of the compiler
and DSP/BIOS that each individual project will use.
Allowing projects in maintenance mode to continue to
use the tools they were deployed with and enabling
new projects to use the latest high performance tools
2/4/2010 18
Tool Integration & Customization
• Problem:
– More than just an embedded debugger is required
during product development
• Solution:
– CCSv4 is based on Eclipse which has a huge
selection of 3rd party plug-ins available (code
analysis, source code control, modelling, Perl
development…)
• http://www.eclipseplugincentral.com
– The Eclipse plug-in development environment allows
for the creation of your own custom tooling
• Wizards for creating plug-ins quickly
2/4/2010 19
Scripting
• Problem:
– Some tasks such as testing need to run for hours or
days without user interaction
– Need to be able to automate common tasks
• Solution:
– CCSv4 has a complete scripting environment allowing
for the automation of repetitive tasks such as testing
and performance benchmarking.
– The CCSv4 Scripting Console allows you to type
commands or to execute scripts within the IDE
2/4/2010 20
Image Analysis
• Problem:
– Analyzing the output of an imaging or video algorithm
requires looking at the data in its native format (i.e.
the image or a frame of video).
• Solution:
– The Image Display in CCSv4 supports viewing
images in many different formats.
• Ex. Interleaved YUV 4.2.2
2/4/2010 21
IDE Familiarity
• Problem:
– Developers work with a number of different
development environments. Thus needing to become
familiar with the work flow of different tools.
• Solution:
– CCSv4 is based on the Eclipse open source software
framework which is used by many different embedded
development environments:
• ARM Ltd, MontaVista, Enea, WindRiver, QNX…
2/4/2010 22
Licensing
• Problems:
– Mid to large size teams want floating (server) license
options
– Free Evaluation Tools and DSK tools are out of date
the day they are created
• Solution:
– Integration of FlexNET licensing allows for a variety of
licensing options (node locked, floating, time
based…).
– Full tools, DSK tools, Free tools are all the same
image and are kept up to date via the update
manager
2/4/2010 23
Update Delivery
• Problems:
– People are unsure of what updates are needed
– Downloading updates is painful
• Solution:
– CCS will automatically check for updates on startup
and indicate if content is available
– Spectrum Digital & Blackhawk drivers are included in
the CCS install
– Service releases will only install content relevant to
your installation (i.e. C2000 users only see C2000
content)
– Much faster file server!!!!!!!!
BACKUP
Common questions
2/4/2010 24
CCSv4 Pricing DetailsItem Description Price
Platinum Node Locked Full tools tied to a machine $1995
Platinum Floating (1) Full tools shared across machines $2995
Platinum Floating (3) Full tools shared across machines $7995
Platinum Floating (5) Full tools shared across machines $11495
Platinum Floating (10) Full tools shared across machines $20995
Platinum Floating (25) Full tools shared across machines $44995
Microcontroller Node Locked MSP/C2000/Stellaris $495
Microcontroller Floating (1) MSP/C2000/Stellaris $795
Microcontroller Floating (3) MSP/C2000/Stellaris $1995
Microcontroller Floating (5) MSP/C2000/Stellaris $2995
Microcontroller Floating (10) MSP/C2000/Stellaris $5495
Microcontroller Floating (25) MSP/C2000/Stellaris $119952/4/2010 25
Architecture
DebugServer.DLL (C++)
DebugEngine (Java Wrapper)
Debug Server Scripting (Java)CDI Adapter (Java)
CDT (Java)
Eclipse GUI
Rhino (Javascript)
Shell
Scripting
Inline::Java (Perl) Jacl (Tcl)
Shell
Scripting
Shell
Scripting
Emulation/Simulation Drivers
Code Composer Studio (CCS)
Eclipse GUI Console Win.
Licensing - FAQs
• Who gets v4 Upgrades?
– Code Composer Studio users and under subscription.
– Code Composer Essentials Pro users who purchased after June 1 2008
• What happens with 3.3 “site” licenses?
– Every customer with a site license will be contacted by TI and provided with an equivalent v4
floating license package
• Can I upgrade free eval tools to full tools?
– Yes
• Can TI extend free eval tools?
– Yes
• What happens if my computer is off the network and I am using a floating license?
– You can continue to use CCS, it will just let you know it could not get a license in the title bar
• How do I get the free XDS100 license?
– Just download the CCSv4 image and click the button to generate a bundle license
• Full set of FAQs on the CCSv4 mediawiki
– http://tiexpressdsp.com/index.php/FAQ_-_CCSv4#Licensing
2/4/2010 27
2/4/2010 28
Migration FAQ
• What happens to my CCSv3.3 projects?
– Import wizard for conversion
– http://tiexpressdsp.com/index.php?title=Migrating_to_CCSv4#Im
porting_Projects
• What happens to workspaces?
– Need to recreate
• What happens to GEL?
– GEL is present in CCSv4
– http://tiexpressdsp.com/index.php?title=GEL
• How do I automate CCS?
– Debug Server Scripting
– http://tiexpressdsp.com/index.php?title=DSS
BIOS
• CCSv4 includes two versions of DSP/BIOS
– 5.40
• Binary compatible with BIOS5.3
• Updated to support CCSv4 integration
• Recommended if migrating existing projects to CCSv4
• Does not support execution graph
– 6.x
• New API
• Supports complete real-time analysis tools including
execution graph
2/4/2010 29
Target Setup
• Changed to xml based target configuration
– Existing target configurations are not compatible
– Device and connection are separated
• You can change the emulator type that a configuration uses
• 3P emulator vendors do not need to create import
configurations for every device as you can just choose the
emulator and the device
• Setup is integrated into the IDE
• Target configurations can be included in a
project so that a project automatically uses that
configuration
Projects
• CCS .pjt file are replaced by Eclipse projects
– An import wizard is provided that does the conversion
– If someone does not wish to convert due to some users still
being on CCSv3.x you can use a standard make project and tell
it to build a .pjt file using timake.exe
• File system based model
– Files that are in the project folder and in the project and will be
built unless excluded
– Create subfolders in a project by creating subfolders in the
project folder
– If you don’t want a source file to be physically in the project folder
you add it to your project using the “link files to project” feature
Automation
• GEL
– GEL is still present in CCSv4
– Functions that map to GUI related items such as opening a window or
building a project are not available
• New Scripting Environment
– Split into a number of server modules
– JAVA API
• Default language is JavaScript however Perl, TCL, Python are also possible
– Debug Server Scripting will be the main feature used for automation as
it allows access to the functionality of the debugger
• Scripting Console
– Window within CCS that provides access to the scripting environment
as well as command driven operation of CCS
Compilers
• CCS supports building with and debugging the
output of many different versions of TI compilers
• Within a project you can specify the version of
the compiler to use for a particular project
Workspaces
• CCSv3.x workspaces are NOT compatible with
CCSv4
Source Control Providers
• CCSv4 is compatible with a superset of
providers as compared to CCSv3.3
– Simply search for the vendor name and Eclipse 3.2
CCS Plug-ins
• CCSv3.x plug-ins are NOT compatible with
CCSv4
• Any existing plug-ins will need to be re-written to
work with CCSv4
FEATURE DETAILS
Equivalent of demonstration
Workspaces
• What are they?
– A workspace is a folder that contains information relevant to what
you are working on
• A workspace contains
– Projects
• Either physically in the workspace or referenced by the workspace
– Window and toolbar arrangements
– Preference settings
• You can have multiple workspaces and switch between
them
• Automatically saved when you close
• Can be automatically loaded
First Time You Launch CCSv4
• Launch CCSv4
• Select workspace location
– Check the box so it doesn’t ask you every time
Welcome Page
• Purpose
– Introduce you to the product
– Provide links to documentation, tutorials,
examples
– Content is dependent on what is
installed (MSP430, C2000…)
• How to close it?
– Click on the cube
• How to access it after closing
– Help->Welcome
Perspectives• Background:
– Each Workbench window contains one or more perspectives.
– A perspective defines the initial set and layout of views in the Workbench window.
– Each perspective provides a set of functionality aimed at accomplishing a specific type of task or works with specific types of resources.
• As you work in the Workbench, you will probably switch perspectives frequently
• Customization– Perspectives control what appears in certain menus and toolbars
– They define visible action sets, which you can change to customize a perspective
– You can save a perspective that you build in this manner, making your own custom perspective that you can open again later.
• Default perspectives in CCS-Eclipse– C/C++: Editing and building
– Debug: Debugging your programs
• You can use the General > Perspectives preference page to open perspectives in the same window or in a new window
– By default opening a new perspective will switch the perspective but you can change this so that it opens a new workbench window for the perspective
Open new perspective Switch to the debug perspective
Current perspective
Window Types
Detached:
Like having float in main window off in CCSFast view: Hidden until you click on the button to
restore them. Click on another window to hide.
Tab Group:
Several windows
grouped
together
Editor:
Only editor
windows are
part of this
group
Windowing tips
• Double-clicking on the title bar of a window will maximize the window– Double-clicking again will restore it to its previous size
• Fast-view windows are great for windows you use infrequently but need a lot of space when you do use them
• The window that has focus is indicated by a blue border and heading
Current window
Customizing Perspectives
• You can customize the menu items and toolbars in your
perspective
• Commands
– Controls menus & toolbars
• Shortcuts
– Controls special sub-menus
(new, show view…)
Accessing Views
• To open a new view go to the Windows -> Show
View Menu
– Common views for the
current perspective
– Recently opened views
• To access views that are
not listed select Other…
Help
• You can access the help table of contents from the main Help menu however the best way to access help for a specific view is to open it and then hit F1– The help may be part of any number of tools
packages C++, Java, custom TI… so F1 can be the best way to find it
Projects
• 2 Project Types
– CCS Projects
– Standard Make Projects
• CCS Projects
– Similar to CCS PJT files
– Project files are based on makefiles
• Standard Make Project
– You specify the build commands to run
– Typically used when building with custom makefiles
– Can also be used to build with CCS PJT files
Files in a Project
• By default all files in the project directory are in
the project
• When you “Add” files to the project it copies
them into the project directory
• When you “Link” files to the project it just
references the files and leaves them in their
original location
• You can create folders in the project
C/C++ Projects View
• Used for navigating the projects
• Folder structure represents directory structure of project– Dragging files between folders will
move them
• “Includes” displays header search paths
• Expand source files to show source scan information
• Context menu provides access to project operations
Problems View
• Summarizes all errors, warnings and remarks found during a build– Based on error parsers associated with the project
• Works for both Managed Build and Standard Make projects
• Double clicking takes you to the problem
• Problems are also indicated in source selection margin and outline view
Advanced Editor Features
• Code Completion– Complete word
– Auto-member information
– Auto-parameter information
– …
• Navigation– Back/Forward buttons
– Back to last edit button
– Go to definition
– Go to declaration
• Show line numbers
• Code Folding– Collapse functions
Outline View
• Shows source scan information
for the current source file in the
editor
• Great for navigating with in a file
• For C it shows
– Functions
– Include files
– Global variables
– Types
Local History
• Eclipse keeps a local history of source changes
• You can compare your current source file against any previous version or replace it with any previous version
Refactoring
• For C/C++ refactoring support is limited to
renaming
• Instead of doing a find/replace in files you can
identify a function or variable that you want to
rename and it will automatically do this for you
– Only valid instances are replaced
• i.e. it will not replace an instance of the name that is part of
another name…
• To use simply right click on a function in the
source window, outline view or C/C++ projects
view and select Refactor -> Rename
Edit Markers
• If you have the line number column on it also
indicates changes in your source file since
your last save
Modified lines
Deleted lines
Inserted lines
Tasks
• Your own TODO list
– Allows you to keep track of things to do
• Associate tasks with source lines
– Add a task by right clicking in the editor left selection
margin
• Tasks view shows tasks that are contained in
your workspace
Launching the Debugger• Debug Active Project
– Automated debugger launch
• Connects to appropriate target in your system setup
• Loads program
• Runs to main (optional)
• Launch TI Debugger– Manual debugger launch (no other actions performed)
• Automatic perspective switch– CCS-Eclipse switches to the debug perspective when the
debugger is launched (configurable)
• Connect/Disconnect– Much like in CCSv3.3
– Select the device to perform the action on and then click the connect/disconnect button
Debug Active Project Launch TI Debugger History
Debug View
• This is your main debug control window
• Used for
– Execution control (run, halt, step, restart, go-main)
• These buttons are being added to the main toolbar
– Reset
– Callstack
– Selecting the current debug context
• i.e. what should each of the other views be showing
information for (CPU, thread, frame in callstack)
Disassembly View
Enter starting address or expression Switch between ASM only and mixed-mode
Read next or previous block of memory
Scroll within current block
Variables view
• Equivalent to the locals tab on the CCS Watch Window
• By default shows local variables in the current stack
frame
• You can optionally add global variables
• Several options on context menu
Click to add global variables
Expressions View
• Equivalent to the Watch tabs on the CCS Watch
Window
• Will be updated to use the same control as the
Variables view
• To edit an expression or change the value of a
variable you need to use the context menu
Registers View
• Uses the same register information as CCSv3.3
– XML register definition files
• Register groups
• Bitfields
Memory View
• Renderings
– Basically you can have different views of the same memory (hex,
ascii…)
Page
Open a new memory view
Enter expression for start address Refresh Create a new rendering
Breakpoints View
• Equivalent to the breakpoint manager
• Supports advanced breakpoints
– Specific device support being added
Modules View
• Shows currently loaded symbol files
• Used for symbol file managementLoad program Add SymbolsLoad Symbols
When loading or adding symbols
you can specify offsets
Console View
• Multiple contexts
– When the CPU is selected it operates as a GEL command
interface to the debugger
– When CIO is selected it shows CIO output
– Automatically switches contexts
• Can use the “pin” option to prevent this
• You can open multiple console windows
– Printfs in one and command interface in another
Source Search Paths
• If you have a managed build project the source
files are in it and we know how to find them
• However if you are using a standard make
project or no project at all that is not always the
case
• Thus just like in CCSv3.3 where you setup the
source search directories CCSv4 has a similar
capability
Source Search Paths per Launch
• If the debugger can’t find a source file you will see something like this:
• You can just click on the “Edit Source Lookup Path” button
• Then specify the path to search
Source Search Paths per Launch (2)
• This will store the path in the debug launch
session but it is not shared between sessions
– To re-launch the same session you can click on the
arrow beside the debug icon or when a session that is
named the same is launched it will use the paths
Global Source Lookup Paths
• You can setup source lookup
paths that are shared
between launch sessions
• Window->Preferences
• Select C/C++->Debug-
>Common Source Lookup
Path
• Paths setup for a specific
launch will take precedence
over the common paths
Search Paths for a Symbol File
• You can also setup search paths based on a .out
file so that every time you load the .out file it will
use those paths