Koichi Okazawa
|
共有メモリーに後で、物理メモリー領域を割り当てるには
|
Koichi Okazawa
04/06/2011 10:42 PM
post84731
|
共有メモリーに後で、物理メモリー領域を割り当てるには
共有メモリーに後で物理領域を割り当てるには次の関数を用います。
ヘルプを参照すれば全体のコードを確認できます。
shm_ctl( fd, SHMCTL_PHYS, physaddr, memsize )
http://www.qnx.com/developers/docs/6.4.1/neutrino/lib_ref/s/shm_ctl.html
注意点)
memsize はページサイズのn倍にしてください。
ページサイズ以下で設定した場合、エラーとなります。
応用)
(1) ドライバーが使用している物理アドレス領域を共有メモリーとして公開して他プロセスからアクセスできるようにする。
デバッグ時に # spatch /dev/shmem/{Name} に内容を参照したり直接アクセスができます。
(2) mmapで連続メモリー領域を生成する場合、同時に共有メモリーを割り振れません。これはmmapの引数がNOFDを要求するためです。
一度、作成した連続メモリー領域を物理アドレスに変換してこの関数を呼べばアクセスしたいプロセスで名前による共有が可能となり
ます。
|
|
|