NetX Duo 是什么?
NetX Duo(全称 Eclipse ThreadX NetX Duo)是微软/微软开源社区推出的工业级 TCP/IP 网络协议栈,专为深度嵌入式实时系统和 IoT 设备设计。它同时支持 IPv4 与 IPv6,并且把 ThreadX 实时内核与 NetX Duo 网络栈紧密集成,形成“一体化”开发体验。换句话说,想在 MCU 上跑网络、跑安全、跑云端协议,只要把 NetX Duo 拉进项目,基本上所有底层细节都不需要再自己去实现了。
它解决了哪些痛点?
|
传统做法的痛点 |
NetX Duo 的解决方案 |
|
手写 TCP/IP 协议栈,代码量巨、调试难 |
已经实现并经过工业级验证的完整协议栈,直接调用 API |
|
IPv6 支持薄弱,兼容性差 |
双栈设计,IPv4/IPv6 同时可用,切换自如 |
|
安全层(TLS/DTLS)要自行移植 OpenSSL,体积大 |
内置 NetX Secure,轻量级 TLS/DTLS,适配 MCU 资源限制 |
|
各种云协议(MQTT、Azure IoT、HTTP)需要额外库 |
addons
目录提供 MQTT、HTTP、FTP、DHCP、DNS 等常用协议插件 |
|
多平台移植成本高,编译链不统一 |
基于 CMake + Ninja,支持 Arm GNU、IAR、Keil 等主流工具链 |
|
文档碎片化,学习曲线陡峭 |
官方提供 Getting Started、样例代码、hero 开发板指南,一站式上手 |
一句话概括:“不想再为网络底层抓狂,就用 NetX Duo!”
安装 & 使用指南
⚡ 小技巧:如果你已经在使用 ST、NXP、Renesas、Microchip 的 SDK,只要把 NetX Duo 当成子模块拉进来,几乎不需要改动原有工程。
-
1. 克隆仓库(带子模块)
git clone --recursive https://github.com/eclipse-threadx/netxduo.git
cd netxduo
2. 准备编译工具(任选其一)
-
• CMake ≥ 3.0
-
• Arm GNU Toolchain(
arm-none-eabi) -
• Ninja(可选加速)
3. 配置要用的功能
-
• 复制
nx_user_sample.h为nx_user.h,在里面打开/关闭需要的 addons(如#define NX_ENABLE_HTTP)。
4. 生成构建文件(以 Cortex‑M4 为例)
cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake .
cmake --build ./build
5. 把生成的库链接进自己的项目
-
• 如果你使用 Keil/ IAR,只要把
netxduo目录加入 IDE 的 Include Paths 与 Library,然后在链接阶段加上libnetxduo.a即可。
6. 跑个官方示例
-
• 在
samples里挑一个合适的例子(比如http_server),把它拷贝到你的工程里,编译烧录,打开串口,你会看到类似 “HTTP Server listening on 0.0.0.0:80” 的日志。
温馨提示:首次编译可能会因为 MCU 头文件路径不匹配报错,检查一下
cmake脚本里的 MCU‑specific 变量即可。
优缺点一览
|
优点 |
缺点 |
| 工业级可靠性
:经过多家芯片厂商验证,适配 STM、NXP、Renesas 等主流 MCU。 |
学习成本
:虽然文档齐全,但第一次接触 CMake/Addon 机制仍需花点时间。 |
| 轻量级
:核心库只有几百 KB,适配资源受限的 MCU。 |
功能裁剪
:如果需要非常规协议(比如自定义的 P2P),仍需自行实现。 |
| 双栈 + 安全
:IPv4/IPv6 同时支持,内置 TLS/DTLS。 |
社区规模
:相对 lwIP、FreeRTOS‑Plus‑TCP,社区用户少,第三方案例有限。 |
| 插件化
:addons 目录提供常用云协议、文件传输等。 |
IDE 集成
:部分老旧 IDE(如 IAR 7.x)需要手动配置 CMake,稍显繁琐。 |
| 跨平台
:CMake + Ninja 支持多种编译器和操作系统。 |
更新频率
:master 分支是开发版,正式 GA 版需要关注 Tag。 |
小结
NetX Duo 并不是“一键解决所有网络难题”的魔法棒,但它把 网络协议栈、安全层、云协议插件 这三大块硬核功能打包成一个 可裁剪、可移植、工业级 的库,让嵌入式开发者可以把精力更多花在业务逻辑和产品创新上,而不是底层协议的搬砖。
如果你正准备做 IoT 网关、实时传感节点、车载通信 或者 工业控制,而且手头的 MCU 资源紧张、对实时性要求高,NetX Duo 完全值得一试。把它拉进项目后,你会发现网络代码从 “几百行手写” 变成 “几行 API 调用”,调试时间从 “数天” 缩短到 “数小时”。
项目地址: https://github.com/eclipse-threadx/netxduo