Embedded Target Communications with TCF Martin Oberhuber Michael Scharf Wind River.

Post on 24-Dec-2015

215 views 0 download

Tags:

Transcript of Embedded Target Communications with TCF Martin Oberhuber Michael Scharf Wind River.

Embedded Target Communications with TCF

Martin Oberhuber

Michael Scharf

Wind River

2 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Tutorial Themes

How we’re going to run this:

• Practical• Interactive• Workspace Take-away

3 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

The Stick

• All-in-one Eclipse ZIP• QEMU/mini.zip• Workspace.zip• Compilers

– OPTIONAL - For the adventurous– We provide pre-built executables– If you want to build yourself, install the compiler EXE’s

• Tools– Ingredients of the all-in-one. Install if you want your own

Eclipse.

• Tcf_source– patches

4 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Agenda

• TCF Overview• Building and running TCF native

– Workspace Setup– Command-line tools– Protocol Basics

• Building and running embedded– Source structure, Removing a Service– Proxy Setup

• Adding a Service or Value-add– The C side (client and server)– The Java side (client)

5 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

System Debug: the Big Picture

CPU

HWIP

DSP

3rd party SW

CPUDebugger

3rd party SW

DSPDebugger

SoC (Model)

Target DescriptionIP-XACT,

XML

Target Server(s)

TCF

TCFTCF

TCF

TCF

This slide © SPRINT and Infineon 2007, 2008. All rights reserved.

Eclipse

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

Today: Separate Communications per tool

UI

Target

Tool A Tool B Tool C Tool D

Agent A Agent B Hardware C

Value Add B

Value Add CHost P1

P3

P2

7 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Bad for the User

UI

Target

Tool A Tool B Tool C Tool D

Agent A Agent B Agent C

Value Add B

Value Add CHost P1

P3

P2

? ? ?

8 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Bad Design!

UI

Target

Tool A Tool B Tool C Tool D

Agent A Agent B Agent C

Value Add B

Value Add CHost

9 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Limited eco system

• Too many different tools agents and protocols• Add-on providers need to provide multiple integrations• Huge effort putting it all together end-to-end• Lock-in to single vendor for end-to-end solution

– No best-of-breed mashup solutions

10 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

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

11 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF vs. ECF

• TCF – Target Communication (Protocol) Framework– Protocol, independent of API– API in multiple languages (C, Java, Perl, …)– One extendable Protocol (though supports multiple transports)– Typically point-to-point only

• ECF – Eclipse Communication Framework– API independent of Protocol– API in Java - abstract specification of concepts:

• Message, Channel, Container, ID• Datashare, Filetransfer, Directory Listing

– ONE API for multiple protocols (e.g. Files; FTP, HTTP, EFS, …)– Very flexible one-to-many communications

• TCF and ECF are similar, but ECF is on a higher layer

12 TCF Tutorial | © 2007, 2009 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

• Support high latency communication links

13 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Service 4

Service 5

TCF: Common agent and protocol

Tool A Tool B Tool C Tool D

TCF Agent

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

14 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Peer is a Communication endpoint

Service 4

Service 5

Tool A Tool B Tool C Tool D

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

TCF Agent

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

Service

Service 4

Service 5

Tool A Tool B Tool C Tool D

TCF Agent

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

16 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Message Channel

Service 4

Service 5

Tool A Tool B Tool C Tool D

TCF Agent

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

TCF Channel

TCF Channel

17 TCF Tutorial | © 2007, 2009 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

18 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF Communication Protocol

• Message – A packet of data– Transmitted over communication channel

• Multiple channels per peer

• Proxying/Tunneling– Message forwarding– “Decorator” can intercept communication– “Value-add” services (e.g. debug info)– No protocol conversion needed

19 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

The TCF Message Types

• Command (send)– Request some action on remote peer

• Progress– Long running commands may send “progress ticks”

• Result (reply)– Remote peer sends one result for each command!

• Event– Notify a change

• Flow control– prevent congestion

20 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Command

• Command is a message • Sent to remote peer• Remote peer must send one Result for each Command!

21 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Result

• Result is a message – Data, Errors

• Sent as a response to a command• Remote peer sends one Result per Command!

22 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Commands are Asynchronous

• Sender of a command returns immediately– Fast on high latency connections

• Sender receives results– asynchronously

23 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Event

• Event is a message • Notification about state changes

24 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Message order guaranteed on channel

• Keep state of remote peer• Without message ordering no consistent state• Ordering per channel and direction

Command X=1

Result X=1

Event X=2

Command X=3

Event X=4

Result X=3

Event X=5

25 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Flow Control

• Prevent congestion

26 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Service 4

Service 5

TCF: Layered View

Tool A Tool B Tool C Tool D

TCF Agent

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

27 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Communication Layers

Channel

Messages

Services

Transport Layer (e.g. TCP/IP)

28 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Transport Layer: Byte Stream

Channel

Messages

?????????????????????????????????????????????

Services

Transport Layer (e.g. TCP/IP)

29 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Channel: Message Stream

Messages

??????????????????????????????????????????Channel

Services

??????????????????????????????????????????????Transport Layer (e.g. TCP/IP)

30 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Messages: Command Result Event Flow

Messages

??????????????????????????????????????????

C 17 SysMonitor getChildren ??????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

31 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Message Type

Messages C 17 SysMonitor getChildren ??????

Message Type

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

32 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Token

Messages C 17 SysMonitor getChildren ??????

Token: Channel Unique

To identify Result

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

33 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Service Id

Messages C 17 SysMonitor getChildren ??????

Service id

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

34 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Command Name

Messages C 17 SysMonitor getChildren ??????

Command name

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

35 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Arguments (byte array)

Messages C 17 SysMonitor getChildren ??????

Arguments (byte array)

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

36 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Argument Representation: e.g. JSON

Messages

C 17 SysMonitor getChildren [“p123”]

C 17 SysMonitor getChildren ??????

??????????????????????????????????????????

??????????????????????????????????????????????

Channel

Transport Layer (e.g. TCP/IP)

Services

Marshalling: JSON

37 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

The 5 TCF Messages

Command C • <token> • <service> • <command> • <arguments> Progress P • <token> • <progress_data>Result R • <token> • <result_data>Event E • <service> • <event> • <event_data> Flow F • <traffic_congestion_level> •

38 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF and the OSI Layers

7 Application Layer

6 Presentation Layer

5 Session Layer

4 Transport Layer

3 Network Layer

2 Data Link Layer

1 Physical Layer

Channel + Messages

JSON

Services

39 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF as Layer 3 and 4

7 Application Layer

6 Presentation Layer

5 Session Layer

4 Transport Layer

3 Network Layer

2 Data Link Layer

1 Physical Layer

JSON

Services

Channel + Messages

40 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Prototype implementation

• Lightweight C-based agent– Minimal agent has < 4000 lines of C code– Minimal impact on the target

• Eclipse plug-ins– Java TCF implementation to access service

41 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Getting Real: Development Tools

• Eclipse-TCF-Preinstalled.zip– Eclipse SDK 3.5m6– CDT 6.0m6– RSE 3.1m6– Optional: Subclipse with GEF or Subversive– Target Emulator

• QEMU-arm-tcf.zip with mini Linux + ssh

• Compilers: *.exe with installer– Cygwin, or MinGW 5.1.4+MSYS (with Wascana), or VS Express– CodeSourcery g++ Lite for ARM

42 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Workspace Setup and Build

• Import into Workspace: tcf.zip– Import > General > Existing Projects > Archive– Or import SVN Team Project Set

• Build TCF Agent native / cross– User-defined build (hand written Makefile) – external shell

• Type “make” on host

• Type “make ARCH=ARM” for target ARM

– Visual Studio (Express): open agent.sln and build• Need VS for Windows Debugging

• Need external dbghelp.dll for bug fixes – CQ 2553

43 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF Sample Session

• Open Command prompt 1 for agent:– cd org.eclipse.tm.tcf.agent/Cygwin/i686/Debug– ./agent -L-

• Open Command prompt 2 for client:– ./client -L- – help– peers– connect tcp:127.0.0.1:1534 – tcf FileSystem roots – tcf FileSystem opendir "/root" – tcf FileSystem readdir "FS0" – tcf <serviceName> <command> <JSONargs>

Agent is auto-detected

JSON messagesUsing an ID

Logging to stdout

Shortcut: connect TCP::

44 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Auto Discovery

• Discovers Peers and Services

• Simplifies setup– Client UI can easily find peers and discover services

• TCF comes with a simple UDP auto discovery– Other mechanisms possible and optional

45 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

How Discovery works

• First agent binds UDP::1534 to listen– If port is not available, somebody else is master already

• Become slave: periodically send “Hello” to UDP::1534• Master responds with list of known peers

• Master listens for new slaves announcing themselves– Keep list of known slaves, broadcast to all when asked

• When master dies, a slave will get no response on poll– After timeout on poll, slave becomes new master– It has the full list of known peers already at this time

• Across networks: fixed master – tcfreg program• Other implementations of Protocol / API are possible

46 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Cross-compiling for QEMU ARM

• Define OPSYS, ARCH in the Makefile• Not all Services may be supported on target Platform

– Use config.h to disable unwanted services

• Look at SVN diffs in your Workspace• Once built, use RSE “SSH Only” to drag & drop

executables into the remote. Don’t forget chmod +x

47 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Agent Structure

• Documented on TCF Agent Prototype docs

Services: filesystem, sysmon, processes;runctrl, memory, breakpoints, registers;

expressions, stacktrace, symbols

Core handlers / event dispatchprotocol, channel*, streams, event, inputbuf, ip_ifc tcf.h

Infra: cmdline, errors, exceptions, asyncreq json / base64, mdep, myalloc, trace

Core servicesproxy, discovery*, streams

con

text

, dw

arf

*, li

nen

., m

em

orym

ap

, win

dbg

mai

n*,

test

, co

nfig

, di

ag.

48 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Agent Structure (2)

• Main and config configures and instantiates framework and services („hook up“)– #define SERVICE_xxx

• Event loop sends request into service, service responds immediately or asynchronously

• One event Thread only• Service protocol spec relates to functions in code:

– command_roots, event_context_created, ...

• Client cmdline is just another source of events

49 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Advanced: connecting into QEMU

• This is in run.bat, to redirect SSH (2222) and port 7000:– qemu.exe –redir tcp:2222::22 -redir tcp:7000::7000

• Start run.bat– Login with “root : root”

• Or ssh localhost –p 2222 –l root

– ./agent –L- -sTCP::7000

• RSE: New TCF connection to localhost:7000– Show QEMU Linux processes

-sURLServer socket on port 7000

50 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Connecting QEMU from outside

• This is in puppy_redir.bat:– start puppy.exe -redir tcp:1534::1534

• 1534 is the TCF default port for discovery. QEMU forwards it from the client to the host in both directions

• From Eclipse, launch RSE+TCF– Run > Debug Configurations > Eclipse App– Open RSE Perspective– New Connection : TCF– Files Subsystem Properties : Port : 7000– Expand Processes / All Processes

Shows QEMU Linux Processes

51 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

RSE sample

• Process service• File service

52 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Multiplexing: Tunnel into QEMU

• QEMU is not discoverable because it cannot talk to UDP::1534 – since that port is not shared– Use a remote value-add for dispatching multiple channels

• Inside QEMU:– Stop agent.exe– Shell 1: ./valueadd –L- -sTCP::7000– Shell 2: ./agent –L- -sTCP::7010

• Using default port

• On local commandline– ./client –L-– connect TCP::7000– peers– tcf Locator redirect TCP::7010– tcf FileSystem roots

Peer on 7010 is autodetected

Multiplexer on port 7000

value-add supports multiple clients/channels

53 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

More on command-line tools

• Tcfreg: dumbed-down agent as UDP discovery registry only• Tcflog: no service itself: forwards requests and logs them• Valueadd: provides Locator.redirect service only

• Code mostly common, in main_*.c– l<num> : log level– L<file> : log to file– s<url> : for servers (agent, tcflog, valueadd): Port to expose

e.g. TCP:localhost:1534, default just TCP:

• Additional client option:– S<scriptfile> : replay a script

• Additional agent options:– i : interactive, -d : daemon, -t : test

54 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

The Java side

• org.eclipse.tm.tcf– Plain Java, no dependency to Eclipse– Protocol binding only– Asynchronous, callbacks

55 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Java: TCF Service Implementation

• Asynchronous: DoneMkDir is the Callback• Commands go into a queue to run on Command Thread

Callback

56 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

More about Services

• Protocol Specification / Docs can be viewed locally– org.eclipse.tm.tcf.docs project

• C Impl: Each has a macro define to enable/disable– FileSearch “#if SERVICE_” to find impl.– Common init function to register commands– Common naming pattern

• Java Impl: Each service is an interface– Extends Iservice– Implemented by a Proxies– Async callback mechanism

57 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Required service: Locator

• Used to discover peers• Peer lifecycle events• When connected peers can list its services

58 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF Services

• Run Control Service• Breakpoints Service• Memory Service• Registers Service

• Processes Service• Stack Trace Service• System Monitor Service • File System Service

59 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Value-add

Service 4

Service 5

Tool A Tool B Tool C Tool D

TCF Agent

Value Add

UI

Target

Host

Service 1 Service 2 Service 3

60 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Use Case: SimpleJtagDevice

• Protocol– TCP/IP

• Services– Service Manager (returns fixed list of services)– Debug (run-control, breakpoint, memory access)– Possibly Others (flash programming, download, etc)

• No Dynamic Addition or Removal of Services• No Multiplexing (single client)• No Forwarding• No Dynamic Discovery

60

61 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Use Case: TestExceutionAgent

• Protocol– Depends on OS configuration and board

• Services– Service Manager (returns fixed list of services)– Process launch and kill– Standard I/O redirection– File system access

• No Dynamic Addition or Removal of Services• No Multiplexing (multiple clients)• No Forwarding• No Dynamic Discovery

61

62 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Use Case: LinuxUserModeAgent

• Protocol– Typically TCP/IP, but depends on OS configuration and hardware

• Services– Service Manager– Debug (run-control, breakpoint, memory access)– OS Awareness (process/thread list, CPU utilization, etc)– Process launch and kill– Standard I/O redirection– File system access

• Possibly Dynamic Addition or Removal of Services• Possibly Multiplexing (multiple clients)• Possibly Forwarding• Possibly Dynamic Discovery

62

63 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF Plugins

• Org.eclipse.tm.tcf – Core Java framework• Org.eclipse.tm.tcf.agent – The agent (plain C)• Org.eclipse.tm.tcf.debug.* - Debug Integration• Org.eclipse.tm.tcf.docs – • Org.eclipse.tm.tcf.dsf.* - DSF integration• Org.eclipse.tm.tcf.examples.daytime.* - How to create

a custom Service (both agent and client)• Org.eclpise.tm.tcf.rse – RSE Files and Processes

64 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Debugging

• Run > Debug Configurations > TCF– Select connection (auto-discovered)– Program: /root/helloworld/helloworld– Args: “tcf is cool”– Debug

• Switch to “Debug Perspective”• Show View “TCF Trace”• Suspend / Resume, Registers

65 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF Debugging example

66 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

TCF: Next Steps

• A large number of adopters today – “TCF Round Table”– Mostly “whitebox adoption” today– Conversion from TCF to legacy proprietary

• Protocol conversion agent (like valueadd)• TCF C Agent binding to legacy implementation

• Core Protocol spec is frozen, working on Services– Version / maturity / status info to be added to docs

• Getting involved:– mailto:dsdp-tcf-dev@eclipse.org– Bugzilla, Newsgroup, Wiki

67 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Specification Status

• Review of current and specification of additional services in power.org and Eclipse

• Transport Channel• Current Services

– Run Control, Memory, Register, Breakpoint, Processes, Stack Trace, File System, System Monitoring

68 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Links

• TCF Homepage has all the pointers– http://wiki.eclipse.org/DSDP/TM/TCF– SVN Team Project Sets, ViewSVN– Documentation

• Getting Started (less than what we did)

• Protocol Specification (messages, events, JSON)

• Services description

• Agent description

68

69 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Questions?

70 TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents except logos and trademarks made available under the EPL v1.0

Credits

• Idea:– Felix Burton (Wind River),– Eugene Tarassov (Wind River)

• Original implementation – Eugene Tarassov