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.

DSP6678网口的问题



您好,我用TI的例程hpdspua改写了6678的网口程序,采用TCP/IP协议,DSP作为服务器,PC机作为客户端,直接在传输层进行数据收发。我用网口调试助手调试是可以的。之后我加了一个循环,当bytes <= 0的时候,我退出收发进入监听状态等待PC机连接,这样如果断开,DSP可以不用重新上电就直接连上。但是我遇到一个问题,DSP断开连接只能有12次,之后就连接不上了,提示是out of memory。然后我就将例程的配置文件中heapMemParams.size改为了0X989680。DSP可以断开连接60次,之后仍然不行,并且没有提示错误。我感觉DSP仍在收发状态,没进入监听状态。并且,我将DSP程序烧写进去,有些时候可能出现非正常断开,然后就连接不上了。我想问一下,怎样可以使DSP在非正常断开时仍能连接上呢?主要是我不知道DSP跑到哪去了?谢谢!!非常感谢!我愿意提供代码!

  • Hi, 您好!

    如果您是加载以后一运行就跑飞了,您可以尝试附件中的方法。

    如果您是运行一段时间后跑飞,您可以在代码的关键步骤加入一些打印,比如“进入收发状态”,“退出收发进入监听”, 这可以帮助判断是运行到哪部分。

    如果在跑飞以后,还可以从CCS读到内存信息,您可以从view->register中看到一些有用的信息,如PC指针, 寄存器(B3 通常是函数调用的返回点;A4, B4通常是函数入参, B15通常是栈指针,B14通常是全局变量的指针)

    此外,您还可以从view->memory browser里尝试看更多寄存器信息,对照TMS320C66x DSP CorePac User Guide (SPRUGW0B)

    9.5.4.2 Masked Exception Flag Registers (MEXPFLAGn)看是发生了什么异常

    CCS.pptx