在使用EMIF模块的时候,因为要查看是否读写成功,点开view-memory browser,选择DATA空间,地址为0x200000的时候报错,其他地址也会报错。但是用地址0x200000以下的时候可以读到。请问下这个是什么原因呢。已经将与EMIF地址线相连的外围器件全部拆除,仍然出现错误。那么,如果仿真器无法访问的话,与EMIF对接的外围器件是否都无法进行驱动了?错误提示如图
Shine:
请问用的是什么仿真器?CCS版本是多少?
先按照错误信息中提示的降低TCLK试试。
yulin li:
回复 Shine:
编译器是ccs5.5, 仿真器是用xds100V2 和xds200,之前已经在仿真器配置文件里面修改了TCLK,还是会出现错误。这个问题有点费解,拿过别人的板子,是可以正常查看的。一般这种情况会是硬件的什么问题呢。已经安装data sheet的要求排查了硬件。
Shine:
回复 yulin li:
如果别人的vc5509a的板子可以的话,说明ccs和仿真器没问题。
你的0x200000外接的是什么memory? 在gel文件里有没有事先对EMIF做过初始化配置?
yulin li:
回复 Shine:
已经用GEL文件完成了初始化配置。而且在设置EMIF接口的时候也有一个复位指令。同样的工程文件,用别人的板子是没问题的。
外接的是 NOR Flash(AM29LV800)。
用示波器检测EMIF接口的几个引脚是有波形出来的,现在的问题是挂在EMIF模块的几个外设都无法调试成功,怀疑是否跟硬件有关。
Shine:
回复 yulin li:
那你能通过代码去读写nor flash吗?
yulin li:
回复 Shine:
可以读到厂商的ID,但是不能烧写程序,烧进去之后,发现很多时候不会从flash启动。(但也还是无法在debug的时候访问对应的数据空间)
Shine:
回复 yulin li:
看一下EBSR.HOLD是否为0?
DSP CLKOUT管脚是否有稳定的时钟输出?
yulin li:
回复 Shine:
EBSR用了宏来设置 CHIP_RSET(XBSR,0X0001);CLKOUT引脚有时钟输出的。现在将了串口模块TL16c550挂在CE0,发现CE0的空间也无法访问了。另外想问下我用TL16C550写了个数据发送到PC上,接受的数据并不对,是啥原因,难道是板子的时钟不稳定么。
Shine:
回复 yulin li:
其他接口都正常吗?还是就EMIF口有问题?
yulin li:
回复 Shine:
其他接口的话,还有个SD卡的接口,按照官方提供的例程来测试,只能打印出SD卡的信息(不确定读取的卡信息正确与否),但是读写数据不成功。(用的是2G以下的SD卡)