UIP中文文档第七uIP编译时配置选项

上传人:876****10 文档编号:141913896 上传时间:2020-08-14 格式:DOC 页数:11 大小:202KB
返回 下载 相关 举报
UIP中文文档第七uIP编译时配置选项_第1页
第1页 / 共11页
UIP中文文档第七uIP编译时配置选项_第2页
第2页 / 共11页
UIP中文文档第七uIP编译时配置选项_第3页
第3页 / 共11页
UIP中文文档第七uIP编译时配置选项_第4页
第4页 / 共11页
UIP中文文档第七uIP编译时配置选项_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《UIP中文文档第七uIP编译时配置选项》由会员分享,可在线阅读,更多相关《UIP中文文档第七uIP编译时配置选项(11页珍藏版)》请在金锄头文库上搜索。

1、UIP中文文档第七-uIP编译时配置选项 作者: 日期:相关文件:uip-conf.h uip配置文件.uipopt.h uip配置选项针对于工程的配置选项:uip有大量的配置选项,它们都可以根据工程需要重载.它们被保存在一个工程相关的uip-conf.h文件中,所有配置的名称都有UIP_CONF前辍. 1. #define UIP_CONF_MAX_CONNECTIONS 最大的TCP连接数.2.3. #define UIP_CONF_MAX_LISTENPORTS最大监听的TCP端口数.4. #define UIP_CONF_BUFFER_SIZE uip 缓冲区大小.5. #define

2、 UIP_CONF_BYTE_ORDER CPU字节顺序.6. #define UIP_CONF_LOGGING 是否开启日志7. #define UIP_CONF_UDP 是否启用UDP功能8. #define UIP_CONF_UDP_CHECKSUMS 是否启用UDC校验和.9. #define UIP_CONF_STATISTICS UIP配置统计是否开启.10. typedef uint8_t u8_t 8位的数据类型.11. typedef uint16_t u16_t 16位的数据类型.12. typedef unsigned short uip_stats_t 统计数据类型.复

3、制代码静态配置选项:这些选项可以用来静态配置IP地址,条件是UIP_FIXEDADDR必须设为1. 指定节点的配置选项包括IP地址,子网掩码,默认路由及以太网址.而后三项只有在以太网中时才可用. 1. #define UIP_FIXEDADDR 决定uIP使用固定IP与否.2. #define UIP_PINGADDRCONF 设置ping地址.3. #define UIP_FIXEDETHADDR ARP模块的编译是否用固定的MAC地址.复制代码IP配置选项: 1. #define UIP_TTL 64 定义UIP包的生存时间.TTL.2. #define UIP_REASSEMBLY 打开

4、IP包重新组装功能.3. #define UIP_REASS_MAXAGE 40 IP片断扔掉之前在重组装缓冲区等待的时间.复制代码UDP配置选项: 1. #define UIP_UDP UDP支持是否编译2. #define UIP_UDP_CHECKSUMS. 是否使用UDP校验和.3. #define UIP_UDP_CONNS 最大并发UDP连接数.4.复制代码TCP配置选项: 1. #define UIP_ACTIVE_OPEN 决定UIP的打开连接支持是否编译.2. #define UIP_CONNS 最大同时打开的TCP连接数.3. #define UIP_LISTENPORTS

5、 最大TCP监听端口数.4. #define UIP_URGDATA是否编译TCP紧迫数据提醒.5. #define UIP_RTO 3 初始重传超时计数,以定时器脉冲个数计.6. #define UIP_MAXRTX 8 一段数据最大重传多少次才取消连接.7. #define UIP_MAXSYNRTX 5 一段SYN数据要最大得传多少次,才认定连接请求失败.8. #define UIP_TCP_MSS (UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN) TCP最大段大小9. #define UIP_RECEIVE_WINDOW 广播接收器的最大窗口大小

6、.10. #define UIP_TIME_WAIT_TIMEOUT 120 一个连接处于TIME_WAIT状态的最大时间.复制代码ARP配置选项: 1. #define UIP_ARPTAB_SIZE ARP表大小.2. #define UIP_ARP_MAXAGE 120 ARP表的最大存活年龄,单位为10s.复制代码通用配置选项: 1. #define UIP_BUFSIZE UIP包缓冲区大小.2. #define UIP_STATISTICS 是否编译统计功能.3. #define UIP_LOGGING 某些事件的日志功能是否编译.4. #define UIP_BROADCAST

7、广播功能是否支持.5. #define UIP_LLH_LEN 链路层头长度.6. void uip_log (char *msg) 打印UIP日志信息.复制代码CPU架构配置:这里指定的是CPU的大小端模式.当今的CPU多时小端的,然而最著名的例外就是motorola的CPU.它是大端的.应根据CPU的大小端模式不同,配置 BYTE_ORDER. 1. #define UIP_BYTE_ORDER UIP所运行的CPU大小端模式.复制代码针对应用的配置:UIP应用是使用单个应用函数数实现的.只要TCP/IP事件发生,uIP就会调用这个函数.这个函数的名字必须在编译时使用UIP_APPCALL

8、注册到uIP.uIP应用可以在uip_conn结构中保存应用状态.这是通过利用typedef uip_tcp_appstate_t和uip_udp_appstate_t指定应用的类型实现的.包含此定义的文件必须被包含在uipopt.h文件中.下面是一个例子:1. void httpd_appcall(void);2. #define UIP_APPCALL httpd_appcall3.4. struct httpd_state 5. u8_t state;6. u16_t count;7. char *dataptr;8. char *script;9. ;10. typedef struc

9、t httpd_state uip_tcp_appstate_t复制代码1. #define UIP_APPCALL smtp_appcallTCP/IP事件的应答函数名称.2. typedef smtp_state uip_tcp_appstate_t 存储在uip_conn中的应用状态类型.3. typedef int uip_udp_appstate_t 存储在uip_conn中的应用状态类型4. #define UIP_LITTLE_ENDIAN 34125. #define UIP_BIG_ENDIAN 1234复制代码1. #define UIP_ACTIVE_OPEN决定是否支持

10、在uip中打开连接.如果此工程中工作于uip上层的应用不需要打开TCP连接,可以关闭此项以减小编译后的代码大小.定义于uipopt.h中的233行.2. #define UIP_ARP_MAXAGE 120以10s为单位的ARP表项的最大年龄.120代表的是20分钟(BSD中的默认值).定义于uipopt.h中的358行.引用于uip_arp_timer().3. #define UIP_ARPTAB_SIZEARP表的大小.如果uip节点可能在本地网络中有很多连接,则此值应设得大些.定义于uipopt.h中的349行.引用于uip_arp_init(), uip_arp_out(), and

11、uip_arp_timer().4. #define UIP_BROADCAST支持广播.此标志用于配置广播的支持,仅在开启UDP时才有意义.定义于uipopt.h中的423行.5. #define UIP_BUFSIZEuip包缓冲区大小.不就小于60字节,不须大于1500字节.这个值越小,TCP的吞吐量就越小,相反越大.定义于uipopt.h中的379行.引用于uip_split_output().6. #define UIP_BYTE_ORDERuip运行的CPU构架的字节顺序,可选值仅有两个,分别为BIG_ENDIAN和 LITTLE_ENDIAN.应用全程:example-mainl

12、oop-with-arp.c, and example-mainloop-without-arp.c.定义于uipopt.h中的475行.7. #define UIP_CONNS可同时打开的最大TCP连接数.由TCP连接是静态开辟的,所以减小此选项的值可以减小RAM占用量,每个TCP连接需要大约30字节的RAM.定义于uipopt.h中的245行.引用于uip_connect().8. #define UIP_FIXEDADDR决定uIP是否使用固定IP地址.如果使用固定IP地址,则此地址可以在uipopt.h中指定.否则,如果想用动态的IP地址,则可以使用uip_sethostaddr(),

13、 uip_setdraddr() and uip_setnetmask() 三个宏动态指定.定义于uipopt.h中的97行.9. #define UIP_FIXEDETHADDR决定uIP是否使用固定的MAC地址.若不使用固定的MAC地址,则可用uip_setethaddr()在运行时动态指定.定义于uipopt.h中的127行.10. #define UIP_LISTENPORTS可以同时监听的最大端口数.每监听一个TCP端口需要两字节内存.定义于uipopt.h中的259行.引用于uip_init(), uip_listen(), and uip_unlisten().11. #defi

14、ne UIP_LLH_LEN链路层头的长度.这个IP头在uip_buf中的编移量.对于以太网来说,此值为14.对于SLIP来说,其值0 .定义于uipopt.h中的448行.引用于uip_ipchksum(), uip_process(), and uip_split_output().12. #define UIP_LOGGING定义是否编译事件日志.这对于调试是非常有帮助的.如果打开此项,或必须在工程的构架上实现uip_log().定义于uipopt.h中的408行.13. #define UIP_MAXRTX 8在最多多少次重新发送同一段数据之后,就得取消连接.此项不应改变.定义于uipopt.h中的288行.引用于uip_process(). 14. #define UIP_MAXSYNRTX 5一个SYN数据最多可以重传多少次,之后就得认为连接请求失败.此项亦不应改变.定义于uipopt.h中的297行.引用于uip_process().15. #define UIP_PINGADDRCONF设定ping IP地址.如果设定此项,则uip使用ping包来设定其IP地址.此时uip启用时会只有一个空的Ip地址,而把收到的第一个ping包设为自己的地址.注意:此项只有在UIP_FIXEDADDR设为0时才可用.定义于uipopt.h中的114行.有点长,楼下继续本

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号