嵌入式网络神器 NetX Duo:让你的物联网项目秒变高速、稳如老狗!

 


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. 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

     

    发表评论