硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4127|回复: 11
收起左侧

[以太网] MDK的LwIP软件包全面升级,更好的配合CMSIS-RTOS V2进行工作,使用RTE创建更完美

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
发表于 2019-12-5 09:01:11 | 显示全部楼层 |阅读模式
LwIP已经升级至最新的2.1.2版本
lwIP.lwIP.2.1.0.pack (5.12 MB, 下载次数: 42)

使用RTE环境创建LwIP是非常方便的,比如CubeMX还要省事。之前的帖子:

MDK的RTE环境添加RTX5(FreeRTOS) + LwIP的工程,文件传输速度也可以搞到95Mbps左右了
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93822


这次升级更加秀,支持更完美

QQ截图20191205090027.jpg

把头文件进行了整理规划,看着更舒服了些,这才是专业的软件人员要做事,之前看着乱七八糟。

QQ截图20191205090508.jpg




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
 楼主| 发表于 2019-12-5 10:08:28 | 显示全部楼层
  1. /*
  2. * Copyright (c) 2019 Arm Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the License); you may
  7. * not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  14. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */

  18. #ifndef LWIP_LWIPOPTS_H
  19. #define LWIP_LWIPOPTS_H

  20. /* Options managed by RTE */
  21. #include "lwipopts_rte.h"

  22. /* See "lwip/opt.h" for all available configuration options */

  23. /*
  24.    ------------------------------------
  25.    -------------- NO SYS --------------
  26.    ------------------------------------
  27. #define NO_SYS               managed by RTE
  28. #define LWIP_TIMERS          managed by RTE
  29. #define SYS_LIGHTWEIGHT_PROT managed by RTE
  30. */

  31. /*
  32.    ------------------------------------
  33.    ---------- Memory options ----------
  34.    ------------------------------------
  35. */
  36. #define MEM_LIBC_MALLOC                 0
  37. #define MEMP_MEM_MALLOC                 1
  38. #define MEMP_MEM_INIT                   0
  39. #define MEM_ALIGNMENT                   4
  40. #define MEM_SIZE                        (10*1024)
  41. #define MEMP_OVERFLOW_CHECK             0
  42. #define MEMP_SANITY_CHECK               0
  43. #define MEM_OVERFLOW_CHECK              0
  44. #define MEM_SANITY_CHECK                0

  45. /* ------------------------------------------------
  46.    ---------- Internal Memory Pool Sizes ----------
  47.    ------------------------------------------------
  48. */
  49. #define MEMP_NUM_PBUF                   10
  50. #define MEMP_NUM_RAW_PCB                4
  51. #define MEMP_NUM_UDP_PCB                6
  52. #define MEMP_NUM_TCP_PCB                10
  53. #define MEMP_NUM_TCP_PCB_LISTEN         6
  54. #define MEMP_NUM_TCP_SEG                12
  55. #define MEMP_NUM_REASSDATA              16
  56. #define MEMP_NUM_FRAG_PBUF              15
  57. #define MEMP_NUM_ARP_QUEUE              10
  58. #define MEMP_NUM_IGMP_GROUP             8
  59. #define MEMP_NUM_NETBUF                 2
  60. #define MEMP_NUM_NETCONN                4
  61. #define MEMP_NUM_SELECT_CB              4
  62. #define MEMP_NUM_TCPIP_MSG_API          8
  63. #define MEMP_NUM_TCPIP_MSG_INPKT        8
  64. #define MEMP_NUM_NETDB                  1
  65. #define MEMP_NUM_LOCALHOSTLIST          1
  66. #define PBUF_POOL_SIZE                  16

  67. /*
  68.    ---------------------------------
  69.    ---------- ARP options ----------
  70.    ---------------------------------
  71. #define LWIP_ETHERNET      managed by RTE
  72. */
  73. #define LWIP_ARP                        1
  74. #define ARP_TABLE_SIZE                  10
  75. #define ETHARP_SUPPORT_VLAN             0
  76. #define ETH_PAD_SIZE                    2
  77. #define ETHARP_SUPPORT_STATIC_ENTRIES   0

  78. /*
  79.    --------------------------------
  80.    ---------- IP options ----------
  81.    --------------------------------
  82. #define LWIP_IPV4          managed by RTE
  83. */
  84. #define IP_FORWARD                      0
  85. #define IP_REASSEMBLY                   1
  86. #define IP_FRAG                         1
  87. #define IP_OPTIONS_ALLOWED              1
  88. #define IP_REASS_MAX_PBUFS              10
  89. #define IP_DEFAULT_TTL                  128
  90. #define IP_SOF_BROADCAST                1
  91. #define IP_SOF_BROADCAST_RECV           1

  92. /*
  93.    ----------------------------------
  94.    ---------- ICMP options ----------
  95.    ----------------------------------
  96. */
  97. #define LWIP_ICMP                       1

  98. /*
  99.    ---------------------------------
  100.    ---------- RAW options ----------
  101.    ---------------------------------
  102. */
  103. #define LWIP_RAW                        1

  104. /*
  105.    ----------------------------------
  106.    ---------- DHCP options ----------
  107.    ----------------------------------
  108. */
  109. #define LWIP_DHCP                       1
  110. #define LWIP_DHCP_CHECK_LINK_UP         0
  111. #define LWIP_DHCP_BOOTP_FILE            0
  112. #define LWIP_DHCP_GET_NTP_SRV           0
  113. #define LWIP_DHCP_MAX_NTP_SERVERS       1

  114. /*
  115.    ------------------------------------
  116.    ---------- AUTOIP options ----------
  117.    ------------------------------------
  118. */
  119. #define LWIP_AUTOIP                     0
  120. #define LWIP_DHCP_AUTOIP_COOP           0
  121. #define LWIP_DHCP_AUTOIP_COOP_TRIES     9

  122. /*
  123.    ----------------------------------
  124.    ---------- IGMP options ----------
  125.    ----------------------------------
  126. */
  127. #define LWIP_IGMP                       0

  128. /*
  129.    ----------------------------------
  130.    ---------- DNS options -----------
  131.    ----------------------------------
  132. */
  133. #define LWIP_DNS                        0
  134. #define DNS_TABLE_SIZE                  4
  135. #define DNS_MAX_NAME_LENGTH             256

  136. /*
  137.    ---------------------------------
  138.    ---------- UDP options ----------
  139.    ---------------------------------
  140. */
  141. #define LWIP_UDP                        1
  142. #define LWIP_UDPLITE                    0

  143. /*
  144.    ---------------------------------
  145.    ---------- TCP options ----------
  146.    ---------------------------------
  147. */
  148. #define LWIP_TCP                        1
  149. #define TCP_QUEUE_OOSEQ                 0
  150. #define LWIP_TCP_SACK_OUT               0
  151. #define LWIP_TCP_MAX_SACK_NUM           4
  152. #define TCP_MSS                         1460
  153. #define TCP_OOSEQ_MAX_BYTES             0
  154. #define TCP_OOSEQ_MAX_PBUFS             0
  155. #define TCP_LISTEN_BACKLOG              1
  156. #define TCP_DEFAULT_LISTEN_BACKLOG      0xff
  157. #define LWIP_EVENT_API                  0
  158. #define LWIP_CALLBACK_API               1
  159. #define LWIP_WND_SCALE                  0
  160. #define TCP_RCV_SCALE                   0
  161. #define LWIP_TCP_PCB_NUM_EXT_ARGS       0
  162. #define LWIP_ALTCP                      0
  163. #define LWIP_ALTCP_TLS                  0

  164. /*
  165.    ----------------------------------
  166.    ---------- Pbuf options ----------
  167.    ----------------------------------
  168. */
  169. #define PBUF_LINK_ENCAPSULATION_HLEN    0

  170. /*
  171.    ------------------------------------------------
  172.    ---------- Network Interfaces options ----------
  173.    ------------------------------------------------
  174. */
  175. #define LWIP_SINGLE_NETIF               0
  176. #define LWIP_NETIF_HOSTNAME             0
  177. #define LWIP_NETIF_API                  0
  178. #define LWIP_NETIF_STATUS_CALLBACK      1
  179. #define LWIP_NETIF_EXT_STATUS_CALLBACK  0
  180. #define LWIP_NETIF_LINK_CALLBACK        1
  181. #define LWIP_NETIF_REMOVE_CALLBACK      0
  182. #define LWIP_NETIF_HWADDRHINT           1

  183. /*
  184.    ------------------------------------
  185.    ---------- LOOPIF options ----------
  186.    ------------------------------------
  187. */
  188. #define LWIP_HAVE_LOOPIF                0
  189. #define LWIP_LOOPIF_MULTICAST           0
  190. #define LWIP_NETIF_LOOPBACK             0
  191. #define LWIP_LOOPBACK_MAX_PBUFS         0

  192. /*
  193.    ------------------------------------
  194.    ---------- Thread options ----------
  195.    ------------------------------------
  196. */
  197. #define TCPIP_THREAD_NAME               "tcpip_thread"
  198. #define TCPIP_THREAD_STACKSIZE          0
  199. #define TCPIP_THREAD_PRIO               1
  200. #define TCPIP_MBOX_SIZE                 0
  201. #define SLIPIF_THREAD_NAME              "slipif_loop"
  202. #define SLIPIF_THREAD_STACKSIZE         0
  203. #define SLIPIF_THREAD_PRIO              1
  204. #define DEFAULT_THREAD_NAME             "lwIP"
  205. #define DEFAULT_THREAD_STACKSIZE        0
  206. #define DEFAULT_THREAD_PRIO             1
  207. #define DEFAULT_RAW_RECVMBOX_SIZE       0
  208. #define DEFAULT_UDP_RECVMBOX_SIZE       0
  209. #define DEFAULT_TCP_RECVMBOX_SIZE       0
  210. #define DEFAULT_ACCEPTMBOX_SIZE         0

  211. /*
  212.    ----------------------------------------------
  213.    ---------- Sequential layer options ----------
  214.    ----------------------------------------------
  215. */
  216. #define LWIP_NETCONN                    0
  217. #define LWIP_TCPIP_TIMEOUT              1
  218. #define LWIP_NETCONN_SEM_PER_THREAD     0
  219. #define LWIP_NETCONN_FULLDUPLEX         0

  220. /*
  221.    ------------------------------------
  222.    ---------- Socket options ----------
  223.    ------------------------------------
  224. */
  225. #define LWIP_SOCKET                     0
  226. #define LWIP_COMPAT_SOCKETS             1
  227. #define LWIP_POSIX_SOCKETS_IO_NAMES     1
  228. #define LWIP_TCP_KEEPALIVE              1
  229. #define LWIP_SO_SNDTIMEO                0
  230. #define LWIP_SO_RCVTIMEO                0
  231. #define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
  232. #define LWIP_SO_RCVBUF                  0
  233. #define LWIP_SO_LINGER                  0
  234. #define SO_REUSE                        0
  235. #define SO_REUSE_RXTOALL                0
  236. #define LWIP_SOCKET_SELECT              1
  237. #define LWIP_SOCKET_POLL                1

  238. /*
  239.    ----------------------------------------
  240.    ---------- Statistics options ----------
  241.    ----------------------------------------
  242. */
  243. #define LWIP_STATS                      0

  244. /*
  245.    ---------------------------------------
  246.    ---------- IPv6 options ---------------
  247.    ---------------------------------------
  248. #define LWIP_IPV6           managed by RTE
  249. */
  250. #define LWIP_IPV6_FORWARD               0
  251. #define LWIP_IPV6_FRAG                  1
  252. #define LWIP_IPV6_REASS                 1
  253. #define LWIP_IPV6_AUTOCONFIG            1
  254. #define LWIP_ICMP6                      1
  255. #define LWIP_IPV6_MLD                   0
  256. #define MEMP_NUM_MLD6_GROUP             4
  257. #define LWIP_ND6_NUM_NEIGHBORS          10
  258. #define LWIP_ND6_NUM_DESTINATIONS       10
  259. #define LWIP_ND6_NUM_PREFIXES           5
  260. #define LWIP_ND6_NUM_ROUTERS            3
  261. #define LWIP_ND6_ALLOW_RA_UPDATES       1
  262. #define LWIP_ND6_TCP_REACHABILITY_HINTS 1
  263. #define LWIP_IPV6_DHCP6                 0
  264. #define LWIP_IPV6_DHCP6_STATEFUL        0
  265. #define LWIP_IPV6_DHCP6_STATELESS       1
  266. #define LWIP_DHCP6_GET_NTP_SRV          0
  267. #define LWIP_DHCP6_MAX_NTP_SERVERS      1

  268. #endif /* LWIP_LWIPOPTS_H */
复制代码


回复

使用道具 举报

612

主题

3064

回帖

4920

积分

至尊会员

积分
4920
发表于 2019-12-5 15:59:51 | 显示全部楼层
同步的历程大概什么时候可以发布哇 ??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
 楼主| 发表于 2019-12-6 09:27:43 | 显示全部楼层
hpdell 发表于 2019-12-5 15:59
同步的历程大概什么时候可以发布哇 ??

今天我就研究下。
回复

使用道具 举报

612

主题

3064

回帖

4920

积分

至尊会员

积分
4920
发表于 2019-12-6 14:27:49 | 显示全部楼层
eric2013 发表于 2019-12-6 09:27
今天我就研究下。

大神辛苦了,期待期待啊,
回复

使用道具 举报

612

主题

3064

回帖

4920

积分

至尊会员

积分
4920
发表于 2019-12-6 14:28:34 | 显示全部楼层
eric2013 发表于 2019-12-6 09:27
今天我就研究下。

貌似 keil 配置的外设比 iar 多很多啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
 楼主| 发表于 2019-12-7 10:22:16 | 显示全部楼层
hpdell 发表于 2019-12-6 14:28
貌似 keil 配置的外设比 iar 多很多啊

对,有个RTE开发环境,非常方便
回复

使用道具 举报

3

主题

1237

回帖

1246

积分

至尊会员

积分
1246
发表于 2019-12-7 12:15:19 | 显示全部楼层
硬汉大哥,新发布的Lwip2.1.2 + RTX5,   Lwip栈自己定义的mem,是用静态数组的形式定义的,
#ifndef LWIP_RAM_HEAP_POINTER
/** the heap. we need one struct mem at the end and some room for alignment */
LWIP_DECLARE_MEMORY_ALIGNED(ram_heap, MEM_SIZE_ALIGNED + (2U * SIZEOF_STRUCT_MEM));
#define LWIP_RAM_HEAP_POINTER ram_heap
#endif /* LWIP_RAM_HEAP_POINTER */

=================================
如果在一个综合性的工程里面,芯片系统内部的RAM应该是紧俏资源。通常这样的板子我们都有
外扩SRAM或者SDRAM来缓解大量内存需求的场景。或者需要灵活调整不同软件组件各自RAM的
存放位置。
那么新版本里面Lwip组件自用的ram,我们该如何方便的指定到我们想要的区域内呢?

=============
谢谢硬汉大哥!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
 楼主| 发表于 2019-12-8 12:41:27 | 显示全部楼层
morning_enr6U 发表于 2019-12-7 12:15
硬汉大哥,新发布的Lwip2.1.2 + RTX5,   Lwip栈自己定义的mem,是用静态数组的形式定义的,
#ifndef LWIP ...

这个不建议用外部资源,性能不行
回复

使用道具 举报

36

主题

1446

回帖

1554

积分

至尊会员

积分
1554
发表于 2019-12-8 14:37:05 | 显示全部楼层
eric2013 发表于 2019-12-8 12:41
这个不建议用外部资源,性能不行

这个lwip软件包最新的是V2.1.2吗?我看标题是V2.1.2的,怎么软件包文件名是V2.1.0的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107338
QQ
 楼主| 发表于 2019-12-8 17:13:58 | 显示全部楼层
sanit 发表于 2019-12-8 14:37
这个lwip软件包最新的是V2.1.2吗?我看标题是V2.1.2的,怎么软件包文件名是V2.1.0的?

mdk给的软件包版本是2.10,里面的lwip源码是2.12
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-27 05:02 , Processed in 0.187401 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表