我理解的启动流程: 每个核有独立的中断相关寄存器。启动的时候,先初始化core0(主核),其他core(从核)执行空指令,并处于等待IPC中断的状态。主核执行一系列初始化(core相关初始化,SMP操作系统的相关初始化),完成之后,给从核发送启动IPC,从核接受IPC并响应,然后执行从核的相关初始化。
在从核执行空指令,并处于等待主核发送IPC中断的状态时,可能有两种情况。
1.此时,从核还没有做任何初始化,包括IER也没有初始化(还是reset之后的默认值,这个默认值是禁止所有可屏蔽中断的)。如果是的话,这里有一个问题:从核在reset之后IER是禁止所有可屏 蔽中断的,包括IPC,那么它怎么去发现并响应主核发送的启动IPC呢?
2.此时,从核的相关中断控制已经初始化,并使能了中断,这样的话,从核可以响应主核发来的IPC,然后跳出空指令,开始执行。如果这样的话,我也有一个问题:从核的相关中断初始化是在什么时候做的呢?
看了相关文档,没能理解清楚,请给予详细解答。