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.

[参考译文] PROCESSOR-SDK-J784S4:通过软件触发 GPIO 中断

Guru**** 2442090 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1519918/processor-sdk-j784s4-trigger-gpio-interrupt-by-software

部件号:PROCESSOR-SDK-J784S4


工具/软件:

尊敬的专家:

我正在使用 SDK RTOS 10 01 00 04 和 Jacinto J784S4 EVM。

我尝试通过软件触发 C7x 内核的 GPIO 组中断。

我使用的是 GPIO 11(连接到 EVM 上的 SW3 按钮)。

目前、我可以通过 按下按钮触发 C7x 的 GPIO 中断。

但无法通过软件触发中断。

我正在使用 CSL 函数切换 GPIO : CSL_GPIO_setOutputData ()
TRM 说可以通过 soft 触发中断:
 
我将引脚 11 设置为 GPIO0 DIR01 寄存器中的输出。 我仍然可以通过按下按钮来接收中断。 但当我通过软件切换引脚输出时、它不起作用
我不使用 GPIO 驱动程序、因为它不能中断 c7x(对于此 SDK): J784S4XEVM:C7x GPIO 中断路径问题 — 处理器论坛-处理器 — TI E2E 支持论坛
我尝试了 wkup 和 main 域、并尝试了不同的 GPIO 模块。  
谢谢、
Charles
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Charles:

    是否使用同一个 GPIO 11 引脚进行测试? 或所有 GPIO 引脚?

    我不使用 GPIO 驱动程序、因为它不会中断 c7x(对于此 SDK): J784S4XEVM:C7x GPIO 中断路径问题 — 处理器论坛-处理器 — TI E2E 支持论坛

    即使您概述了 CLEC 失调电压变化、也无法使用驱动程序代码产生中断?

    谢谢、

    Neehar

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

    嗨、Neehar、

    您是否使用相同的 GPIO 11 引脚进行测试? 或所有 GPIO 引脚?

    我使用同一个 GPIO 11 引脚。 当我按下按钮时、它会起作用、但在写入输出数据寄存器时则不起作用。

    即使您概述了 CLEC 偏移量更改、也无法使用驱动程序代码生成中断?

    我没有更改驱动程序代码。 我正在使用 CSL 层:  

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

    尊敬的 Charles:

    我目前不在办公室,并将在我回来后立即响应,感谢您的耐心!

    谢谢、  

    Neehar

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

    嗨、Neehar、

    任何更新?

    谢谢、

    Charles

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

    尊敬的 Charles:

    很抱歉、由于我赶上 E2E 不在办公室、我将在一周结束前提供回复。

    谢谢、

    Neehar

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

    尊敬的 Charles:

    您能否提供 GPIO 寄存器的转储?

    谢谢、

    Neehar

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

    嗨、Neehar、

    这是使用 CCS 内存浏览器的 GPIO0 寄存器转储  

    _PCR 0x600004 = 0x00000001
    
    _BINTEN 0x600008 = 0x00000001
    
    _DIR01 0x6000010 = 0xFFFFFFFF
    
    _OUT_DATA01 0x6000014 = 0x00000800
    
    _SET_DATA01 0x6000018 = 0x00000800
    
    _CLR_DATA01 0x600001C = 0x00000800
    
    _IN_DATA01 0x6000020 = 0xFFFFFFFF
    
    _SET_RIS_TRIG01  0x6000024 = 0x00000800
    
    _CLR_RIS_TRIG01  0x6000028 = 0x00000800
    
    _SET_FAL_TRIG01 0x600002C = 0x00000000
    
    _CLR_FAL_TRIG01 0x6000030 = 0x00000000
    
    _INTSTAT01 0x6000034 = 0x00000000

    此外、

    我尝试使用引脚设置作为输入和输出:

    _DIR01 0x6000010 = 0xFFFFF7FF

    谢谢

    Charles

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

    尊敬的 Charles:

    谢谢这个垃圾。 GPIO_socConfigIntrPath () 的返回值是多少?

    谢谢、

    Neehar

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

    嗨、Neehar、

    我不使用 GPIO 驱动程序、因为由于 CLEC 失调电压、它无法正常工作。 因此我不使用 gpio_socConfigIntrPath ()。

    我使用 SCI 和 CSL API。

    中断路径配置正确。 我可以通过按下 EVM 上的 SW3 按钮来触发中断(连接到 GPIO 11)。

    感谢你的帮助。

    Charles

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

    尊敬的 Charles:

    正确配置中断路径。 我可以通过按下 EVM 上的 SW3 按钮来触发中断(连接到 GPIO 11)

    我被问及 INTSTAT 寄存器没有更新。 让我再深入探究一下。

    谢谢、

    Neehar

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

    嗨、Neehar、

    您有任何更新吗?

    谢谢

    Charles

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

    尊敬的 Charles:

    抱歉、您是否将延迟设置为在下降沿或上升沿触发器上发生中断?

    谢谢、

    Neehar

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

    嗨、Neehar、

    设置上升沿位并清除下降沿位。

    谢谢

    Charles

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

    尊敬的 Charles:

    I was tasing 因为 INTSTAT register is not updated

    触发中断后的寄存器转储是吗? 您是否能够查看 INTSTAT01 寄存器中的任何更改?

    谢谢、

    Neehar

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

    嗨、Neehar、

    是否是触发中断后的寄存器转储? 您是否能够查看 INTSTAT01 寄存器中的任何更改?

    是的、该寄存器在中断 触发后是转储寄存器。

    我看不到任何变化。

    您是否能够通过自己一方的软件触发 GPIO 组中断?

    谢谢、

    Charles

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

    尊敬的 Charles:

    我没有遇到任何通过软件触发 GPIO 中断的问题。 RTOS PDK 中的示例也使用主 GPIO 和 WKUP GPIO 实现了这一点。

    您是否仅使用一个 GPIO 引脚进行测试?

    您能否确认是否存在  hwAttrs[].intCfg[].intNum 是否已更新?

    谢谢、

    Neehar

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

    嗨、Neehar、

    我成功地通过 SW 触发中断。 我在这里发布解决方案:

    我的错误是将引脚 (GPIO + padconfig) 设置为输入、通过按下按钮触发中断、然后将引脚(仅 GPIO)更改为输出、以通过 SW 触发中断。

    错误来自 padconfig:我禁用了 padconfig 输出驱动程序。

    我可以通过将 padconfig 设置为 0x50007 来触发中断

    感谢你的帮助

    Charles