我现在使用的C6713,EMIF CS0上面连接了一个CPLD
现在有个奇怪的现象是带操作系统和不带操作系统的情况下,访问效果居然不一样!
1、【不带操作系统】,读写访问都挺正常的,用示波器测量,可以看到片选、读写使能线的变化,数据也成功写到了CPLD寄存器上去了。而且数据读写也正确。
2、【带了DSP/BIOS后】,在程序中读写CPLD时,虽然Memory工具中显示的数据可以读取成功,数据也正确,当写入数据时,Memory窗口中的数据也变化了,变量窗口观察到的数据也是正确的,但是示波器上片选、读使能、写使能、数据线上什么都没有测量到,而且CPLD也没有完成我想做的操作。诡异的事情还有就是当我使用Restart后,再Run(断点在我进行读写CPLD之前),这时示波器上居然测量到了一堆信号,而CPLD上面的数据内容也是我在Restart之前期望写入的数据。
为什么在带操作系统的情况下,我只有在Restart CPU的时候才能真的操作到CPLD呢?
我最初怀疑是不是Cache导致的,但是在Sysytem、Global选项上不管我对Cache选项配置成Cache Maped,cache enable,cache bypass等,都不管用。请问还有什么特殊的地方是我没有配置到的导致对EMIF CS0操作上有这样的变化吗?