TCF - Target Communication
Framework Update for Helios

        Martin Oberhuber
          Pawel Piech
          Wind River
Agenda

• TCF Overview
    – Extendable Protocol / Services
    – Data-Driven / Discovery
    – Value-Add / Pass-Through
•   How to get Started / Whats in the Box
•   Current State of Adoption
•   What's New in Helios
•   References
Motivation: Simple Stacks and
    Collaboration through an Open Standard

    Eclipse
                                                                               SoC (Model)
3rd party SW                  TCF
                                                                              TCF
                                                                                         CPU

      CPU
    Debugger               Target                     Target
                         Description                  Server(s)               TCF        HW
                         IP-XACT,                                                         IP
3rd party SW                XML

                                                                              TCF
                                                                                         DSP
                               TCF
      DSP
    Debugger
3             TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
                 except logos © SPRINT and Infineon available underrightsEPL v1.0
                     This slide and trademarks made 2007, 2008. All the reserved.
Design Goals of TCF

•   Protocol Framework provides common infrastructure
    – communication protocol
    – Agent: “Service container”
    – Proxying
• Same protocol on all layers supporting value-add
    – Support pass-through
• Tools can use services in uniform way
• Service implementers can focus on functionality




4        TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
            except logos and trademarks made available under the EPL v1.0
TCF - Core Design Ideas

•   Use the same extendable protocol end-to-end
     – allow value-adding servers to intercept select services
•   Extension: Abstract Services as building blocks
     – Same tool for multiple targets (e.g. agent, OCD, simulator)
     – Avoid tools specific agents
     – Bridge gap with specific services to configure common ones
•   Data-driven by target
     – Service knows best how to represent the system
     – If not possible, put the knowledge in the lowest possible layer and data drive
       the layers above
     – Auto-discover targets and their capabilities
•   Support high latency communication links




5          TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
              except logos and trademarks made available under the EPL v1.0
TCF: Common agent and protocol


     UI            Tool A                 Tool B                   Tool C               Tool D




    Host                    Service 4
                                           Value Add
                            Service 5




                                              TCF Agent
    Target                    Service 1        Service 2         Service 3



6            TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
                except logos and trademarks made available under the EPL v1.0
Service


     UI            Tool A                 Tool B                   Tool C               Tool D




    Host                    Service 4
                                           Value Add
                            Service 5




                                              TCF Agent
    Target                    Service 1        Service 2         Service 3



7            TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
                except logos and trademarks made available under the EPL v1.0
Message Channel


     UI            Tool A                 Tool B                   Tool C                   Tool D



                                                                TCF Channel
    Host                    Service 4
                                           Value Add
                            Service 5
                                                                                        TCF Channel


                                              TCF Agent
    Target                    Service 1        Service 2         Service 3



8            TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
                except logos and trademarks made available under the EPL v1.0
Channels and Messages

• Communication between peers use channels
• Channels abstract/hide the transport layer
    – Currently TCP
    – Possible: RS232, JTAG, USB etc
• Channels transmit Messages
    –   Asynchronous command / response with tokens
    –   JSON marshalling
    –   Events – order guaranteed
    –   Progress
    –   Can Proxy / Tunnel channels through value-add
• New: Streams service on top of Channels

9         TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
             except logos and trademarks made available under the EPL v1.0
What's in the Box

• Available from the SVN Repository:
     – Lightweight configurable plain C agent
         • Compiles out of the box on Linux, Windows native, Cygwin
         • Easy to port to other OS, e.g. VxWorks, Symbian
         • Supports basic debugging, file transfer, proxy and auto-discovery
     – Plain Java protocol framework org.eclipse.tm.tcf.core
     – Eclipse layer org.eclipse.tm.tcf for lazy loading (extension reg.)
         • Exemplary RSE Plug-in and Platform/Debug integration
     – A couple of exemplary plain C commandline utilities
         • New: plain C Debug Server value-add
     – Protocol specification, Getting Started documentation


• http://wiki.eclipse.org/TCF_FAQ and last year's TCF Tutorial
10         TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
              except logos and trademarks made available under the EPL v1.0
Demo

• ./agent -L-
• Connect RSE
     – discovers agent
     – File transfer, processes
• Build CDT Sample app
• Launch Debugger




11        TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
             except logos and trademarks made available under the EPL v1.0
Current Status of Adoption

• Stable core protocol specification
     – Standardization at Power.org (hardware connectivity)
     – Working on Services standardization
• Stable C agent framework
      – Initial use in commercial products, e.g. Wind River Workbench
      – Open Source use in EDC (Eclipse Debugger for C/C++), Nokia
      – Whitebox Adoption Model: Freescale, Atmel, Mentor
          • Migrate proprietary legacy agents into TCF agent plugins
          • TCF value-add for conversion from legacy protocol
•    Exemplary RSE and Platform/Debug Integration
•    Support for Tracing (Ericsson, Linuxtools, Polymtl.ca)


12         TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
              except logos and trademarks made available under the EPL v1.0
What's New in Helios

• Streaming and Zero-Copy Binary Transfer (LTTng)
• Agent: Dynamic Loading of Services as Sharedlib
• Debug Server Value-Add
     – Splitting ELF reading from agent
• SSL connection to the agent
• Formalized a Programming Pattern for guaranteed data
  consistency when dealing with multiple data sources
     – ACPM (Asynchronous Cache Programming Model)
     – Used in the debug client and TCF Server value-add
     – Asynchronous implementation of File System Service


13        TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
             except logos and trademarks made available under the EPL v1.0
Next Plans

• Come to the TCF Future BOF: Today at 19:15




14     TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
          except logos and trademarks made available under the EPL v1.0
References / Q&A

• http://wiki.eclipse.org/TCF
     – Overview, Getting Started Docs
     – SVN Repository access, Mailing list access
• EclipseCon 2009 TCF Tutorial



                                 Questions ?



15        TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents
             except logos and trademarks made available under the EPL v1.0

TCF Helios Update - EclipseCon 2010

  • 1.
    TCF - TargetCommunication Framework Update for Helios Martin Oberhuber Pawel Piech Wind River
  • 2.
    Agenda • TCF Overview – Extendable Protocol / Services – Data-Driven / Discovery – Value-Add / Pass-Through • How to get Started / Whats in the Box • Current State of Adoption • What's New in Helios • References
  • 3.
    Motivation: Simple Stacksand Collaboration through an Open Standard Eclipse SoC (Model) 3rd party SW TCF TCF CPU CPU Debugger Target Target Description Server(s) TCF HW IP-XACT, IP 3rd party SW XML TCF DSP TCF DSP Debugger 3 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos © SPRINT and Infineon available underrightsEPL v1.0 This slide and trademarks made 2007, 2008. All the reserved.
  • 4.
    Design Goals ofTCF • Protocol Framework provides common infrastructure – communication protocol – Agent: “Service container” – Proxying • Same protocol on all layers supporting value-add – Support pass-through • Tools can use services in uniform way • Service implementers can focus on functionality 4 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 5.
    TCF - CoreDesign Ideas • Use the same extendable protocol end-to-end – allow value-adding servers to intercept select services • Extension: Abstract Services as building blocks – Same tool for multiple targets (e.g. agent, OCD, simulator) – Avoid tools specific agents – Bridge gap with specific services to configure common ones • Data-driven by target – Service knows best how to represent the system – If not possible, put the knowledge in the lowest possible layer and data drive the layers above – Auto-discover targets and their capabilities • Support high latency communication links 5 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 6.
    TCF: Common agentand protocol UI Tool A Tool B Tool C Tool D Host Service 4 Value Add Service 5 TCF Agent Target Service 1 Service 2 Service 3 6 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 7.
    Service UI Tool A Tool B Tool C Tool D Host Service 4 Value Add Service 5 TCF Agent Target Service 1 Service 2 Service 3 7 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 8.
    Message Channel UI Tool A Tool B Tool C Tool D TCF Channel Host Service 4 Value Add Service 5 TCF Channel TCF Agent Target Service 1 Service 2 Service 3 8 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 9.
    Channels and Messages •Communication between peers use channels • Channels abstract/hide the transport layer – Currently TCP – Possible: RS232, JTAG, USB etc • Channels transmit Messages – Asynchronous command / response with tokens – JSON marshalling – Events – order guaranteed – Progress – Can Proxy / Tunnel channels through value-add • New: Streams service on top of Channels 9 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 10.
    What's in theBox • Available from the SVN Repository: – Lightweight configurable plain C agent • Compiles out of the box on Linux, Windows native, Cygwin • Easy to port to other OS, e.g. VxWorks, Symbian • Supports basic debugging, file transfer, proxy and auto-discovery – Plain Java protocol framework org.eclipse.tm.tcf.core – Eclipse layer org.eclipse.tm.tcf for lazy loading (extension reg.) • Exemplary RSE Plug-in and Platform/Debug integration – A couple of exemplary plain C commandline utilities • New: plain C Debug Server value-add – Protocol specification, Getting Started documentation • http://wiki.eclipse.org/TCF_FAQ and last year's TCF Tutorial 10 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 11.
    Demo • ./agent -L- •Connect RSE – discovers agent – File transfer, processes • Build CDT Sample app • Launch Debugger 11 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 12.
    Current Status ofAdoption • Stable core protocol specification – Standardization at Power.org (hardware connectivity) – Working on Services standardization • Stable C agent framework – Initial use in commercial products, e.g. Wind River Workbench – Open Source use in EDC (Eclipse Debugger for C/C++), Nokia – Whitebox Adoption Model: Freescale, Atmel, Mentor • Migrate proprietary legacy agents into TCF agent plugins • TCF value-add for conversion from legacy protocol • Exemplary RSE and Platform/Debug Integration • Support for Tracing (Ericsson, Linuxtools, Polymtl.ca) 12 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 13.
    What's New inHelios • Streaming and Zero-Copy Binary Transfer (LTTng) • Agent: Dynamic Loading of Services as Sharedlib • Debug Server Value-Add – Splitting ELF reading from agent • SSL connection to the agent • Formalized a Programming Pattern for guaranteed data consistency when dealing with multiple data sources – ACPM (Asynchronous Cache Programming Model) – Used in the debug client and TCF Server value-add – Asynchronous implementation of File System Service 13 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 14.
    Next Plans • Cometo the TCF Future BOF: Today at 19:15 14 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0
  • 15.
    References / Q&A •http://wiki.eclipse.org/TCF – Overview, Getting Started Docs – SVN Repository access, Mailing list access • EclipseCon 2009 TCF Tutorial Questions ? 15 TCF Helios Update | © 2007, 2010 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0