4. Simplicity Studio开发环境搭建

Thread边界路由(Border Router)是Thread网络与外部IP网络之间的桥梁,它同时承担Thread Leader/路由器角色和IPv6边界转发职责。Silicon Labs为Thread边界路由提供了两种典型实现路径:基于Linux主机的otbr-agent方案(RCP模式,主机运行OpenThread Border Router,EFR32作为RCP协处理器),以及基于EFR32MG系列SoC的SoC边界路由方案。本节以Simplicity Studio 5(SSv5)为工具,完整走通从环境安装到固件烧录的全过程,并以EFR32MG24 + otbr-agent(RCP)这一主流工程形态作为示例对象。

一、安装Simplicity Studio 5

Simplicity Studio 5基于Eclipse构建,安装包约1.5 GB,安装后连同SDK与工具链通常占用15~30 GB磁盘空间。建议在Windows 10/11 64位、macOS 11+或Ubuntu 20.04/22.04 LTS上安装,内存不低于8 GB(推荐16 GB),并预留至少40 GB可用空间。

安装流程如下:

  1. 访问Silicon Labs官网下载页面,获取对应平台的Simplicity Studio 5安装包(Windows为.exe,Linux为.tar.gz)。
  2. 运行安装程序,选择安装目录(路径中避免中文与空格,例如C:\SiliconLabs\SimplicityStudio)。
  3. 安装向导会询问是否安装J-Link驱动与Simplicity Commander,两者都建议勾选——J-Link用于调试与烧录,Commander用于命令行烧录与量产。
  4. 首次启动时使用Silicon Labs账号登录(无账号可现场注册),登录后SSv5才能拉取SDK与更新包。
若企业网络限制外网访问,可提前下载离线SDK包(如gecko-sdk-4.x.x.zip),在SSv5的 Preferences → Simplicity Studio → SDKs 中通过“Add SDK”指向本地压缩包,避免在线拉取失败。

二、配置Gecko SDK与Thread组件

SSv5的SDK管理采用“SDK + 工具链”分离模式。进入 Preferences → Simplicity Studio → SDKs,确认已安装Gecko SDK (GSDK),版本建议4.3.0及以上(对应OpenThread 1.3/1.4)。GSDK中与Thread相关的关键组件包括:

  • OpenThread:Thread协议栈核心,含MLE、CoAP、MeshCoP、SRP等模块。
  • ot-br-posix:Linux侧边界路由守护进程源码,用于构建otbr-agent。
  • RAIL / 802.15.4:EFR32无线驱动与MAC层。
  • Bootloader:Gecko Bootloader,用于OTA与固件升级。

在 Preferences → Simplicity Studio → Toolchains 中确认已安装GNU ARM Embedded工具链(如10.3-2021.10)。若使用Linux主机运行otbr-agent,还需在主机上安装依赖:

sudo apt update
sudo apt install -y git cmake ninja-build \
  libssl-dev libdbus-1-dev libglib2.0-dev \
  libavahi-client-dev libreadline-dev

三、创建Thread边界路由工程

在SSv5主界面点击 File → New → Silicon Labs Project Wizard,按以下路径选择:

  1. Target:选择目标芯片,例如EFR32MG24B220F1536IM48(或实际使用的开发板,如BRD4186C)。
  2. SDK:选择已安装的GSDK版本。
  3. Example Project:在搜索框输入“OpenThread”,选择OpenThread – RCP(用于otbr-agent方案)或OpenThread – Border Router(SoC方案)。
  4. 命名工程(如ot-rcp-mg24),点击Finish,SSv5会自动生成工程并打开.slcp配置文件。

工程生成后,在SOFTWARE COMPONENTS视图中可看到默认已启用的组件。对于RCP工程,关键配置项包括:

  • OpenThread Core → Device Type:设为RCP。
  • OpenThread → Radio:选择EFR32 802.15.4,并确认频段为2.4 GHz、信道与目标网络一致。
  • Platform → Board:与实际开发板匹配,确保LED、按键、UART引脚定义正确。
  • UART:RCP与主机通过UART或SPI通信,默认使用USART0,波特率460800(也可用115200,需与otbr-agent启动参数一致)。
RCP工程必须启用Spinel协议接口,且UART流控(RTS/CTS)建议开启,否则在高吞吐场景下会出现丢帧。若使用SPI接口,需在otbr-agent启动时通过--spinel-path指定设备节点。

四、编译与烧录流程

工程配置完成后,点击工具栏的Build按钮(锤子图标)进行编译。SSv5会调用GNU ARM工具链,输出.hex、.bin与.out文件,路径通常为GNU ARM v10.3.1 - Default/ot-rcp-mg24.s37。编译成功的标志是Console窗口出现Build Finished. 0 errors, 0 warnings。

烧录前需确认开发板已通过USB连接,并在Debug Adapters视图中识别到J-Link。烧录方式有两种:

  • SSv5图形化烧录:右键工程 → Debug As → Silicon Labs ARM Program,或使用工具栏的Flash按钮。首次烧录会同时写入Gecko Bootloader与应用程序。
  • Simplicity Commander命令行烧录:适合批量与自动化场景。
# 查看已连接适配器
commander adapter list

# 烧录应用固件(含Bootloader)
commander flash ot-rcp-mg24.s37 --serialno 440123456

# 仅烧录应用区(保留已有Bootloader)
commander flash ot-rcp-mg24.bin --address 0x00000000

烧录完成后,复位开发板。若为RCP工程,EFR32本身不会启动Thread网络,它只作为协处理器等待主机otbr-agent通过Spinel下发指令。此时可在Linux主机上启动otbr-agent进行验证:

sudo otbr-agent -I wpan0 -B eth0 \
  spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800

若启动成功,执行sudo ot-ctl state应返回leader或router,sudo ot-ctl ipaddr可看到分配的Mesh-Local与全局IPv6地址。至此,Simplicity Studio侧的开发环境搭建与固件烧录闭环完成,后续即可进入Thread网络参数配置与边界路由功能验证阶段。

Simplicity Studio 5 环境搭建与 Thread 边界路由工程链路 EFR32MG24 RCP + Linux otbr-agent 方案 ① 安装 SSv5 • 下载安装包(Win/Linux) • 勾选 J-Link + Commander • 登录 Silicon Labs 账号 ② 配置 GSDK • Gecko SDK ≥ 4.3.0 • OpenThread / ot-br-posix • GNU ARM 工具链 ③ 创建工程 • Project Wizard • OpenThread – RCP • 配置 Spinel / UART ④ 编译烧录 • Build → .s37 • J-Link / Commander • 复位运行 硬件连接与运行拓扑 Linux 主机 otbr-agent + ot-ctl wpan0 / eth0 Spinel / UART 460800 bps EFR32MG24 (RCP) 802.15.4 Radio /dev/ttyACM0 Thread 2.4 GHz Thread 网络 Leader / Router Mesh-Local IPv6 关键验证命令与预期结果 $ sudo ot-ctl state leader $ sudo ot-ctl ipaddr fd00:0:0:0:0:0:0:1 判断依据: • state = leader / router → RCP 通信正常 • ipaddr 返回 Mesh-Local 地址 → 网络已建立 • 无响应 → 检查 UART 波特率与流控