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.

TMS320C6657: 长时间(超8h)进行网络大量数据传输导致网络失效,无法ping通

Part Number: TMS320C6657

问题描述

  1. 长时间(1h、8h(添加了部分log)不等)传输音频数据,出现ARM无法ping通DSP的情况,音频数据不能收发、DSP接收不到ARM发送的配置数据,shell task无响应;
  2. 无任何Core0上的log输出,只有Core1上的log输出;
  3. 通过接入调试器会触发GateMutex 的断言直接挂起(如下图);

解决期望:

1. 是否存在NDK设置参数或者网络初始化相关的参数错误,帮忙指出;

2.现阶段无有效手段对网络崩溃情况进行定位分析,是否有手段进行定位;

3.是否遇到类似的情况,可以提供相关案例做参考;

系统方案

说明:

  1. ARM端和DSP端通过网络进行通讯,整体上分为TCP和UDP传输:
  • TCP:传输音频配置数据和升级数据包;
  • UDP:传输心跳包和音频数据数据;
  1. DSP端创建多个Task对配置数据、音频数据进行收发、处理;两个核心之间采用FIFO进行同步传输

核心

Task名称

Task描述

优先级

Stack 大小

0

Main Task

进行双核共用资源的初始化,如FIFIO

11

8192

Network Init Task

网络初始化,SGMII,NC_NetStart

9

8192

LitteShell Task

移植的开源litte shell,串口收发

6

8192

Config Recv&Send Task

通过TCP对音频配置数据进行收发,并写入配置数据的fifo,

5

8192

Config Decode Task

检测到配置数据的fifo后,按照协议进行解析,解析后将结果写入双核通讯的配置fifo中

4

8192

Upgrade Data Trans Task

通过TCP传输升级包数据

3

8192

Upgrade Task

升级包接收完成后,执行升级操作

2

8192

Heartbit Recv&Send Task

通过UDP对心跳数据进行收发,确认网络处于一直连接的状态

8

8192

Audio Recv Task

通过UDP接收音频数据,并按RTP协议进行解析,并写入到双核通讯的音频fifo中

7

8192

Audio Send Task

一直去同步双核通讯的音频fifo,有数据就读出音频数据,并将音频数据进行分包、RTP编码通过UDP发送

7

8192

1

Algo Task

1,读取配置fifo,有数据就进行配置数据的解析,解析出真实配置数据,给到算法进行处理

2,不断读取音频输入fifo,有数据就读取音频数据,再根据配置数据进行对应的算法处理,处理完,将音频数据写入到音频输出fif

10

8192

开发环境描述

  • Windows下开发
  • 调试器:XDS200

网络相关配置

SGMII 寄存器

SGMII SerDes PLL Configuration Register

0x00000051

SGMII SerDes Receive Configuration Register 0

0x00700621

SGMII SerDes Transmit Configuration Register 0

0x000108A1

NC_NetCfg

描述

CFGITEM_IP_SOCKTCPTXBUF

64000

TCP Transmit buffer size

CFGITEM_IP_SOCKTCPRXBUF

64000

TCP Receive buffer size (copy mode)

CFGITEM_IP_SOCKTCPRXLIMIT

64000

TCP Receive limit (non-copy mode)

CFGITEM_IP_SOCKUDPRXLIMIT

64000

UDP Receive limit

网络socket和数据量

目前在上述背景下,开发的网络应用启用了 4 个 socket,分别如下:

‒ 心跳功能:UDP socket,每 5s 一次传输,payload 约为 10Byte

‒ 音频数据:UDP socke(2个socket 发送和接收socket)t,每 2ms 一次传输, payload约为15,400字节

‒ 配置数据:TCP socket,不定时产生传输,payload 最多 9600 字节

‒ 升级数据:TCP socket,升级时进行传输,payload 和升级有关,一次 2K 字节