Embedded Target Communications
with TCF
Martin Oberhuber
Michael Scharf
Wind River
Tutorial Themes
How we’re going to run this:
• Practical
• Interactive
• Workspace Take-away
2
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
3
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)
4
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
Eclipse
3rd party
SW
CPU
Debugger
3rd party
SW
DSP
Debugger
5
SoC (Model)
TCF
TCF
Target
Description
IP-XACT,
XML
Target
Server(s)
TCF
CPU
HW
IP
TCF
TCF
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
This slide
© SPRINT
and Infineon
2008.
All rights
reserved.
except
logos
and trademarks
made2007,
available
under
the EPL
v1.0
DSP
Today: Separate Communications per tool
Tool A
Tool B
Tool C
Tool D
UI
P2
Host
P1
Value Add
B
Value Add
C
P3
Agent A
Agent B
Hardware C
Target
6
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
?
Tool A
?
?
Tool B
Tool C
Tool D
UI
P2
Host
P1
Value Add
B
Value Add
C
P3
Agent A
Agent B
Agent C
Target
7
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Bad Design!
Tool A
Tool B
Tool C
Tool D
UI
Host
Agent A
Value Add
B
Value Add
C
Agent B
Agent C
Target
8
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
9
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
10
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
11
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
12
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
TCF: Common agent and protocol
UI
Host
Tool B
Tool A
Tool C
Service 4
Value Add
Service 5
TCF Agent
Target
13
Service 1
Service 2
Service 3
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Tool D
Peer is a Communication endpoint
UI
Host
Tool B
Tool A
Tool C
Service 4
Value Add
Service 5
TCF Agent
Target
14
Service 1
Service 2
Service 3
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Tool D
Service
UI
Host
Tool B
Tool A
Tool C
Service 4
Value Add
Service 5
TCF Agent
Target
15
Service 1
Service 2
Service 3
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Tool D
Message Channel
UI
Tool B
Tool A
Tool C
Tool D
TCF Channel
Host
Service 4
Value Add
Service 5
TCF Channel
TCF Agent
Target
16
Service 1
Service 2
Service 3
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
17
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
–
–
–
–
18
Message forwarding
“Decorator” can intercept communication
“Value-add” services (e.g. debug info)
No protocol conversion needed
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
19
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!
20
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!
21
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
22
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
23
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
24
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
25
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
TCF: Layered View
UI
Host
Tool B
Tool A
Tool C
Service 4
Value Add
Service 5
TCF Agent
Target
26
Service 1
Service 2
Service 3
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Tool D
Communication Layers
Services
Messages
Channel
Transport Layer (e.g. TCP/IP)
27
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
Services
Messages
Channel
?????????????????????????????????????????????
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
Channel: Message Stream
Services
Messages
Channel
??????????????????????????????????????????
??????????????????????????????????????????????
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
Messages: Command Result Event Flow
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
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
Message Type
Message Type
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
31
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Token
Token: Channel Unique
To identify Result
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
32
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Service Id
Service id
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
33
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Command Name
Command name
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
34
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Arguments (byte array)
Arguments (byte array)
Services
Messages
Channel
C 17 SysMonitor getChildren ??????
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
35
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
Marshalling: JSON
Services
C 17 SysMonitor getChildren [“p123”]
Messages
C 17 SysMonitor getChildren ??????
Channel
??????????????????????????????????????????
??????????????????????????????????????????????
Transport Layer (e.g. TCP/IP)
36
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> •
37
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
Services
6 Presentation Layer
JSON
5 Session Layer
Channel + Messages
4 Transport Layer
3 Network Layer
2 Data Link Layer
1 Physical Layer
38
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
Services
6 Presentation Layer
JSON
5 Session Layer
Channel + Messages
4 Transport Layer
3 Network Layer
2 Data Link Layer
1 Physical Layer
39
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
40
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
41
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
42
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:
Logging to stdout
– cd org.eclipse.tm.tcf.agent/Cygwin/i686/Debug
– ./agent -L-
• Open Command prompt 2 for client:
–
–
–
–
–
–
–
–
43
./client -Lhelp
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
Shortcut: connect TCP::
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
JSON messages
Using an ID
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
44
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
45
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
46
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Agent Structure
47
Services: filesystem, sysmon, processes;
runctrl, memory, breakpoints, registers;
expressions, stacktrace, symbols
Core services
proxy, discovery*, streams
Core handlers / event dispatch
protocol, channel*, streams, event, inputbuf, ip_ifc tcf.h
Infra: cmdline, errors, exceptions, asyncreq
json / base64, mdep, myalloc, trace
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
context, dwarf*, linen.,
memorymap, windbg
main*, test, config, diag.
• Documented on TCF Agent Prototype docs
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
48
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”
-sURL
Server socket on port 7000
• Or ssh localhost –p 2222 –l root
– ./agent –L- -sTCP::7000
• RSE: New TCF connection to localhost:7000
– Show QEMU Linux processes
49
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
50
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
51
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
Multiplexer on port 7000
Peer on 7010 is
autodetected
• Using default port
• On local commandline
–
–
–
–
–
52
./client –Lconnect TCP::7000
peers
tcf Locator redirect TCP::7010
tcf FileSystem roots
value-add supports multiple
clients/channels
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
53
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
54
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
55
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
56
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
57
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
58
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Value-add
UI
Host
Tool B
Tool A
Tool C
Service 4
Value Add
Service 5
TCF Agent
Target
59
Service 1
Service 2
Service 3
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
Tool D
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)
•
•
•
•
60
No Dynamic Addition or Removal of Services
No Multiplexing (single client)
No Forwarding
No Dynamic Discovery
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
60
Use Case: TestExceutionAgent
• Protocol
– Depends on OS configuration and board
• Services
–
–
–
–
•
•
•
•
61
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
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
61
Use Case: LinuxUserModeAgent
• Protocol
– Typically TCP/IP, but depends on OS configuration and hardware
• Services
–
–
–
–
–
–
•
•
•
•
62
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
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
62
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
63
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
64
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
TCF Debugging example
65
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
66
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
67
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
•
•
•
•
68
Getting Started (less than what we did)
Protocol Specification (messages, events, JSON)
Services description
Agent description
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0
68
Questions?
69
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
70
TCF Tutorial | © 2007, 2009 Wind River Systems, Inc. | all contents
except logos and trademarks made available under the EPL v1.0