arm端我配置好了中断,绑定了中断响应函数,但是下载进去后我用dsp来触发中断,arm并不响应,同样arm设置中断寄存器也不能触发dsp。
请问这个默认工作模式有关吗?why?如果更改工作模式的话,代码应该怎么写,希望不要用到ti的库,程序我最后要移植到linux下的。
我配置中断的代码如下
aintcRegs->ECR1 = 0xFFFFFFFF;
aintcRegs->ECR2 = 0xFFFFFFFF;
aintcRegs->ECR3 = 0xFFFFFFFF;
aintcRegs->ECR4 = 0xFFFFFFFF;
//Clear system interrupts status 0:100
aintcRegs->SECR1 = 0xFFFFFFFF;
aintcRegs->SECR2 = 0xFFFFFFFF;
aintcRegs->SECR3 = 0xFFFFFFFF;
aintcRegs->SECR4 = 0xFFFFFFFF;
sysISRtbl[AINTC_SYSCFG_CHIPINT1] = SYSCFG_CHIPINT1_isr; /* Assign SYSCFG_CHIPINT1 ISR to SYSCFG_CHIPINT1 system interrupt */
aintcRegs->VBR = (unsigned int) sysISRtbl; /* Assign address of ISR table to VBR */
aintcRegs->VSR = 0; /* Function pointers size = 4 bytes */
CSL_FINS(aintcRegs->CMR7, AINTC_CMR7_CHNL_NPLUS1, 2); /* Map SYSCFG_CHIPINT1 Interrupts to Channel 2*/
CSL_FINS(aintcRegs->EISR, AINTC_EISR_INDEX, AINTC_SYSCFG_CHIPINT1); /* Enable SYSCFG_CHIPINT1 Interrupt */
CSL_FINS(aintcRegs->HIEISR, AINTC_HIEISR_INDEX, 1); /* Enable IRQ Interrupts */
CSL_FINS(aintcRegs->GER, AINTC_GER_ENABLE, 1);
通过这个寄存器来触发
KICK0Ra = 0x83e70b13; //Open Permissions to SYSCFG Registers
KICK1Ra = 0x95A4F1E0; //Note: DSP may close the Permissions
SYS_REGS->CHIPSIG = 0X00000004; //Assert CHIPINT2