
lwip
文章平均质量分 67
bobbat
一个努力中的小青年。。。
展开
-
lwip RawApi 数据发送
今天调试程序,使用lwip协议的Raw API工作模式,做了一个简单的客户/服务器系统。服务器运行FPGA上,使用Powerpc405处理器,32Kcache,64M内存,无操作系统。客户端运行在x86机器,安装Linux操作系统。服务器接收数据没问题,100M网卡下速度约为5MB,其中包括将数据从pbuf中copy至应用程序内存,如果不添加copy操作,大约能达到8MB的传输速度。转载 2014-08-19 10:55:29 · 4798 阅读 · 10 评论 -
基于rt-thread+lwip分析数据是怎么从网卡芯片接收数据到pbuf的(lwip源码解析一)
LWIP是嵌入式设备的网络微协议,基本上实现了标准的TCP/IP的功能,它没有项标准的TCP/IP协议那样有很严格的分层。主要原因是由于嵌入式设别的资源有限,所以避免了每层的COPY动作,在不同层之间是之间共用同一内存操作。那么下面我们来介绍下数据到底是怎么从网卡接收,然后吧数据交给协议处理的:首先说明下,我用的平台是STM32F207+DP83848平台的,lwip1.4.1。1、首先我原创 2015-03-30 23:36:21 · 4299 阅读 · 0 评论 -
DP83848不能连接一部分电脑的问题
前面在论坛提过DP83848不断进入中断(插拔网线,实际上没有插拔),后来查找原因是匹配电阻搞错了,本来是50欧姆匹配 搞成用了1.2k的 所以导致信号线不匹配 从而导致网卡不能成功自适应 一直在100M和10M切换 才会有上面提到的进中断 希望后面的同志可留一下 ...现象描述:有些电脑直连板子(带DP83848网卡芯片),有的电脑可以连上,但是有的电脑时钟连接不上,但是连接路由原创 2015-03-17 20:44:10 · 4392 阅读 · 1 评论 -
关于在调试lwip的短连接的心得
首先说明下,我的平台是STM32F207+DP83848,板子当UDP服务端用的是RT-THREAD操作系统。今天在调试lwip的时候遇到了客户端在一段时间发送数据到我客户端,我收到数据后应答它。但是在一段时间后(时间不定),客户端就接收不到我发送的数据了。后来通过街上打印信息,发现客户端的端口号变了。后来查看资料知道,客户端执行的是短连接,在每次发送完数据后,会关闭UDP的SOCKET服务。再次原创 2015-03-27 18:20:19 · 3118 阅读 · 0 评论 -
[转载]关于LWIP协议栈连续多次tcp_write后失败的解决过程
前段时间一直在调试lwip协议栈的问题,在stm32F107上实现一个C/S 架构的通信程序。项目初期的时候设计的是B/S架构的控制,然后在使用过程中发现了些限制,因为芯片自身的RAM有限,所以跑B/S的server端略显压力,为了处理类似动态网页内容,开辟一个5K的缓冲区,然后一次tcp_write就可以将内容发送给浏览器了,当然网页内容也是比较简单,考虑到后续可能会有更多的数据处理,故决定开发转载 2014-12-24 11:18:14 · 4990 阅读 · 1 评论 -
rt-thread通过TCP连接(网络+shell)方式调用list_if()导致网络断开的问题分析
1.平常我们都是用串口的方式通过rt-thread的finish来调试,但是在遇到串口不够用或者板子没有焊串口。我们就需要通过网络+finish的方式来调试板子。但是在调试板子的时候发现通过通过TCP连接方式调用list_if()的时候,网络出现挂掉。现在是ping不通。2.原因分析:后面查看list_if()的代码发现有这么一个代码:void list_if(void){ rt原创 2015-01-31 23:03:48 · 2670 阅读 · 0 评论 -
lwIP配置文件opt.h和lwipopts.h初步分析
如何去配置lwip,使它去适合不同大小的脚,这就是本贴的主题lwIP的配置问题。尤其是内存的配置,配置多了浪费,配置少了跑不了或者不稳定(会出现的一大堆莫名奇妙的问题,什么打开网页的速度很慢啊?什么丢包啊,什么死机啦,什么跑到无限循环里边去了,总之很多)。 在这里先说一下这两个配置lwip协议栈文件opt.h和lwipopts.h的关系:转载 2014-10-15 01:38:43 · 1354 阅读 · 0 评论 -
LwIP协议栈学习--内存管理
LwIP协议栈学习--内存管理源码case PBUF_POOL:p = memp_malloc(MEMP_PBUF_POOL);case PBUF_RAM:p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(leng转载 2014-08-14 14:31:38 · 1530 阅读 · 0 评论 -
LWIP使用经验
LWIP 使用经验目录(?)[+]LWIP使用经验yu一 LWIP内存管理LWIP的内存管理使用了2种方式:内存池memp和内存堆mem,如图1所示。内存池的特点是预先开辟多组固定大小的内存块组织成链表,实现简单,分配和回收速度快,不会产生内存碎片,但是大小固定,并且需要预估算准确。内存堆的本质是对一个事先定义好的内存块进行合理有效的组织转载 2014-08-14 16:47:49 · 2366 阅读 · 0 评论 -
LWIP程序OPT.h头文件的各种定义
LWIP程序OPT.h头文件的各种定义从别的网上看到的,觉得确实不错,就转载过来了SYS_LIGHTWEIGHT_PROT 平台锁,保护关键区域内缓存的分配与释放NO_SYS --- 是否带操作系统, =1时带,=0时,不带MEMCPY(dst,src,len) --- 内存拷贝 若你希望自己写拷贝函数则可替换SMEMCPY(dst,src,len) -转载 2014-08-13 15:01:12 · 2648 阅读 · 1 评论 -
STM32的lwip使用说明
STM32的lwip使用说明在使用LWIP的TCP/IP协议的,怎么让他跑起来,可以接收数据。我们需要做一下几个步骤,只要这几个步骤初始化好了,那么我们的板子就可以正常收发数据了。 (一)、TCP/IP的初始化。1.新建PCB -- 》pcb = tcp_new();这个是TCP的控制模块。2.设置我们的TCP服务的优先级--》tcp_setprio(pcb, HTTPD_TC原创 2014-08-13 17:00:11 · 5348 阅读 · 1 评论 -
基于rt-thread+lwip源码分析-LWIP的IP层数据处理代码解析(lwip源码解析二)
LWIP的IP层数据处理代码解析继续分析rt-thread的网络接收数据部分的代码。。。。上移章节我们介绍了数据如何从网卡接收到lwip的pbuf里面的,现在我们紧跟着上一章节的内容介绍下网络数据怎么交由lwip内的IP层处理数据的呢?在上一章节中我们提到了在static void eth_rx_thread_entry(void* parameter)线程中接收网络数据的消息邮箱,然原创 2015-04-01 13:52:25 · 2706 阅读 · 0 评论