Peter,
I am currently using an Advantech PCL 833 and PCL 728 card under RTL. I
modified their drivers quite easily for use under RT-Linux (start with the
Borland c driver source code for DOS and #define outportb(a,b) outb(b,a)
...). There was not much more for me to do except use the driver in my rtl
module. I am having problems setting the interrupt time reliably. Most of
the time it works but then the time base messes up ?!? In short it is
fairly simple to put the whole driver for the card into your rtl module.
Using shared memory or fifos is up to you either are simple to implement (1
day to get started and operating with shared memory if you follow the
shared memory docs from the rtl site).
See the examples of the fifos and shared memory and use a command to send
config information. I use linux proper to discover the location of my PCI
DIO card IO mappings and interrupt line then pass this information to my
rtl module via a fifo. Information is also send via shared memory but that
is mostly for rapid random item async. data transfer. I think that using
rtl will allow your system to be more bullet proof against buffer overflow
on the card and it will definitely help in making your system more
deterministic (what the list talks about as jitter). I do not know what you
are going to do with the data, how fast it is coming in, what the system
load is ... so I can not say if plain linux/X would do. Rtl does add some
very nice and useful tools for scheduling.
You are definitely correct that a linux solution is superior to a DOS
solution if storage space is available for the linux system (and memory
...). You do gain integrated networking which can be costly otherwise.
Hope this helped,
John
On Wednesday, March 03, 1999 6:14 AM, Peter Wurmsdobler
[SMTP:[EMAIL PROTECTED]] wrote:
> Hi,
>
> probably the following thoughts sound stupid to the experts
> in this list, but anyway I will try to explain. For several
> months I have been following this group, but still there are
> some unresolved problems torturing my brain. Before I pose
> some questions, however, let me explain what I would like
> to implement on a 486/33 equipped with an Avantech PCL818
> data aquisition board:
>
> After starting an X application and setting some parameters,
> the card is initialised to issue an interrupt at a defined
> frequency (approximately 1-5kHz). Then the following should
> happen until the measurement process is stopped by the user
> application:
> 1. IRQN issued by card, interrupt handler called,
> 2. interrupt service routine calls functions like
> - read some values from card into a fifo buffer
> - output some values from a ring buffer
> these functions are either implemented by a rt-module
> or as driver functions.
> The fifo buffer has a fixed length and can be read by the
> user process entirely, the ring buffer is used in order
> to output a periodic function which can be defined from
> the user programm.
>
> 1. Would an ordinary linux kernel be sufficient or do I have
> to use rt-linux in order to guarantee that this periodic task
> can not be interrupted by any other interrupt?
>
> 2. Even though some drivers for several data aquisistion cards
> are offered at the llp site, I wonder how people cope with
> real time issues using these drivers. As far as I understand
> rtl (thanks to Tomek), a conventional driver cannot be accessed
> within a rt-module, unless this code is integrated in itself.
>
> 3. If the real time module controls the data aquisition
> card entirely, how can I pass configuration information to
> it from a user programm, like start conversion, set sampling
> frequency etc.?
>
> 4. Is it reasonable to make an own module exporting some
> hardware related functions e.g. rt_read_DAC0 for the
> data aquisition board in addition to a real time module
> (not necessarily a process) and the fifo module? Who will
> register the interrupt of the board then? How will they
> work together?
>
> 5. Is it even necessary to use rt_sched, if I had only one
> periodic task? My common sense would say no. Insert just one
> module in a real time kernel in order to not being interruptible
> would do the job if timing is done by the card itself?
>
> Lots of questions which to find a solution because I had
> promised to my boss that a Linux real time application
> will be ready soon and in addition be superior to a DOS98
> based one.
> Thanks in advance,
> peterw
> --
> Dr. Peter Wurmsdobler
>
> CETEHOR, 39, av. de l'Observatoire 8, rue Jean Petit
> FAX: +33 3 81 53 04 60 25000 Besancon
> phone: +33 3 81 50 38 88 +33 3 81 82 11 42
> email: [EMAIL PROTECTED] FRANCE
> http://www.impa.tuwien.ac.at/impa/mitarb/pw/pw.htm EU
>
> Ceterum censeo MIRCOSOFTem esse delendam.
> --- [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/~rtlinux/
--- [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/~rtlinux/