THANKS, Stuart and GN DeSouza for the table posted comparing RTL & RTAI in
such a basic and cogent way! A first question about it:
Under the column 486, RTL v2 with linux kernel 2.2.x reads "n" =>
presumably meaning this does not run on 486's. But is that true? I've run
miniRTL 2.0 derived directly from RTL 2.0, with kernel 2.2.13 on a Pentium I.
Either way, this table would be great in THE RT MANUAL, with a change in
header(s) so as to include 586es. I could help with the manual too, but
again as noviate.
Dr. S.C.
At 02:54 PM 16-11-1999 +0000, you wrote:
>Hi Gloria,
>
>I have forwarded a table previously posted on the RTL list.
>
>Stuart.
>
>Glòria wrote:
>>
>> Hello:
>>
>> Is there any document about the differences betwen RTL and RTAI?
>>
>> Thanks in advance.
>>
>>
>>
>> --
>> Glòria Hernández Ballester
>>
>> e-mail: [EMAIL PROTECTED]: [EMAIL PROTECTED]
>Return-Path: [EMAIL PROTECTED]
>Received: from rtlinux.cs.nmt.edu (rtlinux.cs.nmt.edu [129.138.6.62]) by
hinge.mistral.co.uk (8.8.5/8.6.9) with ESMTP id TAA15859; Thu, 7 Oct 1999
19:46:31 +0100
>Message-Id: <[EMAIL PROTECTED]>
>Date: Thu, 7 Oct 1999 14:35:38 -0500 (EST)
>From: Guilherme Nelson DeSouza <[EMAIL PROTECTED]>
>Reply-To: Guilherme Nelson DeSouza <[EMAIL PROTECTED]>
>Subject: [rtl] Table, API
>To: [EMAIL PROTECTED]
>MIME-Version: 1.0
>Content-Type: TEXT/plain; charset=us-ascii
>
>Content-MD5: rhcKNx2XyqRpurLqxAPS+g==
>
>
> Again, thanks to those who sent corrections/suggestions.
>
> The table and API-differences below are getting smoother.
>I hope it has converged to something useful to other people
>in this list.
>
> As we all (probably) expected, the differences between RTL
>and RTAI are NOT that many (refer to RTLv2 and RTAIv6). As
>a matter of fact, in my opinion the "only" discussion in this
>list should be around POSIX compliance, once that this should
>be the common denominator and, at the same time, the unifier
>between both implementations. Other than that there are some
>"unimportant" details such as unified header files, similar
>installations, etc. But yet, that should come naturally after.
>
>
> Guilherme
>
>
>---------------------------------------------------------------------------
-------
>| | I | S | Sched. | S |Po- |pthre|F | Shr| FP | GPL | Ker- | 486
| PPC |
>| | P | e | | | M | six | -| I | Mem| | | nel |
| |
>| | C | m |Per.| OS | P | |ads | FO| | | | |
| |
>-------------------|-------------------------------------------------------
-------
>| | | | | | | | | | | | | |
| |
>| RTL | o | o | w/ | w/ | n | * | n | y | o | y | y | 2.0.x | y
| n |
>| v1 | | |8254|8254| | | | | | | | |
| |
>| | | | | | | | | | | | | |
| |
>---------------------------------------------------------------------------
-------
>| | | | | w/ | | | | | | | | |
| |
>| | | | |8254| | | | | | | | |
| |
>| | | | | + | | | | | | | | |
| in |
>| | | | w/ |TSC | | | | | | | | |
| |
>| RTL | o | o | | | y | * | ** | y | o | y | y | 2.2.x | n
|deve-|
>| v2 | | |8254|APIC| | | | | | | | |
| |
>| | | | | in | | | | | | | | |
|lopm.|
>| | | | |SMP | | | | | | | | |
| |
>| | | | | | | | | | | | | |
| |
>---------------------------------------------------------------------------
-------
>| | | | |8254| | | | | | | | |
| |
>| | | | | in | | | | | | | | |
| |
>| | | | |UP -| | | | | | | | |
| |
>| | | | |SMP | | | | | | | | |
| |
>| | | | w/ | & | | | | | | | | | y
| |
>| RTAI| y | y | |MUP | y | * | ** | y | o | y | y | 2.2.x |
| n |
>| v.6 | | |8254| | | | | | | | | |(for
| |
>| | | | |APIC| | | | | | | | |1
CPU| |
>| | | | | in | | | | | | | |
|only)| |
>| | | | |SMP | | | | | | | | |
| |
>| | | | | & | | | | | | | | |
| |
>| | | | |MUP | | | | | | | | |
| |
>---------------------------------------------------------------------------
-------
>
> y - embeded in the RT modules
> n - not implemented
> o - optional (it can be "insmod'ed" separately)
> * - in RTAI, a POSIX lite API is implemented on top of the original API
> in RTL, the original API is implemented on top of a POSIX lite API.
>** - RTAI - dynamic thread creation, conditional variables and priority
> inheritance mutex,
> RTL - static thread creation.
>
>
>Original API comparison
>=======================
>
> What follows is a comparison btw the two original APIs (RTAI
>and RTLv1). We are not listing the POSIX (lite) API present in
>both recent releases of RTAI and RTL.
>
>
>set up peridic mode
>------------------
>
>RTL:
> RTIME task_ticks;
> task_ticks = (RT_TICKS_PER_SEC/FREQ);
> rtl_set_periodic_mode(task_ticks);
>
>RTAI:
> RTIME task_ticks;
> rt_set_periodic_mode(void);
> task_ticks = nano2count(1000000000/FREQ)
> start_rt_timer(task_ticks)
>
>
>Tell Linux you will be using the FPU
>--------------------------------------
>
>RTL:
> ??
>
>RTAI:
> rt_linux_use_fp(1)
>
>
>initialise a task
>-----------------
>
>RTL:
> rt_task_init( RT_TASK *task,
> void (*fn)(int),
> int data,
> int stack_size,
> int priority )
>
> If it uses the FPU, add:
>
> rt_task_use_fp( RT_TASK *task, 1 )
>
>RTAI:
> rt_task_init( RT_TASK *task,
> void (*fn)(int),
> int data,
> int stack_size,
> int priority,
> int uses_fpu,
> void (*signal)(void) )
>
>
>
>set a (periodic) task running
>-----------------------------
>
>RTL/RTAI:
>
> rt_task_make_periodic( RT_TASK *task,
> RTIME start_time_ticks,
> RTIME period_ticks)
>
>
>suspend a running task until the next tick
>-------------------------------------------
>
>RTL:
> rt_task_wait(void)
>
>RTAI:
> rt_task_wait_period(void)
>
>
>
>cleanup/stop a task
>--------------------
>
>RTAI: stop_rt_timer(void)
>RTL/RTAI: rt_task_suspend(RT_TASK *task)
> rt_task_delete( RT_TASK *task)
>
>
>create a fifo
>--------------
>
>RTL:
> rtf_create(unsigned int fifo, int fifo_size)
>
>RTAI:
> rtf_create_using_bh(unsigned int, int size, 0)
>
>NOTE: both can be used with the simple rtf_create, but the behaviour is
>different. Under RTAI, a user task will only be woken up at the next
>run of schedule (this is an intended feature). To get the same effect
>of waking up as soon as possible, use the above code.
>
>
>put data to a fifo
>-------------------
>
>RTL/RTAI:
> rtf_put(unsigned int fifo, void *buf, int count)
>
>
>get data from a fifo
>----------------------
>
>RTL/RTAI:
> rtf_get(usigned int fifo, void *buf, int count)
>
>
>
>destroy a fifo
>---------------
>
>RTL/RTAI:
> rtf_destroy(usigned int fifo)
>
>
>
>Filename comparison
>===================
>
>Another problem is the name and location of files. This means that
>Makefiles and code has to be changed to locate the different include
>files.
>
>Header names
>-----------
>
>RTL:
> rtl_fifo.h, rtl_sched.h
>
>RTAI:
> rtai_fifos.h, rtai_sched.h
>
>Note: in addition you must also include rtai.h first for RTAI.
>
>
>
>
> -------------< G. N. DeSouza >-------------
> ---------< [EMAIL PROTECTED]>---------
> --< http://rvl1.ecn.purdue.edu/~gnelson >--
>
>
>
>
>------------- End Forwarded Message -------------
>
>
>
>
> -------------< G. N. DeSouza >-------------
> ---------< [EMAIL PROTECTED]>---------
> --< http://rvl1.ecn.purdue.edu/~gnelson >--
>
>
>
>--- [rtl] ---
>To unsubscribe:
>echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
>echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
>----
>For more information on Real-Time Linux see:
>http://www.rtlinux.org/~rtlinux/
>
>
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/