如图,错误如下
单步执行发现出问题在332行这个函数
这里因为处理速度跟不上,一半数据送核1解码,核1也是调用的这个函数,但是核1不会报错,函数里面就是一些FFT、逆FFT的计算,如图所示
所有数据都是通过地址传递,解码函数里面的for循环单步执行没问题,一旦直接运行立马报错
实在是懵逼了,不知道啥原因😂
如图,错误如下
该回复引自免费微信小程序-皆我百晓生:
根据您的描述,出现问题的函数是在多核处理器C6678上运行的,在核1中没有报错,但在核0中执行时出错。导致错误的原因可能是核0上的处理速度无法跟上数据的处理需求。
在多核处理器中,不同核之间的执行是并行的,因此核1在处理数据时可能比核0更快一些。由于数据是通过地址传递的,在核1中执行时可能数据已经更新,而在核0中执行时数据还未被更新,导致核0上的处理过程出错。
为了解决这个问题,可以考虑以下几点:
确保核0上的处理速度可以满足数据处理需求。您可以通过优化核0上的代码或增加核0的处理能力来提高其处理速度。
使用同步机制确保数据的一致性。可以使用信号量、互斥锁等同步机制来同步核0和核1对数据的访问,确保在核0访问数据时数据已经更新。
可以在核0中增加一定的延时,以便等待核1对数据的处理完成。这样可以确保在核0处理数据时数据已经被更新。
通过以上的措施,可以提高多核处理器的稳定性并避免出现错误。另外,如果问题依然存在,建议仔细检查代码,可能在函数的逻辑中存在其他潜在错误导致核0上的执行出错。