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

C6713 EMIF异步设备访问问题

我现在使用的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操作上有这样的变化吗?

Denny%20Yang99373:

你可以在某个线程里面写个循环,大量的读写,测看一下

怀疑是你的读写量太小,操作系统不停的线程切换,可能信号不容易捕捉

Mr.a.mike:

回复 Denny%20Yang99373:

问题已经解决了,修改了dspbios 中system/global settings/621x/671x页面中的L2 MAR0-15 bitmask used to initialze Mars,把这个值由原来的0x0001改成0x0000。然后ce0就可以正常访问了。

Mr.a.mike:

回复 Denny%20Yang99373:

但是让我无法理解的是,为什么L2 MODE已经配置成SRAM了,这个bitmask怎么还会影响到emif ce0呢?它是把ce0 cache到L1 cache上面去了吗?

赞(0)
未经允许不得转载:TI中文支持网 » C6713 EMIF异步设备访问问题
分享到: 更多 (0)