参考http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/8065.aspx将6678固化到SPI nor flash中。
之前使用GPIO+UART程序测试过,固化后可以正常工作,该程序通过中断方式接收上位机的串口信息,控制GPIO,去点亮led。
但是将SRIO的工程固化后,上电后,UART可以打印hello信息,但是srio不能工作。该工程在no boot下是可以工作的。工程中使用了GPIO中断:fpga通过srio发给dsp内容,然后报一个GPIO中断。
原来的cmd文件为
VECTORS: o = 0x00800000 l = 0x00000400
LL2_RW_DATA: o = 0x00800400 l = 0x0002FC00
后来参考上述链接,在cmd文件中添加了boot core0段
BOOT_CORE0: o = 0x10800000, l = 0x000000C0
VECTORS: o = 0x10800400 l = 0x00000400
LL2_RW_DATA: o = 0x10800800 l = 0x0002F800
修改后,在no boot下测试,只要fpga一向dsp发数据,dsp就会重新初始化。
然后将bootcore0的段注释掉,修改为
VECTORS: o = 0x10800400 l = 0x00000400
LL2_RW_DATA: o = 0x10800800 l = 0x0002F800
这个时候fpga发数据后,dsp打印如下
memory protection exception caused by master with ID 8 at 0x94221b3b
同时提示No source available for "0x80000020"
后来更改vector的地址,改回为
VECTORS: o = 0x10800000 l = 0x00000400
LL2_RW_DATA: o = 0x10800400 l = 0x0002FC00
这个时候可以。
感觉好像是 VECTORS只能指定到起始地址,是不是有这个要求?如果有的话,那boot core0的段是否要指定到别的地方?
另外看到有L2尾部留空的要求,具体要留多大的空间?