This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5716:DSP 内核丢弃中断

Guru**** 2581345 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1548186/am5716-dsp-core-drop-the-interrupt

器件型号:AM5716


工具/软件:

背景简介:

DSP 内核将 SPI 集成到 W5500 芯片、并为 SPI 启用了 DMA 功能。 W5500 中断丢失的可能性较低。 仪器可以检测到 W5500 的中断引脚已被拉低、但未生成中断。

启用 w5500 中断:

  CSL_xbarDspIrqConfigure (1CSL_XBAR_INST_DSP1_IRQ_55、CSL_XBAR_GPIO1_IRQ_1);
  GPIO_setCallback (SPI1W_INT_INDEXw5500CallbackFxn);
  GPIO_enableInt (SPI1W_INT_INDEX);
启用 SPI dma func:
#ifdef SPI_DMA_ENABLE
  /*设置与 DMA 相关的初始化配置*/
  spi_cfg.edmaHandle = MCSPIApp_edmaInit ();
  spi_cfg.dmaMode   = true
#endif
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是否与中断优先级相关? 中断优先级是否可在 DSP 内核中配置? 还有其他建议吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    DSP 内核集成了一个 SPI 到 W5500 芯片、并为 SPI 启用了 DMA 功能。 W5500 中断丢失的可能性较低。 仪器可以检测到 W5500 的中断引脚已被拉低、但未生成中断。

    您能告诉我 W5500 中断输出使用的是哪个 SoC GPIO 引脚?

    此致、

    Karthik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    GPIO1_31 引脚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“661771" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1548186/am5716-dsp-core-drop-the-interrupt/5958974 ]GPIO1_31 引脚

    你好、Lin

      该引脚是配置为边沿触发器还是电压电平触发器?

      请将此引脚设置为 1、然后检查相关寄存器以查看寄存器是否已设置?

    此致

      Semon

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ;为下降沿触发、单位为 μ s

    目前的情况是:基本功能正常、但有时在运行一段时间后会错过中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当前情况是:基本功能正常、但有时在运行一段时间后会错过中断。

    您好 Lin

      当触发中断且设置或清除 GPIO 状态位时、是否可以观察到这种情况?

      请做一些经验:

        1.定期使  W5500 触发中断?

        2、DSP 读取 GPIO 状态位和中断、以查看此中断何时会丢失

    此致

      Semon  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 每 3ms 触发一次中断。

    2. 错过中断的时间是不规则的、有时发生在几分钟后、有时发生在几十分钟后。

      • 捕获的数据 、GPIO 读取值显示低级别、  但未触发中断
           

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Lin、

    您能否在中断缺失时读取 GPIO 中断状态寄存器并共享值?

    - Pratap。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [ 2384.708][t=0x000001a0:6cdec798] xdc.runtime.Main:++++++++++++++++++++++ Scott cpu_load:56-----
    [ 2384.708][t=0x000001a0:6ce3791c] xdc.runtime.Main: Scott Get GPIO 值:1、getSn_IMR = 31、getSn_IR = 4、getSIMR = 1、getSIR = 1、getIMR = 0、getIR = 0
    [2384.708]
    [ 2385.208][t=0x000001a0:8338cbfc] xdc.runtime.Main:++++++++++++++++++++ Scott cpu_load:31------
    [ 2385.208][t=0x000001a0:833d7dcb] xdc.runtime.Main: Scott Get GPIO 值:0、getSn_IMR = 31、getSn_IR = 4、getSIMR = 1、getSIR = 1、getIMR = 0、getIR = 0
    [2385.208]

    “获取 GPIO 值:0“  
    这意味着  GPIO 值最终处于低电平 和  已触发硬件中断;

    “getSIR = 1“
    这意味着 w5500 中断寄存器被 触发;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“661771" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1548186/am5716-dsp-core-drop-the-interrupt/5961925
    • 每 3ms 触发一次中断。

    • 错过中断的时间是不规则的、有时发生在几分钟后、有时发生在几十分钟后。

    [/报价]

    你好、Lin

       请检查是否在其他内核上也启用了 GPIO0 中断、或者除了 DSP1 之外没有启用该中断、例如 A15、如果是、则需要删除其他内核

       在某些情况下、两个内核都会处理 GPIO 中断并导致 DPS1 中断丢失

        (+) AM5728:中断缺失 — 处理器论坛-处理器 — TI E2E 支持论坛

    此致

     Semon

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何在 A15;中删除此中断

    由于 W5500 驱动程序已从内核 A 中删除、并且 GPIO 中断不再注册。

    在删除 w5500 器件驱动程序之前、GPIO 信息:

    root@SunGrow:~# cat /sys/kernel/debug/gpio
    gpiochip0:GPIO 0-31、父级:platform/4ae10000.GPIO、GPIO-0-31:
    GPIO-5(|PHY 复位)输出高电平
    gpio-7 (|sysfs )
    GPIO-8 (|sysfs)
    gpio-11 (|sysfs)
    GPIO-31 (|w5500_int ) 在高 IRQ 中

    卸下 w5500:后

    root@SunGrow:/sys/bus/platform/drivers/omap-rproc、cat /sys/kernel/debug/gpio
    gpiochip0:GPIO 0-31、父级:platform/4ae10000.GPIO、GPIO-0-31:
    GPIO-5(|PHY 复位)输出高电平
    gpio-7 (|sysfs )
    GPIO-8 (|sysfs)
    gpio-11 (|sysfs)

    w5500_int 已删除。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“661771" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1548186/am5716-dsp-core-drop-the-interrupt/5964210

    在删除 w5500 器件驱动程序之前、GPIO 信息:

    root@SunGrow:~# cat /sys/kernel/debug/gpio
    gpiochip0:GPIO 0-31、父级:platform/4ae10000.GPIO、GPIO-0-31:
    GPIO-5(|PHY 复位)输出高电平
    gpio-7 (|sysfs )
    GPIO-8 (|sysfs)
    gpio-11 (|sysfs)
    GPIO-31 (|w5500_int ) 在高 IRQ 中

    卸下 w5500:后

    root@SunGrow:/sys/bus/platform/drivers/omap-rproc、cat /sys/kernel/debug/gpio
    gpiochip0:GPIO 0-31、父级:platform/4ae10000.GPIO、GPIO-0-31:
    GPIO-5(|PHY 复位)输出高电平
    gpio-7 (|sysfs )
    GPIO-8 (|sysfs)
    gpio-11 (|sysfs)

    w5500_int 已删除。

    [/报价]

    您好 Lin

      最好在 Linux 中禁用 GPIO1 模块以生成中断、如下所示:

       GPIO1:GPIO@4ae10000{
          兼容=“ti、OMAP4-GPIO“;
          reg =<0x4ae10000 0x200>;
          /*interrupts = ;*/
          TI、hmods =“GPIO1";“;
          GPIO 控制器;
          #GPIO-cells =<2>;
          /*Interrupt-controller;*/
          #interrupt-cells =<2>;
        };

    ----------------------------

      此链接有更好的说明:

       (+) RTOS/AM5728:GPIO 中断响应缓慢 — 处理器论坛-处理器 — TI E2E 支持论坛

    此致

      Semon

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“507109" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1548186/am5716-dsp-core-drop-the-interrupt/5964291

    您好 Lin

      最好在 Linux 中禁用 GPIO1 模块以生成中断、如下所示:

       GPIO1:GPIO@4ae10000{
          兼容=“ti、OMAP4-GPIO“;
          reg =<0x4ae10000 0x200>;
          /*interrupts = ;*/
          TI、hmods =“GPIO1";“;
          GPIO 控制器;
          #GPIO-cells =<2>;
          /*Interrupt-controller;*/
          #interrupt-cells =<2>;
        };

    ----------------------------

      此链接有更好的说明:

       (+) RTOS/AM5728:GPIO 中断响应缓慢 — 处理器论坛-处理器 — TI E2E 支持论坛

    [/报价]

    由于客户确认上述更改可以解决此问题、因此请关闭此案例

    此致

      Semon

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Lin

      请尝试此补丁、以便禁用 GPIO1 中断

      --------------------------------

      e2e.ti.com/.../gpio_2D00_intr_2D00_diff.patch

    DTS:

      
        GPIO1:GPIO@4ae10000{
          兼容=“ti、OMAP4-GPIO“;
          reg =<0x4ae10000 0x200>;
          中断= ;
          TI、hmods =“GPIO1";“;
          GPIO 控制器;
          #GPIO-cells =<2>;
          中断控制器;
          #interrupt-cells =<2>;
          中断不使用;//添加此项
        };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Semon、

    此问题通过补丁、ths very!修复