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.

[参考译文] AM2632:GPIO 中断

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1478754/am2632-gpio-interrupt

器件型号:AM2632
主题中讨论的其他器件:SysConfig

工具与软件:

尊敬的 TI 支持团队:

我希望这封电子邮件能让您满意。

我目前正在配置由上升沿触发的 GPIO 中断。 在现有的示例代码中、实现使用 GPIO 组 INTR . 但是、我需要配置  单个 GPIO 引脚、用于触发它自己的专用中断  而不共享存储体级中断。

请您澄清以下问题吗?

  1. 我应该如何配置单个 GPIO 来映射到唯一中断(而不是组)?

  2.  SysConfig 有一个"GPIO INT XBAR"部分。 我想了解:

    • 如何执行  XBAR 输出   XBAR 实例  哪个参数相互对应?

  3. 您能否提供有关代码中的中断配置步骤(例如、注册 ISR、启用中断等)的指导?

  4. 我还查看了下面的链接说明、我想知道 gPeiaPinIntrNum 和 gPeiaBankIntrNum 是如何配置的、以及它们与 syscfg 的相应关系              software-dl.ti.com/.../DRIVERS_GPIO_PAGE.html

    void gpio_bank_interrupt_init(void)
    {
        int32_t         retVal;
        uint32_t        pinNum = gGpioPinNum, bankNum;
        HwiP_Params     hwiPrms;
     
        bankNum = GPIO_GET_BANK_INDEX(pinNum);
     
        /* Interrupt setup */
        GPIO_setDirMode(gGpioBaseAddr, pinNum, GPIO_DIRECTION_INPUT);
        GPIO_setTrigType(gGpioBaseAddr, pinNum, GPIO_TRIG_TYPE_RISE_EDGE);
        GPIO_bankIntrEnable(gGpioBaseAddr, bankNum);
     
        /* Register bank interrupt */
        HwiP_Params_init(&hwiPrms);
        hwiPrms.intNum = gGpioBankIntrNum;
        hwiPrms.callback = &GPIO_bankIsrFxn;
        hwiPrms.args = (void *) pinNum;
        retVal = HwiP_construct(&gGpioHwiObject, &hwiPrms);
        if(SystemP_SUCCESS != retVal)
        {
            DebugP_assert(FALSE);
        }
    }
    
    void gpio_pin_interrupt_init(void)
    {
        int32_t         retVal;
        uint32_t        pinNum = gGpioPinNum, bankNum;
        HwiP_Params     hwiPrms;
     
        bankNum = GPIO_GET_BANK_INDEX(pinNum);
     
        /* Interrupt setup */
        GPIO_setDirMode(gGpioBaseAddr, pinNum, GPIO_DIRECTION_INPUT);
        GPIO_setTrigType(gGpioBaseAddr, pinNum, GPIO_TRIG_TYPE_RISE_EDGE);
        GPIO_bankIntrEnable(gGpioBaseAddr, bankNum);
     
        /* Register pin interrupt */
        HwiP_Params_init(&hwiPrms);
        hwiPrms.intNum = gGpioPinIntrNum;
        hwiPrms.callback = &GPIO_pinIsrFxn;
        hwiPrms.args = (void *) pinNum;
        retVal = HwiP_construct(&gGpioHwiObject, &hwiPrms);
        if(SystemP_SUCCESS != retVal)
        {
            DebugP_assert(FALSE);
        }
    }

我的要求是 r5fss1-0、PR0_PRU0_GPIO4、引脚中断。

请向我。特定的 syscfg 和 gPeiaPinIntrNum

感谢您的参与和支持!

此致、

ZX

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

    大家好:

    有人能回答我的问题吗? 紧急使用

    此致

    ZX

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

    zx 您好、

    Unknown 说:
    但是我需要配置  单个 GPIO 引脚、用于触发它自己的专用中断  而不是共享组级中断。
    如何配置单个 GPIO 以映射到唯一中断(而不是组)?

    确保这可以使用 GPIO INT XBAR 来完成。 我将为您详细介绍。

    [报价用户 id="642495" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1478754/am2632-gpio-interrupt "]

    In  SysConfig 有一个"GPIO INT XBAR"部分。 我想了解:

    • 如何执行  XBAR 输出   XBAR 实例  哪个参数相互对应?

    [报价]

    xbar 实例 确定 GPIO INT 的路由位置-它可以路由到 ICSSM XBAR、EDMA 触发器、Timesync XBAR 或 VIM[0:3]中的任何一个。 在这种情况下、为了完成示例配置、我需要知道目标、但现在、我将假设您需要一个转到 R5FSS1-0内核的 VIM 中断。

    XBAR 输出是指 XBAR 输出至其路由到的目标、它可以是 GPIO 多路复用器选项或 GPIO 组中断中的任何一个。

    GPIO INT XBAR 在 10.3.1 INTRTR 概述和 10.3.2.3 GPIO XBAR INTRTR0中进行了详细介绍。

    您能否提供有关代码中中断配置步骤的指导(例如、注册 ISR、启用中断等)?

    您需要实例化与所需引脚关联的 GPIO -在本例中、似乎是 K16焊球、它等效于 GPIO92 (此信息来自器件数据表0。 然后、您可以配置 GPIO INT 以使用 XBAR、并提供相应的多路复用器选项来选择此 I/O

    然后、要将其路由到 R5FSS1-0内核 VIM、您需要通过 VIM 接受的四个中断输入之一、即 R5FSS1_CORE0_INTR_GPIO_INTRXBAR_OUT_22至 R5FSS1_CORE0_INTR_GPIO_INTRXBAR_OUT_25中 的一个。 这些信号通过 VIM2产生、您可以在图10-4中看到。 GPIO XBAR 中断路由器集成图、其中 GPIO 中断 XBAR 信号[25:22]路由到 VIM2。

    您将了解以下 SysConfig:

    [quote userid="642495" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1478754/am2632-gpio-interrupt 我还看了下面的链接说明、我想知道 gPeiaPinIntrNum 和 gPeiaBankIntrNum 是如何配置的、以及它们与 syscfg 的相应关系              software-dl.ti.com/.../DRIVERS_GPIO_PAGE.html

    我在该链接中找不到您提到的变量名称、您能检查一下您提供了正确的变量名称吗?

    此致、

    Ralph Jacobi

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

    拉尔夫、您好:

     感谢您的答复。

    是需要为与此相对应的初始化代码指定的 intrNum、如下图所示

      /*寄存器引脚中断*/
      Hwip_Params_init (&hwiPrms);
      hwiPrms.intNum = CSLR_R5FSS1_CORE0_INTR_GPIO_INTRXBAR_OUT_22

    此致

    ZX

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

    您好、zx:

    浏览 CCLR 文件、是的、这是正确的。

    CSLR_R5FSS1_CORE0_INTR_GPIO_INTRXBAR_OUT_22对应于 GPIO_INT_XBAR_VIM_Module2_0、而  CSLR_R5FSS1_CORE0_INTR_GPIO_INTRXBAR_OUT_25对应于 GPIO_INT_XBAR_VIM_Module2_3 。

    此致、

    Ralph Jacobi