Part Number: TDA2EXEVM
Hello,
I'm trying to implement interrupt handling in SYS Bios. The code looks as follow:
Void myIsr15(UArg arg);
int main(int argc, char* argv[])
{
Error_Block eb;
Error_init(&eb);
Hwi_Params params;
Hwi_Params_init(¶ms);
params.eventId = 110;
params.arg = params.eventId;
params.enableInt = FALSE;
params.maskSetting = Hwi_MaskingOption_SELF;
Hwi_Handle hwi;
hwi = Hwi_create(15, myIsr15, ¶ms, &eb);
if (hwi == NULL)
{
Error_check(&eb);
Log_print0(Diags_STATUS, "Error registering an interrupt.");
}
Hwi_enableInterrupt(15);
BIOS_start();
return 0;
}
Later in my application I run:
HW_WR_REG32(CSL_C66X_COREPAC_REG_BASE_ADDRESS_REGS + 0x2C, 0x00004000);
...to manually trigger this specific interrupt. I would expect to see:
+++ Interrupt 15 occured
...as an output, but the interrupt handler never triggers. It does trigger when the interrupts are manually configured with CSL, but we don't want to mix CSL and SYS Bios.
Any idea why the SYS Bios implementation doesn't work?