最近搞飞思卡尔iMX6 4核A9处理器,有几个问题要请教下:
1、每个核都是有一套独立的指令寄存器吧,问题来了,PC寄存器和一些状态寄存器是否也是独立的?
2、在裸机开发的情况下,怎么获取当前的代码运行在哪个核上面?
3、如果在多核处理器上面实现一个longjmp应如何实现?longjmp只能实现核内长跳吗?
4、核处于关闭状态,来一中断后,是所有核都唤醒还是只有其中一个?核被关闭后,然后被唤醒,需要重新初始化核的PLL等那些参数吗?standby状态与其他两关闭状态主要区别在哪?
5、中断发生后,哪个核要进行中断服务处理是程序员事件还是硬件事件?还是两种都支持?
6、一般裸机开发用什么开发平台比较方便,用jlink或者ulink可以实现单步调试吗?
是这样的,一个中断是这样处理的,多个中断同样也是这样的处理机制,不一定是一个核都响应,也不一定平分到每个核去响应,这个过程是不可控的,我的理解是这样的,具体还请darren给你更准确的答案。
Hi,Ocean, Cut,
对于一个特定的SPI类型的中断,可以通过配置寄存器(ICDRPTRn)来将该SPI中断发往多个Core, 此时A9 的interrupt controller 可以保证只有1个Core可以正确的读取到该SPI类型的中断对应的ID号并进一步的进行中断处理。同样,若存在多个不同SPI类型的中断(每个SPI中断对应不同的ID号),则可以分别通过配置寄存器来灵活的将每个中断发往指定的Core, 此时收到中断的Core可以读取到该SPI中断的ID,并做进一步的中断处理。希望这样的解释可以不会带来更多的困惑。欢迎进一步的讨论。
Best Regards
Darren Ma