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 核0内存分配影响核1 UPP



在核0的代码中,有一个函数定义了下面这个比较大的局部数组,原本核1正常工作的UPP会总是卡在UPQS2的PEND位,该位一直为1。(UPP工作在双工方式,Q路是接收)。核0与核1是两套完全分开的代码。

 int8_t path_record[64][464];

可以确认堆栈申请的足够大,不是堆栈溢出的问题,系统也没有提示堆栈溢出。

把CORE0的堆栈分配从DDR移到L2SRAM,系统可以正常工作。或者在变量申明前增加static,系统也可以正常工作。

核1UPP卡住后,从UPP的寄存器看,都是系统初化时设置的值,并没有被越界改写过。为什么核1的UPP,会被核0的内存分配影响,是什么原因?要从哪里入手,请指点一二,多谢。