Other Parts Discussed in Thread: SYSBIOS
Hi !!
this question has been asked before without a satisfactory answer so i want to ask once more
system = Bare Metal (i.e. no OS no sysbios etc)
now i am using the following directory
ti/pdk_k2e_4_0_2/packages/ti/csl/arch/a15 ===> provides me with basic interrupt handling
now as per the interrupt.h the "NUM_INTERRUPTS_EXTERNAL" = 160.
as per datasheet of K2E total interrupts = 480
for the 160 interrupts i have checked my code (shown below) to work easily
Intc_Init();
intcnumb=120; stat=IntMasterStatusGet(); IntMasterIRQEnable(); Intc_SystemEnable(intcnumb); Intc_IntRegister(intcnumb, intIsr, NULL); stat=IntMasterStatusGet(); a = 0; pinNum = 0; bankNum = 0; hGpio = CSL_GPIO_open (0); CSL_GPIO_setPinDirOutput (hGpio, pinNum); CSL_GPIO_setRisingEdgeDetect (hGpio, pinNum); CSL_GPIO_bankInterruptEnable (hGpio, bankNum); CSL_GPIO_clearOutputData (hGpio, pinNum); CSL_GPIO_getOutputData (hGpio, pinNum, &outData); CSL_GPIO_setOutputData (hGpio, pinNum); CSL_GPIO_getOutputData (hGpio, pinNum, &outData);
the interrupt here fires perfectly but when i try to configure any interrupt above the NUM_INTERRUPTS_EXTERNAL, as mentioned above, the interrupt doesn't trigger. this is because the interrupt.c in the directory mentioned above has a check if (intrNum < NUM_INTERRUPTS_EXTERNAL) but even if i do bypass this condition i am still not able to configure the interrupts which leaves me with 2 choices
1. i map the interrupt (for example int numb 277) to something in the range of 160
2. there is a register which allows me to access interrupts with >160
in either case i am lost at how to approach this problem
just for a reminder the system is bare metal ARM core 0