stm32 移植uip
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;
stm32移植ui 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)