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

在memory browser中,输入相同的地址,为什么看到不同的值?

给几个核的程序分别加上断点,当都停在断点的时候,在memory browser中,输入相同的地址,为什么各个核看到不同的值?

尝试使用CACHE_invL1d函数和CACHE_wbInvL1d函数,发现问题依旧,请问这是什么原因?哪位大侠知道?万分感激!

Hu pc:

譬如我在1核执行

*((volatile char *)(0x0C053E58u))=1;

在1核的memory browser中输入0x0C053E58u,看到它的值是1

在2核的memory browser中输入0x0C053E58u,却发现它的值并不是1。

这是怎么回事呢?

Hu pc:

回复 Hu pc:

难道这个问题,论坛上的众大神们都不会么?

恳请会的大神帮忙解答!谢谢!

Andy Yin1:

回复 Hu pc:

在memory browser中将L1D CACHE或者L2 CACHE的钩去掉看看,应该是cache一致性导致的,SL2默认是 cacheable区域。

leeen:

回复 Andy Yin1:

给1核下完程序,我用1核看起内存,查看地址0X00808CE8,按偏移地址计算,如果我用其他核看该地址应该为0X11808CE8,但是我发现两种情况下看到的值不一样。而且只有这个地址的值不一样。我检查map文件,这个地址存放的是$$ IO$,这是什么原因啊?

Andy Yin1:

回复 leeen:

你的cmd中这一块memory放的是什么?不建议跨核访问LL2,如果有需要建议使用SL2及DDR

leeen:

回复 Andy Yin1:

这段空间存放的是一个独立的在1核上运行的程序段,内容是trgmsg.obj(.text_writemsg),查看map文件,内容部一致的地址的内容为C$$ IO $$。自己核查看0X00008CF8的值是0C6E,如果用一核或是其他核看地址0X11008CF8就是3C6F。

我想做的是用0核独立运行,与PC机通信,把一个程序添加到1核的LL2里,让一核运行起来。请问andy我这个思路能实现吗?

赞(0)
未经允许不得转载:TI中文支持网 » 在memory browser中,输入相同的地址,为什么看到不同的值?
分享到: 更多 (0)