TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678中将cache设为0K,结果程序异常

我现在的工程有一个out文件,该程序在两个核CORE0和CORE1中工作。当platform中有CACHE时,CORE0和CORE1可以执行到程序结束(结果异常)。当我修改PLATFORM中的CACHE为0k时,CORE0执行正常,CORE1显示

Opcode exception
Resource conflict exception

请问这是什么原因?

Marvin Liang:

程序本身是放在L2,SL2还是DDR呢?设置的cache 为0K是,L1D还是L2 cache呢?

stern:

回复 Marvin Liang:

程序放在L2. L2 L1D L1P cache均设为0K

Marvin Liang:

回复 stern:

禁止L1P cache似乎没必要,当然这个取决于你的程序。Cache disable有没有按下面的流程?

CACHE_wbInvAllL2(CACHE_WAIT);CACHE_wbAllL1d (CACHE_WAIT);CACHE_setL1DSize(CACHE_L1_0KCACHE);CACHE_setL2Size(CACHE_0KCACHE);

如果你core0和core1的程序没有任何的共享资源,完全是各自独立在local L2运行的,没有启动的依赖关系,你可以在CCS下先跑core1试试。如果有资源的依赖关系,需要检查你的多核编程,主要是core0启动后对core1的影响。

stern:

回复 Marvin Liang:

把这段代码放在CORE1和CORE0的程序中执行就可以了吗?

stern:

回复 stern:

CACHE_wbInvAllL2(CACHE_WAIT);CACHE_wbAllL1d (CACHE_WAIT);CACHE_setL1DSize(CACHE_L1_0KCACHE);CACHE_setL2Size(CACHE_0KCACHE);

这几个函数找不到头文件,csl.h csl_cache.h都加进去了。

请问直接在platform中把cache直接设为0K可以吗?

Marvin Liang:

回复 stern:

因为这个配置是每个核都需要的,所以建议用代码来实现。该文件在csl_cacheAux.h …\pdk_keystone_XX_XX_XX_XX\packages\ti\csl

赞(0)
未经允许不得转载:TI中文支持网 » C6678中将cache设为0K,结果程序异常
分享到: 更多 (0)