RT-Thread-packages / at_device

AT component porting or samples for different devices
Apache License 2.0
215 stars 182 forks source link

ec200x 4G模块直吐模式导致数据丢失严重 #181

Open largesun opened 2 years ago

largesun commented 2 years ago

在调试移远EC600N模块时发现,at socket接收大量数据时,出现内存分配失败的现象,后面跟踪发现底层使用的直吐模式,有数据过来时mcu直接calloc缓存,当数据量大点时,比如下载几十KB或者更大的文件时,大量数据直接挤爆mcu的内存,导致出现因内存直接丢弃数据,建议使用模块的缓存模式和QIRD命令实现底层的at_socket,提高可靠性

qiyongzhong0 commented 1 year ago

模块缓存也是有限的,使用缓存模式并不能解决数据积压问题,还可能会引入数据延迟问题和遗漏问题。

yangpengya commented 6 months ago

传输大量数据一般都是在传输协议上做控制,比如服务器每发送几KB就等待MCU处理确认,MCU处理完一帧服务器再发下一帧。每次发几KB可以取决于应用接收缓存。MCU SRAM大接收缓存就可以开大点。