PCIE DMA暫存器出錯

2022-01-15 17:53:02 字數 793 閱讀 1468

想用fpga跟pc通過dma通訊: 

qsys 配置如圖:  

驅動寫 dma **: 

kdprint(("  中斷已經註冊       \n"));

// 1. 設定dma引數

write_register_ulong((pulong)(g_memregister + 0x4000 + 0x04), (ulong)0xffffffff); // dma 讀位址

write_register_ulong((pulong)(g_memregister + 0x4000 + 0x08), (ulong)0xffffffff); // dma 寫位址

//write_register_ulong((pulong)(g_memregister + 0x4000 + 0x08), (ulong)m_pycialaddressforimage.lowpart);

write_register_ulong((pulong)(g_memregister + 0x4000 + 0x0c), (ulong)0x0);  // dma 長度

dumpbuffer(g_memregister + 0x4000 , 0x40);   // 列印日誌

dumpbuffer 列印出來的,內容:

跟我想要的完全不一樣,    這是什麼原因啊?

暫存器(通用暫存器)

因為學習使用的是王爽的 組合語言 第3版 因此也只能提到8086cpo的暫存器。對於其他而言,原理都是相通的。對於8086暫存器,有14個暫存器,主要是 ax bx cx dx si di sp bp ip cs ss ds es psw。一 通用暫存器 8086的通用暫存器有ax bx cx dx...

暫存器,標誌暫存器

涉及硬體傳輸資料的,往往包含以下內容 1.資料傳輸引腳 資料放 2.控制引腳 怎麼控制 3.狀態引腳 結果如何 暫存器相當於cpu內部的儲存單元,可能是連續排列,相當於 c語言中的陣列。一 8個通用暫存器 16 bit accumulate axah alr0 count cxch clr1 dat...

CS 暫存器 和 IP 暫存器

下面將要介紹的是一組非常非常重要的暫存器,即 cs ip cs ip 兩個暫存器指示了 cpu 當前將要讀取的指令的位址,其中cs 為 段暫存器,而ip 為指令指標暫存器。什麼叫做指示了 cpu 當前將要讀取的指令呢?在 8086 cpu 中,為什麼 cpu 會自動的執行指令呢?這些指令肯定是存放在...