1 / 10

Code Composer Essentials 3.0

Learn how to enhance debugging in Eclipse by adding breakpoints, connecting to debuggers, managing targets, and more, for efficient embedded development.

kcrawford
Download Presentation

Code Composer Essentials 3.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Code Composer Essentials 3.0 Extending CDT and Eclipse for Embedded Development Dobrin Alexiev: Texas Instruments

  2. Project Launch Workflow • Create new project, write code, compile, debug • Last opened project is called Active • The Launch Dialog is not required • Projects may have debug properties • Creates and reuses Launch Configurations • Similar to other IDEs

  3. Projectless Debugging Workflow • Connect to a multi core debugger • Connect to the desired target • Watch or modify memory, registers, disassembly • Load programs or symbols to different CPUs • Now we can see valid call stack and variables • Specify search path • Full source level debugging • Hides the Launch Dialog • Creates and reuses launch configurations

  4. Breakpoint additions • Add hardware breakpoints support • Add combo box in the Breakpoint View • Add symbolic type breakpoints • Project-less and program-less debugging • Breakpoints are installed after target connect • Symbols can change dynamically

  5. Breakpoint challenges • Having Resources for some but not all types • Fixed Hierarchy • Symbolic breakpoints • Hardware breakpoints • Association of breakpoint to targets and threads • A breakpoint can’t be set on multiple targets • What if the breakpoint has different properties on two targets • Install breakpoint after target is connected

  6. Breakpoint Alternatives • A breakpoint is a set of properties • No need for hierarchy • All of the functionality is by set and get properties • A server can change the breakpoint properties at any time – function type becomes source type • A Debugger implementation can overlap with code that is in CBreakpointManager • Source editor shows breakpoints based on Current Debug Context • By default breakpoints are not shared by all targets • Each target has its own set of breakpoints

  7. More Target States • Connected vs. Disconnected • The debugger is up but it doesn’t have a connection to the target • Symbols don’t have to be reloaded on connect • Breakpoint will be reinstalled on connect • Halt Requested • When CPU halts all OS thread are suspended • Only the current thread is really Halted • The rest will resume as soon the CPU runs • The user can request to Halt other threads

  8. Multiple Targets and Threads • Launch or Debug Target per CPU? • Can each thread has its own symbols? • Breakpoints per target…

  9. Views enhancements • Expression view • Modifiable expressions • Edit enums with a dropdown box • Run and Halt scroll the view • Disassembly view • Scrolling outside of the current function • Address selector dropdown • Opened automatically if limited debug info is available • Memory View • Shows physical vs. virtual memory • Address selector drop down • Breakpoint View • Add new breakpoints from a drop down • Source View • Add breakpoint not only from selection margin

  10. GUI Testing Framework • Automates the workbench GUI using JUnit tests • Executes menus, toolbar and context menus IWorkbenchWindow wb = fScripting.getWorkbench(); wb.getMenuAction("File|New|Project...").asyncExecute(); • Synchronizes with the GUI elements getTopMostDialog().waitUntilDialogHasTitle("New Project“) • Select tree nodes, executes buttons, sets text in edit boxes control.selectNode(“Plug-in Project“) • Provide higher level interface for the Specific Views and Editors

More Related