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

看板C_and_CPP (C/C++)作者 (老逼)時間11年前 (2014/11/06 21:01), 11年前編輯推噓4(402)
留言6則, 4人參與, 最新討論串1/1
開發平台(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只是很好奇 先謝過各位~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.211.213 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1415278906.A.754.html ※ 編輯: bibbo (220.135.211.213), 11/06/2014 21:03:35

11/07 00:12, , 1F
第二種是沒MMU直接抄作實體位址。
11/07 00:12, 1F

11/07 09:18, , 2F
可是我mmu好像有打開耶
11/07 09:18, 2F

11/07 10:01, , 3F
看系統跟情況,妳這樣講太不清不楚
11/07 10:01, 3F

11/07 12:57, , 4F
同意樓上,不過mmu只跑一層分頁的話其實是一樣
11/07 12:57, 4F

11/07 16:30, , 5F
對耶,感謝樓上兩位大大的提醒,如果MMU只跑一層,
11/07 16:30, 5F

11/07 16:31, , 6F
又map到同樣的地方,第二種方法MMU有開也行。
11/07 16:31, 6F
文章代碼(AID): #1KMt4wTK (C_and_CPP)
文章代碼(AID): #1KMt4wTK (C_and_CPP)