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/
