Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tcf-dev] Help Regarding TCF Agent

Hello Shashanka,

 

Many thanks for your interest in the TCF project !

 

I’m copying the tcf-dev mailing list on my response. Please register to the mailing list:

https://dev.eclipse.org/mailman/listinfo/tcf-dev

This way, a larger group of committers can answer your questions, responses are

archived and a larger group of people can benefit.

 

The entry point on all TCF documentation is linked from “Documentation” on the

homepage, and should basically answer all your questions if you read thoroughly:

https://www.eclipse.org/tcf/documentation.php

 

Start with the slide decks, then move on to the architecture docs mentioned below. In case you find any things unclear or lacking in the docs, we’d appreciate

contributions making them better. You can edit the Wiki yourself, or you send Gerrit [1] code review requests for any changes to docs checked-in to TCF Git, see also our CONTRIBUTING guide [2].

 

Regarding your questions in detail:

 

1.    What is an Agent and what makes an Agent? How is it different from Client and Server?

a.       In embedded software, we call the “agent” the piece of software that runs on the device (for connecting to it, and debugging it). It basically works like a server in traditional client/server applications – just different terminology.

2.       What is the minimal set of components required to set up an TCF based communication between target and client.

a.       See the “daytime” example, it configures a minimal agent with just the basic services:
http://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/tree/examples/daytime/readme.txt

3.       In C code of TCF Core (in github), there are different solutions for agent, server. What is the difference between both and what are the commands to send to make them work?

a.       The agent runs on the device and is typically “small”. What we call the “server” is actually a value-add in terminology of the various slides on TCF. A piece of software that runs on the host and provides functionality on top of the agent’s services. If you get started with TCF, you maybe just want a client -> agent communication initially. As you get more advanced, you can set up a client -> server -> agent communication. This helps making the agent smaller. By moving services (like ELF symbol resolution) from the agent (device) to the server (host). Read the slides and you’ll better understand it.

4.       I had many problems in understanding the flow of the TCF core C code while debugging the Agent Solution. There are too many threads and Mutexs used. Is there a wiki or a document for Code's Architecture, way it is organized, summary of steps to be followed?

a.       Read the “TCF Agent Prototype” and “TCF Agent Porting Guide” from the docs, and play with the daytime example. On a very high level, the TCF Agent is event-driven. There’s a single event queue handling commands. Commands typically fork a Thread for background work. When done, an event is sent back via the event queue. This architecture is actually quite simple and ensures consistency of the system, efficiency, and good behavior with high latencies.
On top of this basic event queue, ACPM (Asynchronous Cache Programming Model) is used in the debugger for even better performance thanks to caching, while guaranteeing system consistency. There’s currently a Bugzilla with ACPM Docs attached.

5.       Also, if there is a document on how to develop a simple TCF agent, it would help me understand the working of the C code.

a.       See the daytime example mentioned above. But note that most adopters of TCF actually use it for debugging, so they extend the existing debug services or port them to other architectures as per the docs above. The good thing of TCF’s service architecture is that you can mix-and-match services as you need.

 

 

HTH, I suggest that you start reading the architecture docs mentioned above, play with examples and then let us know of additional questions.

 

TCF Committers, please correct me in case I got anything wrong or inaccurate.

 

[1] https://wiki.eclipse.org/Gerrit

[2] http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/CONTRIBUTING

 

Thanks!

--

Martin Oberhuber, SMTS / Product Owner – Development Tools, Wind River

direct +43.662.457915.85  fax +43.662.457915.6

 

 

From: Shashanka Navada <shashankanavada@xxxxxxxxxxx>
Date: Friday 12 August 2016 at 05:06
To: "Oberhuber, Martin" <Martin.Oberhuber@xxxxxxxxxxxxx>
Subject: Help Regarding TCF Agent

 

Hi Martin,

I am Shashanka Navada, pursuing Masters in Embedded System Technologies at VIT University, India.

I cam across this interesting platform on Target Communication Framework (TCF) developed by Eclipse and Windriver. I wish to take this as a part of my study. I have been through documents in this link.

Still, I have few queries regarding TCF which are below.

1. About Agent: I have problems in understand the meaning of an Agent. What is an Agent and what makes an Agent? How is it different from Client and Server?

2. What is the minimal set of components required to set up an TCF based communication between target and client.

3. In C code of TCF Core (in github), there are different solutions for agent, server. What is the difference between both and what are the commands to send to make them work?

4. I had many problems in understanding the flow of the TCF core C code while debugging the Agent Solution. There are too many threads and Mutexs used. Is there a wiki or a document for Code's Architecture, way it is organized, summary of steps to be followed?

5. Also, if there is a document on how to develop a simple TCF agent, it would help me understand the working of the C code.

Would be grateful to have my queries answered.

I understand that it would be though to answer all queries by email. With your permission, if you can fix a date and time, we can have a Skype call to discuss about the same. (My Skype ID: shashanka.navada)

Best Regards,

Shashanka Navada,
4th Semester,
M.Tech. Embedded Systems,
VIT University,
Vellore.
Contact No.: (+91) 81051 81087 | Email: shashankanavada@xxxxxxxxxxx | Skype: shashanka.navada


Back to the top