Re: [問題] 請問如何在 MMU 的 MPIS 系統上對實體 …
這是由kernel幫你做的ioremap , 沒辦法由你自己指定位址 , 但是可以
確定的是你可以寫一個簡單的char device去做位址轉換 , 然後透過此
device 去控制你要的實體位址..
Ex: /dev/LEDIo => mmap => 0x10000000 = 你可以透過open()去傳送
你要的資料到此裝置的位址.
※ 引述《Hfoxconn (Device Driver)》之銘言:
: ※ 引述《Hfoxconn (Device Driver)》之銘言:
: : 請問一下
: : 公司現在想要用含有 MMU 的 MIPS 主版去開發產品,
: : 之前公司所用的主版是不含 Memory mapping 的,所以我只需要參照
: : 產品的 Data sheet 上的實體位址,去使用指標,即可對版上的周邊
: : 進行控制或讀寫。
: : 但是現在使用的這個主版含有 MMU 的功能,我在 User space 所能參照
: : 到的位址應該是 Virtual address 而不是 Physical address ,請問我要如何
: : 由 User space 的應用程式端藉由已知的實體位址去對版上 CPU 周邊進行控制。
: : 小弟的想法是
: : 1. 先想辦法由周邊的實體位址得到 MMU 後的 Virtual address
: : 2. 再來 User space 應用程式即可藉由所得到的 Virtual address 去對周邊做控制
: : 如果這個想法的流程是對的,請問各位前輩是否有相關的 System function
: : 可以達成呢,或是請前輩可以簡述一下方法?
: : 還是有更好或更簡單的方法可以做到?如果可以的話麻煩說明一下。
: : 謝謝各位先進的指導。 <(_ _)> 感激不盡 Linux 剛入門
: 感謝 tseng1139 大大的指導
: 再請教一下,我有查了一下,ioremap 可以將裝置的實體位址 mapping 到 user指定
: 的虛擬空間,所以簡單來說我只要參照版子的 Data sheet 上的周邊實體位址再配合
: 一個 User space 的虛擬位址,去餵給 ioremap 即可對我指定周邊去做控制是嗎?
: 這個 User space 的虛擬位址可以在 User space 隨意自定嗎?還是有一定限制呢?
: (像是一定要由某 function 來生成之類的)
: 再次感謝 tseng1139 大大
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 71.95.15.126
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章