This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRIO和GE例程如何添加到RTSC工程里

Other Parts Discussed in Thread: SYSBIOS

各位专家好:

项目紧急,希望大神们能给点意见,开发板使用一片C6678,与FPGA之间通过SRIO通信,和上位机之间通过GE通信,FPGA实时不间断的给DSP发数据,DSP接收数据存储在DDR3中,各核通过EDMA将对应的数据段数据搬移至LL2中处理,处理完后再通过GE发给上位机。由于之前用EVMc6678做过算法评估,没有考虑外围通信,用8核处理算法基本能满足要求,现在要加上与外围通信部分,想用core0做主控,控制SRIO和GE的收发及对从核的同步控制,其它核将对应数据搬移至LL2中处理。由于之前没做过外围通信,想参考例程来实现,而SRIO和GE例程是单独的,现在想整合在一起,之前在论坛上看过是可行的,但不知道能不能用一个核来实现,从而更多的核做算法,或者有没有更好的建议,还有我之前算法是RTSC工程,使用了IPC和EDMA的API,怎么将SRIO和GE例程迁移到之前的工程。希望大神们能指点一下!非常感激!

  • 在主任务里把SRIO和GE初始化做完,然后其它的任务就可以做接收发送了

  • Hi Allen Yin:

        非常感谢你的回答,我在core0创建一个task和一个Hwi,task执以太网传输,使用的是NDK,Hwi用来响应SRIO的doorbell中断,其中DSP作为slave。core1-7只创建一个task执行算法,会不断的使用EDMA传输,并使用信号量同步。现在编译能过去,但运行的时候,core1-7不能正常运行,终止程序的时候core2/4/6只能强制停止且有红色的警告,并停止在:ti_sysbios_family_c64p_Hwi14() (reason unknown),个人感觉是和硬件中断有关,但core1-7执行的是相同代码,用到信号量和EDMA,其他都是纯运算,为什么会出现不同的结果,现在找不到原因,不知道是在哪儿出错了。下面是截的图,程序在工作机上不方便拷出来,只能用手机拍了,可能不是很清楚,实在抱歉!

  • 从你的现象不太容易判断问题的原因;你可以从如下几个方面测试看能否有新的发现:

    1. 测试DDR3读写看是否会有错误,因为你的错误显示都是在DDR3区域;

    2. 只运行core 0 和core 1,从简单的开始,逐步的增加core,看是不是由于内存冲突引起的。