Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
LwIP on QEMU
发布于 2008-07-14 15:32:07 浏览:10432
订阅该版
shaolin: QEMU/s3c2410,应该用哪个网卡驱动?cs8900 还是 rtl8019? cs8900在put_reg的时候data abort了,用的是你原来U盘给的那个版本 0.2.3 lwip_sys_init过不了(没用demo,直接在startup启动lwip_sys_init),我用arm-elf-insight再跟跟 ![timer.JPG](https://oss-club.rt-thread.org/uploads/88_7ad058e576f52a507e9b4ea7a9cdadd7.jpg)
查看更多
8
个回答
默认排序
按发布时间排序
bernard
2008-07-14
这家伙很懒,什么也没写!
搞定了,原来cs8900是开发板上的,rtl8019是QEMU的,另外QEMU得用你修改的版本。 lwip_sys_init()函数中会用到semaphore,并把自己给柱塞住,所以不能在startup时调用,得启动一个thread来调用。现在(0.2.3)使用动态thread挺方便的,用完后自动消失,线程栈,PCB这些分配的内存都回归到系统中。
shaolin
2008-07-14
这家伙很懒,什么也没写!
OK
bernard
2008-09-18
这家伙很懒,什么也没写!
我错啦: [s:182] 我修改的lwip移植版本有问题,原来是觉得lwip提供给上层的socket接口和lwip timer搅在一起,不用lwip的thread_new创建的thread就不能使用lwip socket,现在看来是错了!原来shaolin移植的lwip版本是正确的。 具体情况是,lwip自己的thread用thread_new创建出thread,然后这个thread每次创建的timer都链在属于这个thread的一个链表上。当这个thread要睡眠的时候(也就是去获取semaphore或mailbox时),会从这个链表中去第一个timer节点,最多只睡眠timeout的时间。当醒来时,如果是 timeout返回,那么会先去执行timer上挂的函数,并把这个timer给删除掉。 实际上,用lwip提供给上层的socket接口时,其涉及到要获取信号量的操作已经用系统中带timeout时间标志的函数去获取了,并不会发生一个timer timeout的问题,所以这层已经和lwip的timer无关了。所以,现在又在往回退,不过现在的timeouts链表直接挂在了thread的user_data上,不用去查是lwip thread的哪一个thread,直接去当前thread的user_data字段就可以了。
bernard
2008-10-07
这家伙很懒,什么也没写!
写了个python的代码: ``` import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("192.168.0.30", 7)) i = 0 while True: s.send("send string" + str(i)) print s.recv(32) i = i + 1 s.close() ``` 不停的向TCP Echo发包,目前没看到有什么问题。再放几天看看吧。
shaolin
2008-10-31
这家伙很懒,什么也没写!
Bernard 下载过程中下到一般终止问题应该是由定时器导致的。 环境:2410模拟器中跑rtt,lwip,ftpserver,PC端运行ftp client工具 现象:ftp client工具下载一个20M的文件,偶尔能够正常下完,但是大多时间是在中途就下不了,包交互就停止。 分析:从log看,中途停止下载是因为在server这端掉了一个ACK包,按照TCP协议,在规定时间内某个数据包发送后 如果没有收到ACK确认包,会重新传送这个数据包,这个重传动作是靠定时器来保证的。在lwip中,tcp连接建立后, 定时期每隔250ms会去查看连接状态,这个定时器是在sys_mbox_recv中被触发的,如果定时期链表不为空,则取出 链表上第一个定时期timeout,在timeout时间到达后不管mbox是否收到mail,都会从rt_mbx_recv中返回。 现在的情况是timeout时间到达后没有从rt_mbx_recv返回,还是继续被阻塞,所以导致定时器事件没有被启动,从而 没有产生TCP重传动作。 所以问题就是rt_mbx_recv在调用rtt的定时期后没有返回。我晚上回去再看看
shaolin
2008-11-01
这家伙很懒,什么也没写!
终于搞明白了,这个bug还隐藏的很深。 -tcpip任务中在sys_arch_mbox_fetch时确实创建了一个定时器. 但是在定时器等待过程中任务被切换给了tcpecho任务, tcpecho给tcpip的mailbox发了一个mail,把tcpip任务唤醒了, 在唤醒任务的同时把tcpip的定时器也给删掉了。而这时这个定时器 状态标志位还是RT_TIMER_FLAG_ACTIVATED。 之后重新启动定时器时检查到这个标志位为RT_TIMER_FLAG_ACTIVATED, 就立即返回了。如下图
bernard
2008-11-01
这家伙很懒,什么也没写!
好啊,又一个bug被揪出来了!这个bug fix也放到0.2.4版本中吧。
撰写答案
登录
注册新账号
关注者
0
被浏览
10.4k
关于作者
bernard
这家伙很懒,什么也没写!
提问
414
回答
5940
被采纳
76
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
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
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
16
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部