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.

[参考译文] TMS320C6657:C6657

Guru**** 2595770 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/643118/tms320c6657-c6657

器件型号:TMS320C6657
Thread 中讨论的其他器件:SYSBIOS

大家好、

我正在尝试从 FPGA 获取一个到 DSP (C6657)的外部中断。 每当中断出现时,我都要调用 TestFun ()。 但是、当我从 FPGA 发出中断时、它会进入 GPIO 3上的 DSP、并由进行验证

CSL_GPIO_getInputData (g_hGpio、2、&uTestpin)、在这里我验证了中断到达 GPIO 引脚2 (GPIO2)。 但不调用函数 TestFun ()。 这是我的代码、任何机构都能分辨出问题的位置。

#define KICK0 (*(unsigned int*)(0x02620038))

#define KICK1 (*(无符号整型*)(0x0262003C))
#define KICK0_KEYVAL 0x83e70b13
#define KICK1_KEYVAL 0x95a4f1e0
#define PIN_CONTRAL_0 (*(unsigned int*)(0x02620580))

G_hGpio = CSL_GPIO_open (0);

(1)//解锁引导 cfg 寄存器并配置 GPIO 引脚0-15多路复用器

KICK0 = KICK0_KEYVAL;
KICK1 = KICK1_KEYVAL;
//配置 CHIP_PIN_control0寄存器
PIN_CONTRAL_0 = 0xFFFFFFFF;

(2) CSL_GPIO_bankInterruptEnable (g_hGpio、0);//BINTEN 1用于位"0"

(3)设置方向和上升沿或下降沿检测。

//0至3 //引脚0至3
对于(uint8 u8pin = g_u8GpioPin00;u8pin <= g_u8GpioPin03;u8Pin++)

CSL_GPIO_setPinDirInput (g_hGpio、u8引脚);
CSL_GPIO_setRisingEdgeDetect (g_hGpio、u8引脚);
CSL_GPIO_setFallingEdgeDetect (g_hGpio、u8引脚);

(4)

/设置硬件中断
Hwi_Params HwiParams;
Hwi_Params_init (hwiParams);

hwiParams.enableInt = 1;
//设置要传递给 ISR 函数的参数
hwiParams.arg = 1;

//设置分配给该中断的外设的事件 ID
hwiParams.EventID = 73;//映射到 GPIO 2的事件编号
hwiParams.priority =1;

//不允许此中断嵌套自身
hwiParams.maskSetting = Hwi_MaskingOption_self;

myHwi = Hwi_create (3、(ti_sysbios_hal_hwi_FuncPtr)&TestFunc、&hwiParams、&EB);  
if (Error_check (&EB)){
printf ("CMain::CMain ():Hwi_create 失败。\n");

//TestFunc ()、它不会调用。当我从 FPGA 切换中断时、

void TestFunc()

´{

INT 测试= 0;

谢谢、

Ramana。

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

    我需要一些时间来收集实验中的数据。 请允许我在这里住几天,我会再回来的。

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

    您好!

    在步骤3中、您将分配上升沿检测、并立即为下降沿检测设置下一行。 我不确定是否允许这样做、恐怕您只需重新分配引脚即可进行下降沿检测。 我对您的 FPGA 操作一无所知、无论它是否保持高请求、您都不会收到下降沿。 请先澄清这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我发现了一件有趣的事情。 我们连接了 GPIO 引脚0..3和8...15。 8到15可以、当我获得相应的事件 ID 时、只有0、3不起作用。 DSP 的输出如下所示。 我不知道为什么他们说0..3的中断号无效。 正如我告诉过您的、使用该函数
    CSL_GPIO_getInputData (g_hGpio、2、&uTestpin)我清楚地看到中断来自 GPIO 0..3。

    DSP 输出:ti.sysbios.family.c64p.Hwi:第189行:e_invalidIntNum:无效中断编号:INTR# 3
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    没关系、我使用其他引脚进行了测试。 您将为下降沿和上升沿设置引脚。 因此、当 FPGA 或其他扩展器件提供上升沿或下降沿中断时、我们可以同时检测这两者。

    Ramana