> We want to use RT-Linux to develop a real time application,
> for which we require details of system calls which can 
> perform the following functions. 
> 
> 
> 1. To start a task which is not periodic.

you can use :
int rt_task_wakeup(RT_TASK *task)

> 
> 2. To make a task wait, rt_task_wait() is it only for 
>    periodic task or can it be used for non periodic 
>    tasks also.

look at the attached file , it include 2 new function :
        void rt_task_sleep_until(RTIME time)
and     void rt_task_sleep(RTIME delay)

> 
> 3. To make a task enter a critical region where other 
>    tasks cannot interfere with the task in the critical
>    region.
>

sorry , no idea ....
 
> 4. To make a task leave the critical region.
>

sorry no idea too ...
 
> 5. To read a device with timeout.
> 

use the rt_task_sleep as watchdog function ....

> 6. To start a task after a specified time but the task
>    should not be periodic. It should be started only
>    once.

Alway the rt_task_wakeup fuction ...

> 7. Is there any method by which we can call real time
>    system calls in the application, if so how.
> 

The easyest way for a user-space app. is using an rt_fifo
        as semaphore .
If the caller is kernel-space fuction , you can call or wakeup
an rt_function directly ( his name is in the kernel-space entries ...)

> 8. To communicate with the application and modules 
>    is FIFO the only mechanism.
>    Writing and reading from FIFOs takes a lot of time 
>    is there any other method of communicating apart
>    from FIFOs.        

I use a shared memory to share 1Mo Image analyse with copy !
the trick is not difficult :
you add in your lilo append : "mem=24M" for exemple if you have 32Mo
of Ram , then linux will use only 24Mo letting the other 8 Mo for you.

Then you do a vremap in the kernel-space function to access to this
memory space ( carefull between physical addr and virtual addr ! )
you can access only a virtual space addr but you vremap the physical
addr.

For you app. in the user-space , you open "/dev/mem" with the read
or write or both right ( as you want to do , modify the right access
of /dev/mem if necessary ...) and do a mmap on this file desc. and
then access as a memory mapped ( THE SAME as kernel-space add-on ! )


        Good luck . Chris.
---------------------------------------------
Ce message a été envoyé avec EASYPOST,
gestion des mails par Easynet.
http://easypost.easynet.fr/

rt_sleep.c

Reply via email to