[問題] Linux 實體記憶體

作者: rtes (unbutu)   2013-04-16 01:30:04
小弟有個問題想請教
假設Linux的user層有一支程式Task A想透過共享記憶體溝通
首先申請一塊free memory,接著就會將此free memory透過系統提供之mmap映射
到Task A的虛擬空間。
另外如果想利用驅動程式存取memory map io Register,通常會透過ioremap將Register的
實體空間映射到kernel的虛擬空間。
我想請教的問題是有沒有函式可以讓一般的記憶體(類似剛才提到的free memory)映射到
kernel層的虛擬空間。
謝謝大家
作者: alongalone (沿著孤單的路)   2013-04-16 12:44:00
我覺得你可能要重看mmap是用來幹嘛得....mmap應該就是用來達成你要的功能才對不好意思我好像看反了.你好像是要反過來做?http://tinyurl.com/d2ob3h9 不知道算不算你要的
作者: rtes (unbutu)   2013-04-16 13:28:00
我查到的文獻說明虛擬空間切成兩半分 一部分是行程另一部分是Kernel 我想把一般的記憶體映射到kernel那部分還是說映射沒有分映射到哪 可是這樣又為何有mmap 和ioremap先去閱讀您提供的資料 謝謝
作者: alongalone (沿著孤單的路)   2013-04-16 23:54:00
ioremap是把phyical轉成virtual address.可是你用alloca()的方式一定是取得virtual; 沒啥衝突

Links booklink

Contact Us: admin [ a t ] ucptt.com