微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 移植uip

stm32 移植uip

时间:11-13 来源:互联网 点击:

1stm32定义常量不要code关键字

//定义全1地址常量

staticconstuip_ipaddr_tcodeall_ones_addr=

#ifUIP_CONF_IPV6

{0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};

#else/*UIP_CONF_IPV6*/

{0xffff,0xffff};

#endif/*UIP_CONF_IPV6*/

//定义全0地址常量

staticconstuip_ipaddr_tcodeall_zeroes_addr=

#ifUIP_CONF_IPV6

{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

#else/*UIP_CONF_IPV6*/

{0x0000,0x0000};

#endif/*UIP_CONF_IPV6*/

2为两个回调函数定义函数实体

#defineUIP_APPCALL()uip_appcall() //宏定义注册回调函数

#defineUIP_UDP_APPCALL()uip_udp_appcall()//宏定义注册回调函数

voiduip_appcall(void)

{

}

voiduip_udp_appcall(void)

{

}

3MDK环境下空指令函数修改

并且不要#include

//_nop_();

__nop();//在MDK环境下是__nop();

4为uip提供周期时钟

5修改大小端配置

51是大端,stm32是小端

#defineUIP_CONF_BYTE_ORDERUIP_LITTLE_ENDIAN//51是大端,stm32是小端

在uip_conf.h文件中

6修改类型定义

typedefunsignedshortintu16_t;//和C51有点差别也是在uip_conf.h文件中

7初始化TCP/IP通信必须用到的参数

uip在运行过程中不会再去查询网卡的mac地址,

所以开始就要初始化mac地址

uip_ipaddr(uip_hostaddr,192,168,1,198);

uip_ipaddr(uip_draddr,192,168,1,100);

uip_ipaddr(uip_netmask,255,255,255,0);

uip_ethaddr.addr[0]=0x00;

uip_ethaddr.addr[1]=0x0C;

uip_ethaddr.addr[2]=0x29;

uip_ethaddr.addr[3]=0xD2;

uip_ethaddr.addr[4]=0x58;

uip_ethaddr.addr[5]=0x6B;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top