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.

[参考译文] TDA4VM:R5F MCU2_0 GPIO 中断

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1215372/tda4vm-r5f-mcu2_0-gpio-interrupt

器件型号:TDA4VM

大家好!
我要在 MCU2_0中将 GPIO 配置为中断输入引脚、并对其进行设置  

GPIO_CFG_IN_INT_RISING,但我不知道 如何配置它;  
有什么演示吗? 或文档来 介绍这一点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用 GPIO0_118作为输入引脚。 (Y1)

    现在我要执行这个:

    1.在"vision_apps\utils\mis\src\app_pinmux_j721e.c"中、  

    2.在"ethfw\utils\board\src\j721e\board_j721e_evm.c"中:

    3.在"pdk_jacinto_08_04_00_21\packages\ti\drv\gpio\soc\j721e\gpio_soc.c"中

     完成此更改后、我重新编译 RTOS SDK、并替换"/lib/firmware/vision_apps_evm "中的"vx_app_rtos_linux_mcu2_0.out"。

    但是,当重新启动系统时,终端不会打印日志。  

    我还需要做什么?

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

    您好!

    请参阅上提供的 GPIO LED 示例 \packages/ti\drv\gpio\test\led_blink\src

    这将有助于优化您的用例。

    此致、
    帕尔特

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

    谢谢、我参考了、并添加了中断使能代码; 已成功设置触发模式。但 intNum 错误。

    在我的示例中、我使用了 GPIO0_118、表示 GPIO_port_num = 0、PIN_num = 118、当我要获取 intNum to "GPIO_socConfigIntrPath ()"时、它返回-1;代码如下:

    int32_t GPIO_socConfigIntrPath(uint32_t portNum, uint32_t pinNum,void *hwAttrs,bool setIntrPath)
    {
    
        GPIO_v0_HwAttrs   *cfg = (GPIO_v0_HwAttrs *)hwAttrs;
    
        ...
    
        if(CSL_PASS == retVal)
        {
          
            /* Get the valid range of valid interrupts based on the ir_id. */
            retVal = GPIO_socGetIrqRange(ir_id, dst_id, &irq_range_start, &irq_range_num);
           
        }
    
        if(CSL_PASS == retVal) 
        {
    
            if(bankNum <= irq_range_num)
            {
                dst_host_irq = irq_range_start + bankNum;
                ...
            }
        }
       
        ...
    
      return(retVal);
    }
    

    在代码中、irq_range_num 为4、bankNum=7、因此它返回-1;

    我想知道:

    1.其中将 irq_range_num 定义为4;

    2.如何为 GPIO0_118获取 irqnum,如何路由中断 func;

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

    您好!

    您能否分享一下在代码中传递给 rmIRQSet 的参数?

    此致、
    帕尔特

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

    您好!,

    在本例中、"Sciclient_rmIrqSet ()" 将不会运行、因为 条件"if (bankNum <= IRQ_RANGE_NUM)"未保持不变。 因此、RetVal 将为 CSL_EFAIL、并 立即返回。

    一些参数如下:

    src_id = TISCI_DEV_GPIO0;

    src_index =(uint16_t) bankNum; // GPIO0_118、bankNum = 7

    Dst_id = TISCI_DEV_R5FSS0_CORE0   
    ir_id  = TISCI_DEV_R5FSS0_INTROUTER0