Linux系統環(huán)境下的FPGA驅動(dòng)方案解析
3.3 地址映射
在Linux設備驅動(dòng)程序開(kāi)發(fā)過(guò)程中,由于驅動(dòng)程序操作的都是設備的虛擬地址,因此,要使驅動(dòng)程序對虛擬地址的操作反映到正確的設備上,還需要通過(guò)內存管理單元MMU來(lái)將設備的虛擬地址映射到正確的物理地址上去,從而保證驅動(dòng)程序對設備的虛擬地址的操作,也就是要對其相應的物理地址進(jìn)行操作。使用內存映射的好處是處理大文件時(shí),其速度明顯快于標準文件I/O,這樣無(wú)論讀和寫(xiě),都少了一次用戶(hù)空間與內核空間之間的復制。在用戶(hù)空間對FPGA設備的訪(fǎng)問(wèn)可通過(guò)內存映射來(lái)實(shí)現。FPGA可以看作是硬件連接在S3C2410微處理器的片選信號nGPCS4上的一段物理地址的尋址。因此,必須先把物理地址映射到虛擬地址空間,然后才能對該段地址進(jìn)行讀/寫(xiě)。通常用戶(hù)可用如下代碼關(guān)聯(lián)FPGA的地址:
fpga_base=ioremap(FPGA_PHY_START,FPGA_PHY_SIZE);
4 結束語(yǔ)
本文系統的介紹了ARM基于Linux平臺下的FPGA的驅動(dòng)開(kāi)發(fā)方法,并通過(guò)開(kāi)發(fā)用戶(hù)程序,實(shí)現了數據的處理和傳輸,從而實(shí)現了FPGA在嵌入式領(lǐng)域的廣泛應用。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論