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

6678固化后SRIO不工作

参考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尾部留空的要求,具体要留多大的空间?

Allen35065:

上电时中断向量表是在0x10800000,启动以后中断向量表可以修改到其它位置,修改ISTP寄存器指向即可;

你的FPGA写的0x94221b3b这个地址是能被写的吗?

L2留空只是在启动时需要一块buffer做缓存,启动完成以后就释放了。

Allen35065:

For the C667x, the reserved L2 memory ranges from 0x872E00 to 0x87FFFF in all the cores.

Stephen chen:

回复 Allen35065:

谢谢Allen!

1、请问有修改ISTP寄存器的例程吗?

2、0x94221b3b这个地址对与FPGA是可写的。但是FPGA端只是写了0x8000_0000为起始,64K大小的空间。理论上不会写到这个地址

3、现在要用的L2比较多,L2尾部留空的空间也想用。在cmd分配时,都有哪些段可以放在这个区域呢?是不是只能放不需要初始化的变量?

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 6678固化后SRIO不工作
分享到: 更多 (0)