dma

    0熱度

    1回答

    我試圖學習使用PCI/PCIe設備的設備驅動程序的DMA,我的平臺是linux/bsd。我發現了很多簡單的PCI板用於培訓(例如簡單的數字I/O板),但沒有一個硬件複雜到足以處理DMA。 Stackoverflow上的任何人都知道有某種微處理器或mcirocontroller的PCI/PCIe卡,我可以使用gcc(例如PowerPC,68HC11,Atmel,8051等)這樣的開源工具進行編程。

    2熱度

    1回答

    我在寫一個OpenCL程序,我希望使用DMA將數據從圖像採集卡傳輸到GPU。我如何獲得GPU上的OpenCL緩衝區的物理地址來完成此操作?

    0熱度

    2回答

    我正在閱讀有關位陣列的問題,這個問題出現在我的腦海裏。 爲什麼大多數機器無法處理個別位?是否是因爲DMA,並且因爲爲每個位保留一個地址,它(存儲器/電路)太昂貴了?

    3熱度

    1回答

    我正在爲Linux中的DMA設備編寫設備驅動程序。在Linux Device Drivers, Chapter 15,它說: 對於這種侷限性的設備,內存應該通過增加GFP_DMA標誌的kmalloc的或 由get_free_pages調用分配從DMA區 。當該標誌存在時,只分配可以用24位對其進行尋址的存儲器。另外,您也可以使用 通用DMA層(我們稍後討論)分配的緩衝區是 工作在你的設備的限制 我

    1熱度

    1回答

    我可以將數據塊從應用程序傳輸到設備驅動程序,但無法使用DMA將設備驅動程序的接口寫入實際硬盤驅動器。有沒有任何示例代碼或指針? 將不勝感激您的幫助,

    0熱度

    2回答

    我知道使用DMA將硬盤數據傳輸到主內存,但網絡堆棧數據不能使用DMA,數據必須通過處理器。這是真的嗎?如果是的話,有什麼方法可以避免這種情況?通過處理器傳輸數據不是真的沒有效率嗎?

    7熱度

    2回答

    我在寫一個linux設備驅動程序,允許FPGA(當前通過PCI Express連接到PC)將DMA數據直接存入CPU RAM。這需要在沒有任何交互的情況下發生,並且用戶空間需要訪問數據。一些細節: - 運行64位的Fedora 14 - 系統具有的RAM 8GB - 的FPGA(氣旋IV)是PCIe卡 上在試圖實現這一點我執行以下操作: - 保留上2GB的內存與memmap 6GB $ 2GB(不

    1熱度

    1回答

    在具有32位設備(例如傳統NIC)的x86_64系統上:在NIC和DRAM之間進行DMA時,內存地址是否必須位於內存較低的位置(低於4GB)? 順便說一下,OS如何知道爲PCI設備保留的內存地址空間資源,即存儲在BAR中的地址?

    16熱度

    1回答

    這個調用返回的DMA地址是否與物理地址相同? LDD3表示DMA地址應該被驅動程序視爲不透明。我想要映射這個DMA緩衝區,以便用戶空間可以直接讀取/寫入它。問題是我應該爲remap_pfn_range指定什麼PFN(現在我的驚喜(內核3.4+)對傳統內存和I/O內存相同)。我可以將DMA地址轉換爲無符號長整型並將其轉換爲PFN嗎?這不違反LDD3關於不透明性的說法嗎? dma_alloc_cohe

    3熱度

    2回答

    我剛接手了一個爲STM32 Cortex M3微控制器開發C代碼的項目。 我立即得到的問題是我有一個可在2個USART之間傳輸數據的自由運行DMA通道,但有時需要將來自另一個源的數據發送到目標USART。 有什麼辦法可以檢測到DMA正在忙於傳輸數據還是處於空閒狀態,或者在傳輸完成時是否有任何中斷被觸發。 非常感謝任何反應, 戴夫