在测试中发现,dsp正常工作,但是网络中出现大量的arp包信息(泛洪)后,导致相关的dsp重启。 dsp的网络采用system-bios + ndk 的实现方式,知道是什么原因吗? 怎么有效的解决?
Shine:
arp包是哪里来的?是整个DSP重启?还是网口重启,网口代码有添加restart功能吗?
user5947300:
回复 Shine:
谢谢您的回复!arp包是网络中的(比如交换机中);是整个dsp重启 ;网口代码没有添加restart功能,网口只是做udp数据的收发!
Shine:
回复 user5947300:
请问是自己的板子吗?整个DSP重启的话,能确定是什么导致的重启?watchdog超时引起的?
user5947300:
回复 Shine:
是自己的板子。看信息好像是说信号量超过65535导致的。
user5947300:
回复 Shine:
这是ccs打印的信息。 但是进行udp收发的时候,高速率下也不会导致dsp重启
Shine:
回复 user5947300:
这个错误信息是指semaphore溢出了,程序中call Semaphore_post()的次数大于call Semaphore_pend()的次数。请跟一下程序中调用Semaphore_post函数地地方为什么会频繁调用导致溢出。
user5947300:
回复 Shine:
感谢回复,我明白了您的意思,这边去查一哈!但是我现在疑惑的就是,在网络中没有大量arp包的时候是正常的,但是有大量的arp包之后就会出现这次错误!因为用的sys/bios + ndk实现的网络,对于arp是没有做处理的。