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

SRIO无法初始化

你好:

我们自己做的板子,上面有两块C6455,现在两块板子的电源、参考时钟等等都做好了,SDRAM和EMIF模块测试都正常,但是在测试SRIO时,发现程序总是在如下代码下死循环。

response.index = 0;

   do {

    status = CSL_srioHwSetup (hSrio, &setup);

    if (status != CSL_SOK) {

    printf("SRIO: … Hardware setup, failed\n");

        return;

    }

delay(1000);  //check the response every 100 cpu clcok = 100 ns

       CSL_srioGetHwStatus (hSrio, CSL_SRIO_QUERY_SP_ERR_STAT, &response);

  } while(response.data & 0x1);

这部分代码应该是查询SPn_ERR_STAT中PORT_UNINITIALIZED,即ports输入输出是否初始化,如果没初始化,就一直等待下去。

两个DSP硬件上SRIO的四个通道全部相连了。

Jacob1:

你好,之前我们这边调试的时候,寄存器设置的不对,有可能也会死在那里。还有你两边的C6455的srio都开了么?

jone jack:

回复 Jacob1:

两边的都开了,分主从模式。不知道这和打开的顺序有没有关系,还有我发现把

/* Unlock the powersaver control register */

//    CSL_FINST (((CSL_DevRegs*)CSL_DEV_REGS)->PERLOCK, DEV_PERLOCK_LOCKVAL,

//               UNLOCK);

   /* Enable the SRIO */

//    CSL_FINST (((CSL_DevRegs*)CSL_DEV_REGS)->PERCFG0, DEV_PERCFG0_SRIOCTL,

//               ENABLE);

把这两句话屏蔽掉,就可以完成初始化,但是好像无法读写,就是主DSP写256字节数据到从DSP的0x900000地址,从DSP的数据没有任何改变!

Jacob1:

回复 jone jack:

你好,能否问一下那个你的程序中CSL_srioHwSetup 这个在哪里有具体的说明?从C6678的csl文档中没有找到呢。

jone jack:

回复 Jacob1:

我用的是C6455的CSL,DSP也是C6455.

Jacob1:

回复 jone jack:

不好意思,看错了,我们现在正在调的是C6678的。

附件是我们之前调试过的,DSP+FPGA的架构的DSP端的程序,你看看有什么帮助没有。

赞(0)
未经允许不得转载:TI中文支持网 » SRIO无法初始化
分享到: 更多 (0)