On Sun, 4 Apr 1999, Rob Butera wrote:
>
> #define BASE_ADDRESS base_address_of_shared_memory
> void *shmem ;
> ...
> shmem = BASE_ADDRESS ;
>
> I find it necessary to use "vremap" to assigned shmem for the
> runtime process. I have emailed others who have as well, and
> others who have not found this necessary. Can anyone suggest
> why the conflicting results?
>
I also found vremap was necessary (but I had your buzz code to look at, so
the memory mapping stuff was a snap - thanks for making it available) when
I used memory above 32 MB (this was on a Pentium 166); upto 32 MB the
straight pointer worked fine. I never investigated this further.
I'm impressed that you can run a coherent closed loop at 70kHz. At this
rate it seems like the jitter would, at least in the limit, be on par with
the task period.
I have also found memory mapping useful, in a similar application, and
also use the FIFO trick to alert the Linux process that the data has
changed (actually I use an array of data buckets, when one fills the user
process is alerted via a FIFO). I'll admit that I never tried jumbo FIFOs
to see if they would work; I guess I assumed the memcpys would be
expensive, it's interesting to hear that is not the case.
This thread has been excellent. My only (other) comment would be that
perhaps a pointer to Rob Butera's buzz code should be added to the
RT-Linux homepage near the link to Fred Proctor's page (which was also
*very* useful) dealing with shared memory.
-Don
--- [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/