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.

关于GE例程的使用

Expert 1194 points


硬件是6678,软件是GE例程,之前我已经实现了两块板卡之间的传输和板卡与上位机之间的传输, 现在我想实现上位机给板卡传数,手里有一个网口调试的软件,界面如图,需要知道接收端的IP,而GE例程中只有MAC地址,在上位机方面我使用ARP将IP与MAC绑定,这样配合使用来达到IP之间的相互传输。当我传输一包数据时,我可以用抓包软件抓取到正确的数据包,但是我在程序中查看接收包的变量却没发生变化,这样就可以肯定板卡是没有接收到数据的。不知道有哪位朋友做过这样的测试。

  • 如果是局域网直联,在一个网段内,发包时,根据标准以太网帧格式协议,在数据负载字段中,MAC头后加上IP头就可以了

  • 是局域网直联,我的电脑IP是192.168.2.100,我将192.168.2.200和板卡的MAC88-88-88-00-00-01绑定,我让板卡运行,然后ping,却ping不通。

  • 在GE例程中,如果使用两块板卡相互通信时,使用的程序是相同的,但是程序运行的核是不同的(就是说主在核0,从在核1运行,对于使用同一个程序,这样设计的话,虽然两块板卡上运行的程序是一样的,但是我不理解Source_MAC_address和Dest_MAC_address是如何设定给相应的板卡的);

    在DSP板卡给上位机发数时,Source_MAC_address是自己设定的MAC地址,Dest_MAC_address是上位机的MAC地址

    现在我要实现上位机给DSP板卡发数,我是不是就可以这样设定Source_MAC_address是上位机的MAC地址,Dest_MAC_address是自己设定的MAC地址

  • 我在查看寄存器的时候发现STATB的RX寄存器和STATA的TX寄存器发生变化,但是程序未进入到中断响应,这是什么原因?这些寄存器的值跟PC上wireshark抓取到的包数一致,包含一些广播包和我自己发送的包。

  • TI的技术支持们,希望能够得到你们的帮助。

  • 我指定IP 发送给DSP的包无法进入中断响应,而广播包就可以,这是什么原因。

  • 我怀疑是在上位机发送端使用ARP将IP与MAC绑定这块出错,也许不能这么简单的绑定。不知道这块该如何设置?还有就是在GE例程中Source_MAC_address和Dest_MAC_address哪一个是设置当前板卡的MAC的。因为发送端的DSP这样设置,接收端的DSP也这样设置。我就有点糊涂了。

    unsigned long long Source_MAC_address[GE_NUM_ETHERNET_PORT]=
    {
    	0x888888000001,
    	0x888888000002
    };
    unsigned long long Dest_MAC_address[GE_NUM_ETHERNET_PORT]=
    {
    	0x888888000003,
    	0x888888000004
    };

    是我的问题太弱智了么?都没一个人愿意理的?

  • 您看到的工程是基于两个EVM互通的工程,所以SOURCE 和 DEST MAC地址是相互的

  • 谢谢您的回复;

      1.我还是不理解你说的相互的是什么意思?在A板卡与B板卡通信时,假如A的SOURCE MAC设置为88-88-88-00-00-01,DEST MAC设置为88-88-88-00-00-03,那么A的MAC是多少?假如B的SOURCE MAC设置为88-88-88-00-00-01,DEST MAC设置为88-88-88-00-00-03,那么B的MAC是多少?(在实验结果分析后,我发现A的MAC是88-88-88-00-00-01,而B的MAC是88-88-88-00-00-03,这是为什么?DSP中是否有设置MAC的寄存器?

      2. 目前我在上位机与板卡通信出现了问题,我的思路如前面回复所述,不知道您有什么好的建议?

  • 这贴子要死了么?如果没人回答的话我就结贴了。

  • 对于之前所提问的,今天在高人的指点下终于解开疑惑。在这里跟大家分享一下。

    之前在测试上位机给以太网发包时,DSP没有进入中断,但是在STATS寄存器中可以看到有包计数增加。所以我就误认为包进入了DSP ,但事实是包只进入了switch,而并未进入到DSP中,这就就涉及到在程序开头设置的Source_MAC_address和Dest_MAC_address。

    Source_MAC_address作为发送端的MAC地址,Dest_MAC_address作为接收端的MAC地址,可以这样理解,假如A板卡给B板卡发数,A作为发送端,B作为接收端,那么A板卡与B板卡的Source_MAC_address都为A板卡的MAC,Dest_MAC_address都为B的MAC;假如DSP给上位机发数,那么Source_MAC_address为DSP的MAC,Dest_MAC_address为上位机的MAC;假如上位机给板卡发数,那么Source_MAC_address为上位机的MAC,Dest_MAC_address为DSP的MAC.