https://e2e.ti.com/support/processors-group/processors/f/processors-forum/643118/tms320c6657-c6657
器件型号:TMS320C6657Thread 中讨论的其他器件: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。