[问题] 关于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