移植uIP开源协议栈需注意的几点

随着物联网的发展,越来越多的设备需要加入联网的功能,Uip是专为嵌入式设计的轻型开源TCP/IP协议栈,很小的代码尺寸,因为嵌入式控制器资源的限制,所以不是全功能的TCP/IP协议栈,在移植的时候需要注意一些问题。(里面有很多的全局变量需要注意)

1 首先要搞清楚uIP的源码目录结构,分析源码的结构,风格。

2 例程的分析和学习,Uip的源码包里含有很多的例程,像webserver,telnet,等功能如上图所示,注意源码里面很多的宏定义,像定义UIP_APPCALL,自己的应用函数要按照这个规定来定义。

3,doc文件夹里面的参考文档是最重要的参考资料,是最权威的。应多读几遍,至少三遍以上,有一个清晰的理论和脉络,对学习和移植都有很大的帮助。像webserver例程,可以参考移植到自己的工程,做出很漂亮的嵌入式上的webserver。小猿已经在K64上移植成功。是很好的学习参考。移植过程中有问题就去文档中寻找答案。如有跟多的网络方面的问题还要参考RFCxxx文档。

4,移植到裸机和带操作系统的设备上要注意有一些区别。像在Uip上移植modbusTCP/IP到裸机和带freeRTOS的系统上就有区别,需要注意修改代码。

5,举一反三,在研究明白源码,并能简单移植BSP后,可以加入更多的功能,移植更多的源码,例如可以移植freeModbus,使基于Uip的 Modbus TCP/IP跑起来

6,之后还可以研究下其他的开源协议栈,像LwIp,比uip复杂一些,功能多一些。

最后我们要感谢这些设计出开源协议栈可以供我们学习和使用的前辈们。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2017-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java工会

使用Github创建自己的小博客

10520
来自专栏大数据挖掘DT机器学习

用Python统计新浪微博各种表情使用频率

用新浪微博API积累了微博广场的1.4万条数据,我选择了21个字段输出为TXT文件,想用Python稍微处理一下,统计一下这1.4万条微博里面表情使用情况,统计...

27540
来自专栏大数据挖掘DT机器学习

用Python统计 新浪微博 各种表情使用频率

用新浪微博API积累了微博广场的1.4万条数据,我选择了21个字段输出为TXT文件,想用Python稍微处理一下,统计一下这1.4万条微博里面表情使用情况,统计...

33250
来自专栏存储

你真的很熟分布式和事务吗?

微吐槽 hello,world. 不想了,我等码农,还是看看怎么来处理分布式系统中的事务这个老大难吧! 本文略长,读者需要有一定耐心,如果你是高级码农或者架构师...

23590
来自专栏杨建荣的学习笔记

使用Echarts来实现数据可视化

自动化运维中,脚本化,工具化,平台化的过程中,有一个环节不可缺少,那就是可视化。 可视化这方面的开源产品还是相当的多,总体的方向都是借助于丰富的前端方案来联动,...

45360
来自专栏黄希彤的专栏

内部体验腾讯负载均衡的新功能

腾讯云近期将推出的新的负载均衡轮询算法,新算法被称为“最小连接数”算法,也就是LB会随时判断哪台主机上的HTTP连接数最少,然后尽量把新的请求分发给它。

86400
来自专栏PPV课数据科学社区

大规模爬虫流程总结

爬虫是一个比较容易上手的技术,也许花5分钟看一篇文档就能爬取单个网页上的数据。但对于大规模爬虫,完全就是另一回事,并不是1*n这么简单,还会衍生出许多别的问题。...

385110
来自专栏Android 技术栈

Android DeepLink介绍与使用

前段时间公司让调研一下DeepLink,说以后会用到,之前看了很久,并做了个demo,现整理一下,方便以后查阅,如果有幸帮助到其他人就更好了。

52760
来自专栏ThoughtWorks

Kubernetes救援 - 教你如何从新技术的坑里爬出来(上) | TW洞见

今日洞见 文章作者/配图来自ThoughtWorks:佟达。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站...

40990
来自专栏java达人

tryLock的一个使用示例

就算是有几年工作经验的,如果没有专业的训练,也不一定能写出一手线程安全的代码,对于一般的web开发而言,多线程相关的部分都封装在web server里了,而平时...

20450

扫码关注云+社区

领取腾讯云代金券