Hi TI engineer
I try to configure the intc in my project by CSL function, code like this:
#define MAX_INTR_NUM 16
CSL_IntcContext intcContext;
CSL_IntcEventHandlerRecord EventRecord [MAX_INTR_NUM ] ;
void intc_init(void)
{
intcContext.eventhandlerRecord = EventRecord ;
intcContext.numEvtEntries = MAX_INTR_NUM ;
...........
for ( intrIndex = 0; intrIndex < MAX_INTR_NUM , intrIndex ++)
{
EventRecord[intrIndex ] .handler = ISR[intrIndex ]
EventRecord[intrIndex ] .arg = NULL
CSL_intcPlugEventHandler(hintc,&EventRecord[intrIndex ])
}
........
}
The code above works OK except that a bug like this:
set eventRecord[0] = { isr0, null };
do CSL_intcPlugEventHandler;
then I find that eventRecord[1] become { isr0, null }; ?!
next step if I set eventRecord = { isr1, null }; then the ISR0 will be invalid!
So I read the CSL_intcPlugEventHandler code, not so easy to understand, but I still cannot tell why does CSL_intcPlugEventHandler(hintc,&EventRecord[0]) change the value of eventRecord[1]? Why does the change of eventRecord[1] make isr0 invalid?
Looking forward to your reply,thank you very much