Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AT
at_socket
recvfrom
5
AT socket 接收较长数据 的问题
发布于 2021-08-12 17:04:34 浏览:1092
订阅该版
STM32F环境下,利用webclient 通过4G AT socket下载较大(几十上百k)文件问题! 测试结果如下: 1、webclient没问题,因为通过Lwip的socket下载是没问题的 2、WEBCLIENT_RESPONSE_BUFSZ=4096, 即4K分片下载,首先发现recvfrom函数总是能够“立即”返回4096,无论数据是否接收到 3、继续跟踪发现:是函数at_recvpkt_get总是能够不正常地“迅速”得到4096 4、截图: ![image.png](https://oss-club.rt-thread.org/uploads/20210812/f7a7f6befb75943459ce4134ece35960.png) 图中,表明当调用webclient_read==>recvfrom==>at_recvpkt_get后,此时socket里只有258+1400字节数据,但我们却“成功”得到了4096,原因是 bfsz_totle=825110831, page_pos=16645903 导致的,想问下这是个什么问题 5、在函数at_recvpkt_get里for循环末尾无条件加入break语句,则文件成功下载完成。 总结:git clone 工程,menuconfig 配置好后,竟然不能功能,而且还是这么深入的一个问题,这太折磨人了吧!
查看更多
3
个回答
默认排序
按发布时间排序
出出啊
2021-08-12
恃人不如自恃,人之为己者不如己之自为也
rlist 列表里的数据损坏了,可能是系统中其它地方的内存溢出,把列表数据污染了。
chenkuanglu
2021-08-13
这家伙很懒,什么也没写!
rtt从设计上、框架上、各种模块支持性上都应该国内领先了,必须表扬下。但是,我感觉并不好用,更有莫名的不稳定,比如随便想一个: 1 文件写write SD卡,会有一个不大不打小的概率会失败,磁盘太重要了,这问题我往哪里找啊! 2 i2c 的读写动作,网上清一色的绕过rt_device_write,都是直接调用的i2c虚拟驱动层的函数,这么个重要且小的问题愣是不解决!搞的我自己扩展了内核,又在设备层之上做了个api读写接口,如下: #include "i2c_if.h" int i2c_if_read( rt_device_t i2c_dev, uint16_t slave_addr, uint16_t addr, uint16_t addr_len, // number of bytes, 1 or 2 void *buf, int len) { int ret; rt_off_t pos_flag, pos = slave_addr >> 1; if (addr_len == 2) addr = (addr >> 8) | (addr << 8); struct rt_i2c_bus_device *bus = (struct rt_i2c_bus_device *)i2c_dev->user_data; RT_ASSERT(bus); rt_mutex_take(&bus->lock, RT_WAITING_FOREVER); pos_flag = pos | (RT_I2C_NO_STOP << 16); if ((ret=rt_device_write(i2c_dev, pos_flag, &addr, addr_len)) == addr_len) { pos_flag = pos | (RT_I2C_FORCE_RESTART << 16); ret = rt_device_read(i2c_dev, pos_flag, buf, len); } rt_mutex_release(&bus->lock); return ret; } int i2c_if_write( rt_device_t i2c_dev, uint16_t slave_addr, uint16_t addr, uint16_t addr_len, // number of bytes, 1 or 2 const void *buf, int len) { int ret; rt_off_t pos_flag, pos = slave_addr >> 1; if (addr_len == 2) addr = (addr >> 8) | (addr << 8); struct rt_i2c_bus_device *bus = (struct rt_i2c_bus_device *)i2c_dev->user_data; RT_ASSERT(bus); rt_mutex_take(&bus->lock, RT_WAITING_FOREVER); pos_flag = pos | (RT_I2C_NO_STOP << 16); if ((ret=rt_device_write(i2c_dev, pos_flag, &addr, addr_len)) == addr_len) { pos_flag = pos | (RT_I2C_NO_START << 16); ret = rt_device_write(i2c_dev, pos_flag, buf, len); } rt_mutex_release(&bus->lock); return ret; } 基本的file I2c uart net socket io,一定要好用且稳定,必须是傻瓜式的。否则,带给用户的全是担心和不信任.
李肯陪你玩赚嵌入式
认证专家
2021-09-15
2022年度和2023年度RT-Thread社区优秀开源布道师,COC深圳城市开发者社区主理人,专注于嵌入式物联网的架构设计
看了楼主的 “我一直想找到或者自己搞一个好用稳定的os平台,很遗憾,rtt绝对是不称职的,大家搞工程一定要慎重了!” 给你点个赞,勇于追求更优秀的OS系统,确实需要很大的勇气,尤其在搞工程时。 不过话说回来,RRT现在越来越多人玩了,也衷心希望官方能把大家的开源贡献精神激发起来,大家一起把RRT做得更加稳定、更加优秀。
撰写答案
登录
注册新账号
关注者
1
被浏览
1.1k
关于作者
chenkuanglu
这家伙很懒,什么也没写!
提问
3
回答
3
被采纳
0
关注TA
发私信
相关问题
1
rt-thread 2g/3g/4g通信模块的教程有吗?
2
基于AT指令,用esp8266如何连接mqtt?
3
AT组件使用问题
4
官方AT客户端应用笔记的几个小tip
5
RTT的SAL能够判断使用LWIP或者AT?
6
rt_therad AT组件移植不成功(结贴)
7
AT组件在哪个版本的?
8
AT组件 连接 Onenet 连接失败
9
esp8266 AT指令 MQTT连接问题
10
AT组件使用问题之模块主动上报【已解决】
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-Thread项目助手v0.2.0 - 支持Env Windows
2
RttreadV5.10上,GD32F450Z RTC时间显示问题
3
rt-smart启动流程分析
4
EtherKit快速上手PROFINET
5
RTThread USB转串口无法接收数据
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部