Thread (3 messages) flat view 3 messages, 3 authors, 2001-08-08

Re: A Question on Physical Memory Access from Applications

From: Andrew Johnson <hidden>
Date: 2001-08-08 14:32:20

"Karaaslan, Utku" wrote:
I have a problem: we've got a number of ADA applications which are
using direct memory access to certain hardware registers. Under
VxWorks, this is not a problem as it lacks kernelspace/userspace
separation. Under Linux, I know I can do direct memory access (through
/dev/mem), but in this case I want to use the applications as they are,
with no change to the ADA code. Is there any way to do physical memory
access transparently wrt the application? Many thanks in advance.
If you don't mind inserting some code into the application startup then
you could probably do something with mmap(), either with /dev/mem or
(safer) by writing your own kernel driver for the relevent hardware that
supports mmap()ing just the relevent physical range into user-space (and
makes it non-cacheable).  It might be possible to use LD_PRELOAD to do
this at startup without changing the application at all, although I
suspect you might have to make some changes to get the address of the
mmapped region - I'm not sure that you could guarantee to place it where
you want in virtual memory.

HTH,

- Andrew
--
The world is such a cheerful place when viewed from upside-down
It makes a rise of every fall, a smile of every frown

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help