大家好,我在自己设计的板卡上调试C6657 SPI BOOT加载时遇到core0程序正常执行,core1程序执行异常的情况,具体情况如下:
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.
大家好,我在自己设计的板卡上调试C6657 SPI BOOT加载时遇到core0程序正常执行,core1程序执行异常的情况,具体情况如下:
问题已经解决了,core0应用程序对boot程序数据有覆盖,导致写IPC寄存器失败。
原因:
写IPC寄存器采用的是CSL包提供的一个全局指针去操作,gpBootCfgRegs全局指针分配至L2空间,core0应用程序加载后将该全局指针覆盖,导致写IPC寄存器失败。
gpBootCfgRegs->IPCGR[1] |= 0x00000001;
解决办法:
1、对boot程序中关键代码、全局变量做好保护。
2、直接通过寄存器地址直接访问,如:
#define IPCGR1 (*(Uint32*)(0x02620244))
IPCGR1 = 0x1;
问题已经解决了,core0应用程序对boot程序数据有覆盖,导致写IPC寄存器失败。
原因:
写IPC寄存器采用的是CSL包提供的一个全局指针去操作,gpBootCfgRegs全局指针分配至L2空间,core0应用程序加载后将该全局指针覆盖,导致写IPC寄存器失败。
gpBootCfgRegs->IPCGR[1] |= 0x00000001;
解决办法:
1、对boot程序中关键代码、全局变量做好保护。
2、直接通过寄存器地址直接访问,如:
#define IPCGR1 (*(Uint32*)(0x02620244))
IPCGR1 = 0x1;
问题已经解决了,core0应用程序对boot程序数据有覆盖,导致写IPC寄存器失败。
原因:
写IPC寄存器采用的是CSL包提供的一个全局指针去操作,gpBootCfgRegs全局指针分配至L2空间,core0应用程序加载后将该全局指针覆盖,导致写IPC寄存器失败。
gpBootCfgRegs->IPCGR[1] |= 0x00000001;
解决办法:
1、对boot程序中关键代码、全局变量做好保护。
2、直接通过寄存器地址直接访问,如:
#define IPCGR1 (*(Uint32*)(0x02620244))
IPCGR1 = 0x1;