论文部分内容阅读
21世纪是个信息化的社会,计算机和网络已经渗透到我们日常生活的每个角落。随着嵌入式系统的发展,计算机技术进入了称之为“后PC”的时代。在嵌入式系统飞速发展的同时,也对嵌入式系统提出了新的需求,那就是“网络化”,也称为“后网络”时代。如今大多数嵌入式系统都有这方面的要求:智能手机,网络家电,智能家电,车载电子设备……然而,不同的嵌入式系统对网络的需求亦不相同,比如说智能手机对网络的要求就很高,而车载电子设备的网络需求则相对简单。所以不能一概使用伯克利版本的TCP/IP协议栈。针对嵌入式系统网络的特殊需求,我们提出了一个简单的解决方案:应用已有的uIP网络协议栈,根据嵌入式系统对网络处理能力的需求,对uIP协议栈进行裁剪,定制自己的网络协议栈。在使用最少的硬件资源(使用更少的内存,占用更少的CPU)的同时满足嵌入式系统的网络需求,量体裁衣才最合适。在实现一个新的嵌入式网络协议栈的各种方法中,移植uIP协议栈是非常好的方法,理由是:1、uIP协议本身是针对嵌入式系统开发的;2、uIP是开源的项目;3、关于uIP的移植,相关资料十分丰富。所以移植uIP协议栈后需要进行修改裁剪的部分少、代码重用率高,同畴稳定性良好,可维护性也高。本文就是介绍嵌入式系统的网络协议栈uIP及其移植方法,并且以移植uIP协议栈到Windows操作系统来进行示例说明。如何将协议栈挂接到操作系统中也是需要认真处理的,我们使用了最高效的HOOK技术,把自己实现的Socket函数组替换原有系统中的Socket函数组。在我们的解决方案中,uIP协议栈和Socket函数组是可根据实际应用进行裁剪;HOOK技术也是操作系统中一种通用技术并且也是移植系统的高效手段,所以整个解决方案具有很好的通用性和实用性,是一项十分有意义的工作。在本文的示例中,把uIP协议栈成功的移植到了Windows操作系统中,并且可以让浏览器使用该协议栈进行正常的网络通讯,并且使用了较少的内存,占用较少的CPU。对于其它嵌入式系统,也可以根据实际需要对uIP进行定制,删除不必要的功能,增加特殊需求,并使用操作系统提供的HOOK机制进行高效的移植。