1.按照官网所说,我先模拟核0启动核1的过程,如下:首先生产核1需要运行的bin文件,然后核0在线加载,读取bin文件,并放入核1相关的空间中,然后给核1发一个IPC中断,按理说此时核1该运行起来,LED闪烁,但是没反应,我这样做不对吗?
2.另外还联想一个问题,IPC中断触发核1运行,那如果核1程序中有IPC中断函数,那这个IPC中断和触发核运行的IPC中断有什么区别吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
1.按照官网所说,我先模拟核0启动核1的过程,如下:首先生产核1需要运行的bin文件,然后核0在线加载,读取bin文件,并放入核1相关的空间中,然后给核1发一个IPC中断,按理说此时核1该运行起来,LED闪烁,但是没反应,我这样做不对吗?
2.另外还联想一个问题,IPC中断触发核1运行,那如果核1程序中有IPC中断函数,那这个IPC中断和触发核运行的IPC中断有什么区别吗?
1, core 1的代码加载完以后,还应该在core 1的boot magic address里写core 1的入口地址,然后再发IPC;
2,第一次启动和IPC中断函数没有关系。
谢谢您的回答,我写了入口地址。
现在情况是这样,因为我core0是在线加载的,读一个bin文件然后写入到core1中,再写入口地址,发IPC,没反应,但是我把core1 debug 连接(选择load symbols),core0还是一样的过程,发IPC后,core1开始运行了(LED闪烁),搞不懂为什么?难道之前core1没在IDLE状态????
我现在做的多核boot过程是,把所有的bin写入FLASH,单核跑起来后,然后从FLASH中读取所需的程序,写入相应的核中,发IPC中断,其他核就会运行起来,其中可能就IPC需要考虑,参考IPC例程,挺简单的。论坛中就提供了。
核1到核7没有区别;你的步骤没有问题,你需要检查是不是在细节上有错误。