Visual DSP++调试程序时SDRAM初始化的处理方式

明亮 posted @ 2011年5月25日 22:17 in 【科学综合】 , 2286 阅读
本文发表于:http://fml927.is-programmer.com

在Visual DSP++的安装目录下“..\Analog Devices\VisualDSP 5.0\System\ArchDef”包含了针对各种类型处理器的的调试加载信息设置文件(.xml),文件主要完成在利用仿真器加载调试代码前,初始化处理器相关寄存器和准备好程序运行的环境等工作,为调试程序的运行准备好必要的环境。

比如,以一个“ADSP-BF561-proc.xml”文件为例,文件的最后几行就是初始化DSP中SDRAM控制器的寄存器的代码(均以“EBIU_”字样开头,其含义详见处理器参考手册),便于在调试程序运行前,按照SDRAM特性初始化SDRAM控制器的控制方式。

那么,第一个问题是:Visual DSP++默认的文件中的SDRAM控制器的设置是按照哪种类型的SDRAM进行的设置呢?

答案是:按照ADI自己的参考板上的SDARM性能进行设置的,所以如果我们要设计自己的电路板采用不同的SDRAM的话,就必须修改对应处理器文件中的寄存器设置内容。

第二个问题是:调试的时候我们使用这个文件初始化SDRAM或其他初始化工作,那么,当程序下载到板载Flash的时候,谁来初始化SDRAM和其他资源的呢?

答案是:ADI为每一种处理器都提供了一个“ADSP-xxx-ROM-Vxx.dxe”的文件(在对应的处理器类型目录下的LDR子目录中),在你生成ldr文件准备烧写的时候,编译器就会提示你要加载这个文件的。他干的就是类似前面提到的“ADSP-BF561-proc.xml”文件的活,只不过“ADSP-BF561-proc.xml”文件还要多干一样活是将易失性存储器的空间初始化,以模拟处理器刚上电的状态。要不然调试时不掉电,反复加载程序后可能程序会乱掉,以至于无法正确模拟处理器刚上电后的运行状态了。 既然这个也是ADI随着Visual DSP++预装好的(自然也是针对ADI的参考板设置的),那么也必然会遇到前面的问题,如果使用我自己的SDRAM怎么办的问题,还好ADI提供了源代码和工程(也在LDR子目录下,自己找找看吧~),代码仅仅是很简单的一个汇编文件,里面就设置了几个寄存器,改一下重编译即可。

总结:其实ADI的Visual DSP++的安装目录下有很多“资源”,只要用心从这些资源里是可以学到很多东西的!

  • 无匹配
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter