webuip移植准备9(转载) 作者 brotherwen 日期 2007-7-31 10:52:00
0
推荐
uIP开源项目介绍
uIP是专为8位和16位的嵌入式微控制器设计的微型TCP/IP协议栈, 它采用BSD授权(这里可以获得完整的BSD许可证), 具有良好的互操作性, 并遵循RFC标准.
uIP提供了网络通信所必须的协议, 本身代码和占用的内存数都非常少 - uIP的源代码只有几KB, RAM占用仅几百字节.
uIP是一个完全由C语言编写的开源软件, 它的文档和源代码可用于商业和非商业用途, 它已经移植到了大部分的8位微控制器, 而且已在很多的嵌入式产品和项目中使用. (比如卫星, Cisco路由器. 查阅Links页面的几个例子)
【UIP文档Web服务器】是关于uIP,一个专为8位和16位嵌入式微控制器设计的微型TCP/IP协议栈的介绍。uIP采用BSD授权,具有良好的互操作性和对RFC标准的遵循性。它是一个轻量级的开源软件,其源代码仅有几KB,运行时内存占用极小,通常几百字节。由于其小巧的体积和高效的性能,uIP已广泛应用于各种8位微控制器,包括卫星和Cisco路由器等。
uIP的核心特性包括:
1. **丰富的文档和源代码注释**:几乎每一行代码都有注释,便于理解和定制。
2. **代码精简**:仅包含必要的网络通信协议实现,如ARP、SLIP、IP、UDP、ICMP(ping)和TCP。
3. **内存管理灵活**:编译时可配置TCP链接数、ARP表项和包缓冲大小。
4. **无限制的并发TCP连接**:根据需求在编译时设定。
5. **遵循RFC标准**:包括TCP和IP的流控制、片段分割和重传超时估算。
6. **商业和非商业用途皆可免费使用**。
uIP的开发者是瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels。在Atmel AVR平台上,uIP的代码大小和RAM占用可以根据配置进行调整,例如,一个简单的HTTP服务器配置,包括一个监听的TCP端口、10个TCP连接、10个ARP表项和400字节的包缓冲,占用的内存资源会相应增加。
此外,uIP文档1.0提供HTML和PDF格式下载,包含了详细的参考手册和论文:
1. Adam Dunkels的“Full TCP/IP for 8-Bit Architectures”论文,介绍了uIP和IwIP在8位架构上的全TCP/IP实现及其与标准的关系。
2. Adam Dunkels、Oliver Schmidt、Thiemo Voigt和Muneeb Ali的“Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems”论文,探讨了支持uIP protosocket库的protothreads技术。
3. Adam Dunkels、Juan Alonso和Thiemo Voigt的“Making TCP/IP Viable for Wireless Sensor Networks”工作进展报告,讨论了在无线传感器网络中使用TCP/IP和uIP的可行性。
对于开发者来说,移植uIP到新的平台通常涉及以下步骤:
1. 理解目标平台的硬件特性,如处理器架构、内存模型和外设接口。
2. 配置uIP以适应新平台的内存限制和网络堆栈需求。
3. 编写或适配底层驱动,如网络接口驱动和串行通信驱动。
4. 将uIP的中断处理和定时器功能映射到目标平台的中断系统和定时器。
5. 测试和调试移植后的uIP,确保所有协议和服务都能正常工作。
uIP因其轻量级和高效性,成为嵌入式开发中的理想选择,特别是对于资源受限的设备。通过理解其核心特性和移植过程,开发者可以有效地将uIP整合到自己的项目中,实现网络通信功能。