dma

    4熱度

    1回答

    我正在爲SPI連接的LCD寫幀緩衝驅動程序。我使用kmalloc分配緩衝區,這是相當大的 - 150KB。考慮到kmalloc分配緩衝區的方式,ksize報告說,更多的內存正在被使用 - 大約256KB左右。 SPI spi_transfer結構需要指向tx和rx緩衝區的指針,它們都必須是DMA安全的。因爲我希望tx緩衝區大約爲16KB,我可以在kmalloced視頻緩衝區內分配緩衝區,並仍然是D

    0熱度

    1回答

    我是Linux中的驅動程序開發的新手。我想在指定的目標地址觸發DMA read操作,但我沒有關於如何操作的基本概念。我應該爲我的聲卡寫一個新的驅動程序嗎?或者只是調用當前聲卡驅動程序提供的一些API(如果有的話)? 我可以想像,我想是這樣的(從LDD3 Ch15), int dad_transfer(struct dad_dev *dev, int write, void *buffer,

    0熱度

    1回答

    這可能是一個非常基本的問題,但我想了解ioremap_page_range()和vmap_page_range()之間的區別。兩者似乎都將物理地址映射到虛擬地址(在新分配的VM區域中)。 這兩個函數每個需要4個參數,其中3個是相同的。 ioremap_page_range需要一個phys_addr_t,而vmap_page_range需要一個頁面(幀)指針數組。 我的問題是這些功能可以互換使用(假

    0熱度

    1回答

    我有這個問題涉及到Direct Memory Access(DMA)的概念。操作系統/ Linux內核有一些方法可以知道哪些指令使用DMA,哪些不使用?或者DMA完全由硬件實現,操作系統無法訪問DMA控制器?

    1熱度

    1回答

    我有我的OpenCL C++包裝性能問題,我需要從緩衝器d的數據傳輸到緩衝液B儘可能快地(使用地圖/取消映射實現的6Gb/s的DMA速度PCI-E),然後將數據複製到緩衝液A(在約40GB/s的器件速度) ********************************* * device(discrete gpu) * * * * (enqueueCopyBuffer)

    9熱度

    1回答

    我試圖使用monitor/mwait指令來監視從設備到內存位置的DMA寫入。在於,在內核線程運行的內核模塊(字符設備)我有以下代碼(非常類似於內核代碼this piece): static int do_monitor(void *arg) { struct page *p = arg; // p is a 'struct page *'; it's also remapped to

    0熱度

    1回答

    請看下面的圖片。 您可以看到三星將SATA 3集成到Exynos 5 Dual中。那麼這是否意味着使用Exynos 5的智能手機將能夠通過SATA接口連接到硬盤驅動器或光驅?我誤解任何東西嗎? 此外,圖中的DMA(「32x DMA」)是指「Direct Memory Accessing」?

    3熱度

    1回答

    我已經爲傳輸模式下的DMA寫入了一個簡單的設備驅動程序,並啓用了DMA以及中斷。 我使用的硬件是帶有Linux 3.4的omap 4460 pandaboard。 下面我分享了代碼的相關部分。 在打開相: dma_map = ioremap(UART4_DMA_REG,0x1350); if(dma_map == NULL) { printk(KERN_INFO " unab

    0熱度

    1回答

    通過用戶空間的memcpy DMA:是否可以通過linux中的用戶空間DMA實現memcpy?我知道有辦法通過DMA將內核緩衝區複製到用戶空間緩衝區,但是想通過用戶空間的DMA將memcpy擴展到用戶空間緩衝區?有什麼想法嗎 ?

    0熱度

    1回答

    我試圖利用GPDMA控制器訪問SSP1通道。使用CMSIS庫應該是全面的。但是我在SSP1輸出中看不到任何東西。 作爲第一個例子,我想發送一個字節。 uint8_t buffer[20] = { 0x9F }; int main(void) { // ... using PINSEL_ConfigPin to configure the SSP1 pins... //