hi,
环境:ccs5.5,function simulator
我是这样做的:通过 ((CSL_CPINTC_RegsOvly)hnd)->STATUS_SET_INDEX_REG = CSL_FMK(CPINTC_STATUS_SET_INDEX_REG_STATUS_SET_INDEX, 0);产生系统事件0,主函数中用采用case 语句区分各核,分别将0号事件映射在相应的信道,分别是0~3核通过INTC0输出分别为32,43,54,65,4~7核通过INTC1输出分别为32,43,54,65,所有的8个INTC输出对应的主机事件均为21。然后同时通过 CSL_INTC_VECTID_4 输出。8核公用一个中断服务子程序。并在中断服务子中通过
((CSL_CPINTC_RegsOvly)hnd)->STATUS_CLR_INDEX_REG =
CSL_FMK(CPINTC_STATUS_SET_INDEX_REG_STATUS_SET_INDEX, 0);做了事件清除
问题是:我通过单核调试,所有的核都分别能进入中断,而且只进入一次。当我8核group一起运行时,只有3核和7核进入中断,而且都分别发生了两次。请问这是哪方面的原因呢?INTC是否允许多核多时访问?关于中断方面的初始化我没有对核区分,也就是说每个核都拥有一份属于自己的中断控制器的句柄。
还有我没有做emulation的调试,是否function simulation不准呢?
谢谢!