You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断ZYNQ 7000的DMA中断是否正常及查找UIO对应中断号

问题背景

我通过Jtag、tftpboot将Linux启动到AVNET ZYNQ 7000开发板,之后改为从QSPI启动。项目目标是通过DMA实现PS与PL间的数据传输,已用VIVADO完成设计并通过Petalinux启动Linux。运行测试代码时程序卡在“等待中断”状态,因此想检查中断是否正常工作。在板端终端执行cat /proc/interrupts后,得到30至38号中断信息,示例(30号):

30: 0 0 GIC-0 46 level f8003000.dma.controller

我的system-user.dtsi文件内容如下:

/include/ "system-conf.dtsi"
/ {
    chosen {
            bootargs = "earlycon clk_ignore_unused uio_pdrv_genirq.of_id=generic-uio rootwait quiet loglevel=0";
            stdout-path = "serial0:115200n8";
        };
};

&axi_dma_0 {
        compatible = "generic-uio";
        interrupt-parent = <0x1>;
        interrupts = <0 29 4 0 30 4>;
};

&qspi {
        #address-cells = <1>;
        #size-cells = <0>;
        flash0: flash@0 {
                compatible = "n25q512a","micron,m25p80","jedec,spi-nor";
                spi-max-frequency = <50000000>;
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <1>;
        };
};

核心问题

  1. 能否通过cat /proc/interrupts的输出判断我的中断是否正常工作?
  2. 如何找到UIO读命令有数据可用时应触发的中断号?

回答

问题1:通过cat /proc/interrupts判断中断是否正常工作

可以初步判断,核心看输出里的中断计数:

  • 输出中30: 0 0 ...里的数字是该中断的触发次数。如果你的DMA测试代码已经尝试触发中断,但计数始终为0,说明中断未被触发或未被内核正确捕获。结合你程序卡在“等待中断”的现象,大概率中断没有正常工作。
  • 另外,输出里的level表示中断为电平触发,和你设备树中配置的<0 29 4>/<0 30 4>里的4(对应IRQ_TYPE_LEVEL_HIGH)匹配,触发类型配置无问题。

问题2:找到UIO读命令对应中断号

方法1:结合硬件设计与设备树

ZYNQ的AXI DMA通常有两个中断:对应发送完成(TX)和接收完成(RX),UIO读数据可用时,对应DMA的接收完成(RX)中断。

  • 打开VIVADO中的AXI DMA IP配置界面,查看中断映射,确认RX中断对应的硬件中断号(即设备树中<0 X 4>里的X值),对应你设备树里的29或30号。

方法2:通过sysfs节点查询

挂载UIO设备后,进入对应目录查询:

  1. 进入/sys/class/uio/uioX/(X为UIO设备编号,如uio0),查看name文件确认是axi_dma_0对应的设备;
  2. 查看irq文件,获取该UIO设备绑定的内核中断号,再对应/proc/interrupts里的信息,找到对应的硬件中断号;
  3. 进入/sys/bus/platform/devices/f8003000.dma.controller/(对应/proc/interrupts里的设备名),查看interrupts文件,里面会列出该DMA注册的所有中断号,和设备树配置一一对应。

方法3:测试验证

分别触发DMA的TX和RX操作,观察/proc/interrupts里哪个中断的计数增加:

  • 执行一次PL到PS的DMA传输(触发RX),若29或30号中断计数上升,该中断即为UIO读数据可用时的触发中断。

内容的提问来源于stack exchange,提问作者Creator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:20:55