<br><font size=2 face="Courier New">Hello, Thanks a lot for the idea! Well,
I was looking for the fastest method to send the data out, without using
RTNET(atleast as of now, I think I don't need to get into hard real time
ethernet). And I thought a solution within the kernel space is faster.</font>
<br>
<br><font size=2 face="Courier New">Best Regards</font>
<br><font size=2 face="Courier New">Deepa.<br>
</font><font size=3><b><br>
 </b>&nbsp; &nbsp; &nbsp;</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>wolfgang.grandegger@bluewin.ch</b></font>
<p><font size=1 face="sans-serif">26.10.2004 10:54</font>
<br>
<br>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; An:
&nbsp; &nbsp; &nbsp; &nbsp;deepa.vijayaraghavan@mbtech-group.com</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Kopie:
&nbsp; &nbsp; &nbsp; &nbsp;mantegazza@aero.polimi.it, rtai@rtai.org</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Thema:
&nbsp; &nbsp; &nbsp; &nbsp;</font><font size=1 face="Arial">Re:
rtnet code in rtai_24.1.12 (from denx)</font></table>
<br>
<br>
<br><font size=2><tt>Hello,<br>
<br>
how about implementing the data acquisition in RTAI (real-time) and the<br>
data transmitter in Linux (non-real-time). Data can be passed from RTAI<br>
to Linux via shared memory of FIFOs.<br>
<br>
Wolfgang.<br>
<br>
On 10/26/2004 09:19 AM deepa.vijayaraghavan@mbtech-group.com wrote:<br>
&gt; <br>
&gt; Hello Paolo,<br>
&gt; &nbsp; &nbsp;Thanks a lot for your reply. LXRT is not supported for
power PCs, and<br>
&gt; I use an IBM 440 GP power PC based board.<br>
&gt; I just need a socket interface to send out data to the outside network,<br>
&gt; in my RT task of lesser priority. The higher priority task does some<br>
&gt; kind of data acquisition. I do not really need the features of RTNET,
as<br>
&gt; my realtime requirements are not very stringent in terms of data<br>
&gt; routing(sending it out to the outside world, I mean).<br>
&gt; &nbsp; &nbsp;The call to set_fs(KERNEL_DS) is the one that fails,
when called from<br>
&gt; the RT task. I do not understand why. Do you have any example code,
that<br>
&gt; uses the netrpc.h(that you'd sent) to make socket calls from RT tasks?<br>
&gt; <br>
&gt; Thanks a lot!<br>
&gt; <br>
&gt; Best Regards<br>
&gt; Deepa.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; *<br>
&gt; * &nbsp; &nbsp; <br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*mantegazza@aero.polimi.it*<br>
&gt; <br>
&gt; 25.10.2004 19:35<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; An: &nbsp; &nbsp; &nbsp; &nbsp;deepa.vijayaraghavan@mbtech-group.com<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Kopie: &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Thema: &nbsp; &nbsp; &nbsp; &nbsp;Re:
rtnet code in rtai_24.1.12 (from denx)<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; deepa.vijayaraghavan@mbtech-group.com wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello Paolo,<br>
&gt;&gt; &nbsp; &nbsp;I tried using the file you had sent, to make socket
calls from RTAI.<br>
&gt;&gt; As part of the init_module, I create socket(using ksocket()) and<br>
&gt;&gt; bind(using kbind) the server to the socket. This proceeds without
errors.<br>
&gt;&gt; &nbsp; I spawn an idle task using rt_init_task(), also in the
init_module().<br>
&gt;&gt; When this task gets scheduled, &nbsp;it checks the socket with
the kpoll(),<br>
&gt;&gt; and sends the data out with the ksendto(). A call to kpoll() from
the<br>
&gt;&gt; rt_task results in &quot;StartedOops: kernel access of bad area,
sig: 11&quot;<br>
&gt;&gt; error. If I replace kpoll with poll, it goes through, but I get
the oops<br>
&gt;&gt; for the ksendto call. I am unable to understand this! Any suggestion
is<br>
&gt;&gt; of great help.<br>
&gt;&gt;<br>
&gt; <br>
&gt; YOu cannot use kernel calls in hard real time RTAI kernel tasks For
that<br>
&gt; you need to copy a kind of something found in netrpc.h. The best<br>
&gt; solution is to use LXRT and soft kernel threads mixing up RTAI and
Linux<br>
&gt; support, but not in real time.<br>
&gt; <br>
&gt; For real time, or using sockets directly from RTAI tasks, _use_RTNet_<br>
&gt; <br>
&gt; Paolo.<br>
&gt; <br>
&gt; <br>
<br>
</tt></font>
<br>