0

アルテラ FPGA PCIe コアで動作するように Linux PCIe ドライバーを変更しています。ドライバー コード内で pci_set_master(dev) を実行して、PCIe の読み取りと書き込みを機能させます。

ARM DMA を使用する代わりに、altera SG-DMA を使用して PCIe 転送を実行しています。転送を開始するには、FPGA DMA にイネーブル ビットを書き込む必要があります。イネーブル ビット レジスタに pcie write(barx,offset,data) を実行することで、完全に機能しています。

問題は、I/O 割り込みが発生したときにシステムで PCIe FPGA DMA を開始する必要があることですが、割り込みが発生したときに、ISR 内に pcie write(barx,offset,data) を配置すると、Linux 全体がそこでハングします。 .

誰もこれに直面したことがありますか?私を助けてください。前もって感謝します。

4

1 に答える 1