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

有关共享内存SL2的使用

大家好 我现在用的双核 需要用到共享内存SL2

我在核0里面 定义一个变量到SL2 并赋值

但有时在核1 并未看到变量值的变化

看了下论坛 说是和cache的一致性有关 并且SL2的cache一致性是要软件维护的 不像L2是硬件维护的?

SL2的cache一致性要软件维护 是指 我在核0 定义一个变量到SL2 并赋值 然后要执行个cache一致性相关函数 或者 命令?

另外 看资料 说是 如果把共享变量定义到DDR3 是不是就没有这个问题?

Nancy Wang:

1、是的。在读之前要进行失效操作,在写之后要进行回写操作。
2、也需要维护一致性。

skysteed:

回复 Nancy Wang:

你好 我在双核都是裸机的情况下已经试过了
核0写数据时:CORE0_COR1_FLAG=0x1;//核0设标志CACHE_wbInvL1d((void *)(0x0c000000),4,CACHE_WAIT);
核1读数据时:CACHE_invL1d((void *)(0x0c000000),4,CACHE_WAIT);if(CORE0_COR1_FLAG==0x1)

如果核0用的是sysbios 怎么实现上述的功能了???

skysteed:

回复 Nancy Wang:

bios_6_37_05_35\packages\ti\sysbios\family\c66 里面的Cache.h文件
和mcsdk_02_01_02_06包mcsdk\pdk_C6657_1_1_2_6\packages\ti\csl里面的csl_cacheAux.h文件的命令函数
怎么不完全一致了?

skysteed:

回复 Nancy Wang:

好的 我看看
试了下 添加mcsdk里的csl库 可以编译通过 试过也行

赞(0)
未经允许不得转载:TI中文支持网 » 有关共享内存SL2的使用
分享到: 更多 (0)