On Thu, 16 May 2002, Miguel Saiz Arnedo wrote:

> Hello,
> 
> I am working on a project in which I must use RTLinux as real time support to 
> implement a modem. I have already made a program working on "normal" linux 
> which simulates the process and now I must port it to RTLinux. I will use 
> dac/adc boards to get data in and out the pc. The modulator must periodically 
> generate some data, map it on some kind of signal symbols and write the simbols 
> in the dac channel. The demodulator must read the symbols from the adc channel 
> and invert the process. 
> 
> In the porting to RTlinux two questions arise:
> 
> 1)We must buy the dac/adc boards: What do I need for them to be able to work in 
> RTlinux? Can a Linux driver do? Or does the driver have to be specially 
> implemented for RTLinux? And if this is the case, do vendors provide that kind 
> of drivers? Are they easy to find by other means if they don`t? Does anyone 
> know about some specific board model which can work in RTlinux without many 
> problems?

Linux drivers won't work, and so you will need dedicated RTLinux drivers. There
are a number of boards supported under the comedi package 
(http://stm.lbl.gov/comedi/). In addition, there are some companies that
provide RTLinux drivers for their boards. I do high rate, multichannel data
acquisition, and so I so cards from UEI (www.uei.com) but for a modem
application I would think a cheaper card from National Instruments or some
other company would do.
> 
> 2)In the porting of the c code: Will I have severe limitations in trying to put 
> my code into the kernel modules and the RTtasks?I mean, will I be able to use 
> in RTLinux all the functions I use in mi Linux made code? I have read that 
> functions like printf or some math functions can�t be called from a module. Why 
> is this? What kind of code do they execute for them not to be able to be called 
> from a module?

Although I haven't tried it, there are various reports that it is possible to
include most math functions. Overall, my experience has been that normal C code
can be ported without too much trouble, although memory allocation is a bit
trickier (kmalloc instead of malloc, or, better yet, use mbuff). The
differences come largely when you want to interact with the display, the user,
or similar devices, in which case you have to write a normal linux space
process that interacts with your kernel module using either FIFOs or shared
memory. There are also important differences between regular kernel modules and
rt modules, but if you use comedi or some other library I don't think those
differences will be important.

good luck,

Loren Frank
==
Loren M. Frank

Postdoctoral Fellow
Neuroscience Statistics Research Laboratory
Harvard / M.I.T. Division of Health Sciences and Technology and
Department of Anesthesia and Critical Care, Massachusetts General Hospital


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