MCUmgr

概述

管理子系统允许对支持 Zephyr 的设备进行远程管理。可用的管理操作如下:

管理子系统基于 MCUmgr 提供的简单管理协议(SMP),该项目是一个开源项目,提供可移植到多个实时操作系统的管理子系统。

管理子系统位于 Zephyr 树内的 subsys/mgmt/ 中。

此外,还有一个 示例 服务器,可通过 Bluetooth LE 和串行接口提供管理功能。

支持的传输

MCUmgr 支持 Zephyr 树内多种传输方式,其他传输方式可以添加并提交到上游,或者在下游项目中以树外方式使用,而不需要 fork Zephyr 仓库。

Zephyr 支持以下传输方式:

名称

Kconfig 选项

额外详细信息

模式支持

传输组管理支持

服务器

客户端

传入

传出

UART

CONFIG_MCUMGR_TRANSPORT_UART

基于控制台的 UART SMP 编码

✓

✓

✓

Raw UART

CONFIG_MCUMGR_TRANSPORT_RAW_UART

✓

✓

✓

Shell

CONFIG_MCUMGR_TRANSPORT_SHELL

基于控制台的 UART SMP 编码

✓

✓

✕

蓝牙

CONFIG_MCUMGR_TRANSPORT_BT

Bluetooth Low Energy

✓

✓

✓

UDP (IPv4)

CONFIG_MCUMGR_TRANSPORT_UDP 和
CONFIG_MCUMGR_TRANSPORT_UDP_IPV4

可选的 DTLS 支持

✓

✕

✕

UDP (IPv6)

CONFIG_MCUMGR_TRANSPORT_UDP 和
CONFIG_MCUMGR_TRANSPORT_UDP_IPV6

可选的 DTLS 支持

✓

✕

✕

LoRaWAN

CONFIG_MCUMGR_TRANSPORT_LORAWAN

✓

✕

✕

SPI

CONFIG_MCUMGR_TRANSPORT_SPI

✓

✕

✕

以下内容专为测试用途设计:

Dummy

CONFIG_MCUMGR_TRANSPORT_DUMMY

虚拟

✓

✓

✓

Raw Dummy

CONFIG_MCUMGR_TRANSPORT_RAW_DUMMY

基于控制台的 UART SMP 编码, 虚拟

✓

✓

✓

工具/库

有多种工具和库可用于在设备上使用 MCUmgr 功能,下面列出了这些工具和库。请注意,这些工具并非 Zephyr 项目的一部分,也与 Zephyr 项目无关。

用于 MCUmgr 的工具和库

名称

操作系统支持

传输

组

类型

语言

许可证

Windows

Linux

mac

移动

嵌入式

串行接口

Serial (raw)

蓝牙

UDP

LoRaWAN

SPI

OS

IMG

Stat

Settings

FS

Shell

Enum

Transport

Zephyr

AuTerm

✓

✓

✓

✕

✕

✓

✓

✓

✓

✓

✕

✓

✓

✓

✓

✓

✓

✓

✕

✓

应用程序

C++ (Qt)

GPL-3.0

mcumgr-client

✓

✓

✓

✕

✕

✓

✕

✕

✓

✕

✕

✓

✓

✓

✓

✓

✓

✕

✕

✕

应用程序

Rust

Apache-2.0

mcumgr-web

✓

✓

✓

✕

✕

✕

✕

✓

✕

✕

✕

✕

✓

✕

✕

✕

✕

✕

✕

✕

网页(仅 Chrome)

Javascript

MIT

mcumgr-mac

✕

✕

✓

✕

✕

✕

✕

✓

✕

✕

✕

✓

✓

✕

✕

✕

✕

✕

✕

✕

应用程序

Rust

MIT

nRF Connect Device Manager:
Android and iOS

✕

✕

✕

✓

✕

✕

✕

✓

✕

✕

✕

✓

✓

✓

✓

✓

✓

✕

✕

✓

库和应用程序

Java、Kotlin、Swift

Apache-2.0

smp

✓

✓

✓

✓

✕

不适用

不适用

不适用

不适用

不适用

不适用

✓

✓

✓

✓

✓

✓

✓

✕

✓

库

Python

Apache-2.0

smpclient

✓

✓

✓

✕

✕

✓

✕

✓

✓

✕

✕

✓

✓

✓

✓

✓

✓

✓

✕

✓

库

Python

Apache-2.0

smpmgr

✓

✓

✓

✕

✕

✓

✕

✓

✓

✕

✕

✓

✓

✓

✕

✓

✓

✓

✕

✕

应用程序

Python

Apache-2.0

mcumgr-toolkit
(CLI: mcumgrctl)

✓

✓

✓

✕

✕

✓

✕

✓

✓

✕

✕

✓

✓

✓

✓

✓

✓

✓

✕

✓

库和应用程序

Rust、Python

Apache-2.0

Zephyr MCUmgr 客户端(树内)

✕

✓

✕

✕

✓

✓

✓

✕

✕

✕

✕

✓

✓

✕

✕

✕

✕

✕

✕

✕

库

C

Apache-2.0

请注意,某个组旁的勾号表示代码中对组提供基本支持,实现可能并不支持组的所有命令/功能。

引导加载程序集成

设备固件升级 子系统将管理子系统与引导加载程序集成,提供向设备发送并升级 Zephyr 映像的能力。

目前仅支持 MCUboot 引导加载程序。有关更多信息,请参阅 MCUboot。

Discord 频道

欢迎开发者!

API 参考

Management