sk2400

DDR上跑软件部分

0
阅读(2077)
XUPVIIP支持从CF卡启动。将硬件的bit文件和软件elf文件作为输入文件,生成ace文件,这个文件拷到cf卡上,调整板 子上的开关设置,当板子上电时通过systemace方式将cf卡中的ace文件加载到FPGA上。当软件部分需要跑在FPGA外部的存储器上时,用 ace加载更方便,不需要bootload或xmd。不过我现在使用的版本好像无法正确生成ace文件(在 非官方网站中查到的资料),正在xilinx网站下补丁(xilinx的FPGA更新速度是相当快的。这从ISE和EDK更新的速度就可以看出 来,2005年时我还是6.x,现在的版本已经到9.2了,而且还有N个sp,每个sp的大小还是以百兆为单位的。就这更新速度还赶不上物理器件的更新速 度,因为FPGA支持systemace了,可我用的9.1还不支持 :P)。明天下完补丁,再具体写ace文件怎么生成。

今天做了个工程,将软件程序放到DDR上跑。有几点需要注意的:
1、ppc的启动地址0xFFFFFFFC要指定到内部的BRAM中,且该BRAM的需要16KB。
2、.boot0 和.boot要放到包含0xFFFFFFFC的BRAM中,其他段放到DDR中,否则报错。
3、选择ppc405_0_bootloop为make to initialize BRAMs
4、将生成的bit下载,此时没有软件程序,因为下载的只是包含硬件信息的bit文件,DDR中的程序要通过xmd下载。
5、打开xmd,敲命令
   connnect ppc hw     连接ppc以hw硬件的方式
   dow executable.elf  下载elf文件
   con                 运行elf
不过用这种方法把以前运行正常的工程xmd到FPGA内就变的不好用了,估计是硬件部分先配置完了,之后再配置软件带来的问题。也许用ace启动就没这样的问题了。继续试验......