[問題] 關於memory-mapped IO一點問題

作者: bibbo (老逼)   2014-11-06 21:01:43
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
已爬文可是搜尋不太到 主要是關於register讀寫的問題 是這樣的:
再看code的時候常看到用ioremap這種標準作法
假設讀取0x00333333這位址
reg=ioremap(0x00333333,4); map到kernel虛擬空間 然後便可透過reg去操作這位址
但我也經常看到用 (*((volatile unsigned long *) 0x00333333))去define的作法
想請問這2種用途差別在哪? 或其實都可以? 我懂volatitle只是很好奇
先謝過各位~~
作者: karose (karose)   2014-11-07 00:12:00
第二種是沒MMU直接抄作實體位址。
作者: bibbo (老逼)   2014-11-07 09:18:00
可是我mmu好像有打開耶
作者: final01 (牛頓運動定律)   2014-11-07 10:01:00
看系統跟情況,妳這樣講太不清不楚
作者: askacis (ASKA)   2014-11-07 12:57:00
同意樓上,不過mmu只跑一層分頁的話其實是一樣
作者: karose (karose)   2014-11-07 16:30:00
對耶,感謝樓上兩位大大的提醒,如果MMU只跑一層,又map到同樣的地方,第二種方法MMU有開也行。

Links booklink

Contact Us: admin [ a t ] ucptt.com