Hi,

I reserved a block of shared memory (4M) at boot time, its base address is
252*0x100000.

Now, I try to use this block of memory as three seperate shared memory,
with different base addresses.

Base A 252*0x100000
Base B 255872*0x400
Base C 255972*0x400

The thing that I could not understand is:
even though several  processes can map (mmap) these three shared memory
into their own memory spaces successfully and one process can write data
into shared memory A (with Base A), shared memory B (with Base B) and
shared memory C (with base C) with out any problem. The other process can
only get correct data from shared memory A, not from shared memory B and
C (memcpy)

I did some test and found that only the shared memory that with base
address in alignment with the base address of the reserved block of
shared memory can communicate correctly between processes. Any other
that with different base address could not work correctly. Why this
happens and how could I have three shared memory segments for each
process?


Any hints is highly appreciated.

Dingrong Yi


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

Reply via email to