工具/软件:Code Composer Studio
您好!
我已将 Simple Link 驱动程序移植到 AM335x 系列、并使其按预期工作。
创建自己的服务器时、我看到性能非常慢。 具体而言、第一次读取需要大约250ms、以便在接受连接后获得大约500字节的数据。
服务器正在使用针对 sl_Create、sl_Bind、sl_Listen、sl_Accept 和 sl_Read 的定期阻塞调用。 基本代码设计为:
char * ptr = buffer; 执行{ recv (m_socket、ptr、1...) /*一次一个字节*/ 如果(* ptr ==定界符)中断; PTR++; } while ((ptr - buffer)< MAX_buffer); //对块进行摘要以确定有效载荷,然后... */ recv (m_socket、有效载荷、PAYLOAD_SIZE、... );
启动服务器并返回 Accept (接受)呼叫后,大约250ms 后,完全读取完成。
(竞争对手的设备使用中断来发出何时执行"recv"的信号,并且可以在1/10的时间内读取相同的数据块。)
该器件似乎通过 SPI 发送请求、块发送到器件、直至收到中断、然后读取请求的数据量。 这是正确的评估吗? 有哪些改进性能的推荐方法?