> 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