当前位置:首页 > 单片机 > 单片机
[导读]   uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。    (1)移植的基本过程。    针对所用编译器的类型更改定义数据类型,底层RTL80

  uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。
  
  (1)移植的基本过程。
  
  针对所用编译器的类型更改定义数据类型,底层RTL8019AS芯片的驱动和实现应用层代码,系统定时器接口等。下面分别予以说明。
  
  数据类型的定义:

  typedefunsignedcharu8_t;typedefunsignedshortu16_t;typedefunsignedshortuip_stats_t;由于KeilC编译器默认情况下的编译模式为small,变量的定义在内部RAM中,编译时编译模式应改为Large,即变量的定义在XDATA中。
  
  (2)RTL8019AS的驱动。
  
  主要包括以下内容。
  
  ①etherdev_init()完成系统上电初始化,包括设定RTL8019的物理地址和IP地址等,设定收发缓冲区的位置和大小等。
  
  ②etherdev_send()完成数据的发送。
  
  ⑨etherdev_read()完成以太网数据的接收。底层网络设备驱动程序与uIP协议栈通过两个全局变量实现接口:变量uip_buf为收发缓冲区的首地址;uip_len为收发的数据长度。
  
  etherdev_send函数将uip_buf里的uip_len长度的数据发送到以太网上。recv函数将接收到数据存储到uip_buf中,同时返回uip—len的值。
  
  ④etherdev_timerO_isr()定时器1中断函数为系统提供时钟定时。
  
  51系列单片机一般有2或3个定时器,本移植中选用定时器1产生定时时间,为ip_perioDIC()函数的执行提供基准,另外还对ARP表项,TCP连接超时等提供时间基准。
  
  RTL8019AS初始化、收发包的详细过程在12.6节中已经详细介绍过,在此不再赘述。移植后的文件如下:

  uIP的设置在uipopt.h头文件中。在该文件中用户根据具体的实际条件设置uIP的IP地址,MAC地址,网络掩码,网关地址。另外还包括可建立的最大连接数,端口是否启动UDP协议功能等,在具体的应用中可以参考uIP的说明文档,其中都有详细的说明。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

目前移植了UDP客户端模式,测试使用广播地址.//udp_client.c/**************************************************************

关键字: uip udp客户端

收款机即POS(Point Of Sale)机。伴随国内零售及百货业兴起,有着高性能的各种POS的价格已经较容易为商家所接受;对这些商场来说,信息系统在激烈竞争中的作用明显提高,对

关键字: ii pcm uc/os 机上 研扬 解决方案

UIP是单片机界联网的一个很好地选择,移植这个库有点复杂,首先是第一步,网卡驱动要写好,使用的网卡芯片为ENC28J60,驱动可以再工程包里面找到//配置网卡硬件,并设置MAC地址//返回值:0,正常;1,失败;u8 t...

关键字: tcp udp协议 uip 单片机 联网

uIP 由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels (http://dunkels.com/adam/uip/)开发。其源代码由C 语言编写,并完全公开,有了这个TCP/IP协议栈,让嵌入式可以...

关键字: STM32 uip 移植问题
关闭
关闭