Core0为主核,Core1-Core5为从核,各从核依次运行后可以正常响应主核的IPC中断。但将Core1-Core5编组同时运行后就不能响应主核的IPC中断了,请问可能是什么原因?
从核的main函数内依次是:
Bootcfg_unlockkicker();
init_interrupt();
while(1);
Z.Y Lee:
void interrupt_init(){ intcContext.eventhandlerRecord = EventHandler; intcContext.numEvtEntries = 30; CSL_intcInit(&intcContext); CSL_intcGlobalNmiEnable(); CSL_intcGlobalEnable(&state); vectId = CSL_INTC_VECTID_6; hTest = CSL_intcOpen(&intcObj, 91, &vectId, NULL); //Register an call-back handler which is invoked when the event occurs. EventRecord.handler = &IPC_service; EventRecord.arg = 0; CSL_intcPlugEventHandler(hTest, &EventRecord); CSL_intcHwControl(hTest, CSL_INTC_CMD_EVTENABLE, NULL);}
Z.Y Lee:
问题已解决,原因是Bootcfg_unlockkicker();函数的问题。
只保留一个Bootcfg_unlockkicker函数即可解决问题。
du jianfeng:
你好!我目前在做多核加载,需要主核向从核发送IPC中断来启动从核。我在主核的main程序开始向IPCGR1中写入0x1,来启动核1,现在是从核1一直处于idle状态,不能正确启动,我查了一下原因,是IPC中断没有写进去。请问在主核的main程序中向从核写IPC中断前,要不要做中断初始化。如果需要,该如何初始化,有没有初始化代码?