Xu Zhang,

Without getting into the details of all your questions,
I would pose these questions to you.  

Do you need real time for your application?

If not then you could keep your application in user space and use your
existing driver.

If you need real time I suggest that you look into the comedi project.
There are 
drivers for many NI cards.  In fact I use a NI6033 PCI card.

There is an interface to the driver from a real time module.

http://stm.lbl.gov/comedi/


Regards,

Rich


-----Original Message-----
From: Xu Zhang [mailto:[EMAIL PROTECTED]]
Sent: Monday, September 24, 2001 9:09 PM
To: [EMAIL PROTECTED]
Subject: [rtl] concept questions about rtlinux/linux when using fifo


Hi, all,
I use rtlinux2.2 with kernel 2.2.14. I am working on the NI6024 PCI data
aquisition board and its driver, the EDAQ driver, which doesn't support
any real-time function. I tried add functions so that the kernel can
notify the user space when interrupt happens. I tried to use "fifo" to set
up the communication between kernel and user space. I added the code in
the driver:

    if(access(FIFO_NAME, F_OK) == -1){
    res = mkfifo(FIFO_NAME, 0777);
    if(res != 0) {
       DEBUG_PRINT (("Xu could not create fifo %s, res = %d, errno =
%d\n", FIFO_NAME, res, errno));
      //      exit(EXIT_FAILURE);
    }
    }

But when I install the driver, it outputs the errno = 14 which is EFAULT.
I think it cannot access this address.
Now I have two questions:

(1). I found somewhere says that Linux kernel may be preempted by an RT
task even during a system call, so no Linux routine can be safely called
from real-time tasks.
Actually, I even haven't install any real-time module yet.
Is that true the fifo preempted by the RT task so that I cannot
successfully set up a fifo in a normal Linux driver but with rtlinux
kernel? If this is the reason, do I have to remove the rtlinux and
recompile the kernel so the system will be normal Linux?

(2) Is there any restriction for the PCI board to access the memory?

any advice?

Thank you.

Xu

-- [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/

-- [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/

Reply via email to