SILICON LABS EmberZNet SDK Gecko 软件开发套件
![]()
产品信息
规格
- Zigbee EmberZNet SDK 版本: 7.4.2.0
- Gecko SDK 套件版本: 4.4
- 发布日期: 10 年 2024 月 XNUMX 日
- 小贩: 关于 Silicon Labs
- 平台: Silicon Labs Zigbee
- 主要特点:SoC 上的多协议 (CMP) Zigbee 和 OpenThread 支持
- 兼容的编译器: GCC(GNU 编译器集合)版本 12.2.1
- EZSP协议版本: 0x0D
产品使用说明
兼容性和使用声明
有关安全更新和通知,请参阅 Gecko 平台发行说明的安全章节或访问 Silicon Labs web地点。订阅安全公告以获取最新信息。
使用此版本
如果您是 Zigbee EmberZNet SDK 的新手,请按照提供的说明进行操作以确保正确使用。
主要功能利用
采取提前tagSoC 平台上对 Zigbee 和 OpenThread 的多协议支持可增强连接性。
Silicon Labs 是 OEM 厂商在其产品中开发 Zigbee 网络的首选供应商。 Silicon Labs Zigbee 平台是目前集成度最高、最完整且功能最丰富的 Zigbee 解决方案。 Silicon Labs EmberZNet SDK 包含 Silicon Labs 对 Zigbee 堆栈规范的实现。
这些发行说明涵盖了 SDK 版本:
- 7.4.2.0 于 10 年 2024 月 XNUMX 日发布
- 7.4.1.0 于 14 年 2024 月 XNUMX 日发布
- 7.4.0.0 于 13 年 2023 月 XNUMX 日发布
主要特色
Zigbee
- Zigbee R23 合规性
- Zigbee 智能能源 1.4a 合规性 – 生产
- Zigbee GP 1.1.2 合规性 – Alpha
- MG27 支持 – 生产
- 改进了对 Secure Vault 部件的支持
- NCP SPI(非 CPC)应用程序的 Sleepy 支持 – Alpha
多协议
- 并发聆听支持 (RCP) – MG21 和 MG24
- 并发多协议 (CMP) Zigbee NCP + OpenThread RCP – 生产
- SoC 上的动态多协议蓝牙 + 并发多协议 (CMP) Zigbee 和 OpenThread 支持
兼容性和使用声明
有关安全更新和通知的信息,请参阅与此 SDK 一起安装的 Gecko 平台发行说明的安全章节或位于以下位置的技术文档选项卡: https://www.silabs.com/developers/zigbee-emberznet。 Silicon Labs 还强烈建议您订阅安全公告以获取最新信息。有关说明,或者如果您是 Zigbee EmberZNet SDK 的新手,请参阅使用此版本。
兼容的编译器:
IAR Embedded Workbench for ARM (IAR-EWARM) 版本 9.40.1。
- 在 macOS 或 Linux 上使用 wine 通过 IarBuild.exe 命令行实用程序或 IAR Embedded Workbench GUI 构建可能会导致错误 file由于 wine 生成 short 的散列算法中的冲突,s 被使用 file 名字。
- 建议使用 macOS 或 Linux 的客户不要在 Simplicity Studio 之外使用 IAR 进行构建。 这样做的客户应该仔细核实正确的 file正在使用。
GCC(GNU 编译器集合)版本 12.2.1,随 Simplicity Studio 提供。此版本的 EZSP 协议版本是 0x0D。
新品
此版本的 Gecko SDK (GSDK) 将是最后一个版本,综合支持所有 EFM 和 EFR 设备(根据需要对此版本进行补丁除外)。从 2024 年中期开始,我们将引入单独的 SDK:
- 现有的 Gecko SDK 将继续支持系列 0 和 1 设备。
- 新的 SDK 将专门针对系列 2 和系列 3 设备。
Gecko SDK 将继续支持所有系列 0 和 1 设备,并且我们的软件政策下提供的长期支持、维护、质量和响应能力不会发生变化。
新的 SDK 将从 Gecko SDK 分支出来,并开始提供新功能,帮助开发者获得优势tag我们的 2 和 3 系列产品的先进功能。
这一决定与客户反馈一致,反映了我们致力于提高质量、确保稳定性和增强性能,以在我们的软件 SDK 中提供卓越的用户体验。
新组件
7.4.0.0 版中的新功能
- 添加了“zigbee_direct_security_p256”和“zigbee_direct_security_curve25519”组件,以便用户可以配置特定的 Zigbee Direct 安全选项。
- 用户可以在 Zigbee 直接设备 (ZDD) 应用程序上启用多个“zigbee_direct_security”组件。在这种情况下,实际的安全选项取决于 Zigbee 虚拟设备 (ZVD) 配置。
新 API
7.4.2.0 版中的新功能
- 扩展 SPI NCP 在某些 Host-NCP 用例中用作休眠。在此用例中,SPI NCP 可配置为休眠终端设备。主机Z3Gatewayamp该应用程序使用额外的自定义 CLI 代码进行扩展,负责通过自定义 CLI 命令睡眠模式命令 NCP 进入其中一种睡眠模式,并且必须在进一步 EZSP 通信之前使用自定义 CLI 命令唤醒进行唤醒。
- 引入了新的 API sl_zigbee_af_isr_event_init 来初始化要在中断服务例程 (ISR) 内激活的应用程序框架事件。这些事件由 ISR 安排,延迟参数必须为 0 毫秒。换句话说,来自 ISR 的事件必须作为即时事件激活。 ISR 内部不允许事件停用。其理由如下。事件系统在调度(以非零延迟激活或停用)事件期间使用事件队列操作。为了最大限度地减少延迟,ISR 应激活一个延迟为 0 的事件,该事件将被安排为下一个事件队列处理中的下一个事件。这允许在 ISR 退出后执行进一步的延迟或停用。为了区分要在 ISR 内部使用的事件,事件结构在初始化期间用 sli_zigbee_isr_event_marker 进行标记。参考zigbee_app_framework_event.h源码 file 有关此新功能的详细信息。
- 澄清了新函数 emberUpdateMultiMacRejoinChannelMaskForSelectionOrJoiningDevice 的使用,该函数在堆栈 API emberFindAndRejoinNetworkWithReason 内调用,以获取用于重新加入的通道掩码。 SE1.4a 规范限制 Multi-Mac 加入终端设备类型设备重新加入期间接口的更改(从 2.4GHz 到 sub-GHz 或反之亦然)。由于设备类型是应用程序框架配置(即,加入终端设备类型在配置时将是 sub-GHz 设备或 2.4 GHz 设备,而不是两者),因此此调用提供基于该配置的通道掩码,以便重新加入掩码始终与加入接口掩码相同。
7.4.0.0 版中的新功能
- 添加了新的 API sl_zigbee_token_factory_reset 以将 Zigbee NVM3 令牌重置为其默认值。
- 添加了 API bool sl_zigbee_sec_man_link_key_slot_available(EmberEUI64 eui),如果链接密钥表可以使用该地址添加或更新条目(表未满),则返回 true。
添加了新的 API bool sl_zb_sec_man_compare_key_to_value (sl_zb_sec_man_context_t* context, sl_zb_sec_man_key_t* key),如果上下文引用的键与参数中提供的键具有相同的值,则返回 true。
新平台支持
7.4.0.0 版中的新功能
此版本中添加了对以下新部件的 Zigbee 堆栈支持:EFR32MG24A010F768IM40 和 EFR32MG24A020F768IM40。
新文档
7.4.0.0 版中的新功能
更新了 Zigbee 安全密钥存储组件的描述,以反映添加了 Zigbee 安全密钥存储升级(增加了与现有项目的向后兼容性)。
添加了与 Zigbee 安全管理器组件组交互的新应用说明(AN1412:Zigbee 安全管理器)。
预期行为
请注意,Zigbee 不同步 CSL 传输会受到无线电调度器协议抢占的影响。在 SleepyToSleepy 应用中,BLE 可以并且将会抢占 Zigbee CSL 传输,这将终止传输。考虑到可能使用可能很长的唤醒帧序列,调度程序抢占对于不同步的 CSL 来说更为常见。希望调整传输优先级的用户可以使用 DMP 调整和测试组件来执行此操作。用户还可以查阅UG305:动态多协议用户指南以获取更多信息。
改进
在版本 7.4.0.0 中更改
emberCounterHandler API 文档更改
在以前的版本中,有关数据包 RX 和 TX 的 MAC 和 APS 层 EmberCounterTypes 的计数器处理程序回调未传递正确的目标节点 ID 或数据参数,并且有关使用这些参数的某些计数器的行为的 API 文档不清楚或具有误导性。虽然 emberCounterHandler() 的签名没有改变,但其参数的填充方式略有改变。
- 为了清楚起见,已扩展了 ember-types.h 中有关 EmberCounterType 枚举的注释。
- TX 相关计数器的计数器处理程序的节点 ID 参数现在会在使用之前检查目标地址模式是否指示有效的短 ID。 (如果不是,则不填充目标地址,并且占位符值为
而是使用 EMBER_UNKNOWN_NODE_ID。) - RX 相关计数器的计数器处理程序的节点 ID 参数现在反映源节点 ID,而不是目标节点 ID。
- 重试计数*不*作为 EMBER_COUNTER_MAC_TX_UNICAST_ SUCCESS/FAILED 计数器的数据参数传递,如以前版本中的 ember-types.h 中所述,但在以前发布的版本中从未正确填充,因此以前版本中的值始终为 0这些 EmberCounterType 的描述已阐明了此行为。但是,APS 层重试的重试计数继续填充在数据参数中
EMBER_COUNTER_APS_TX_UNICAST_SUCCESS/FAILED 计数器类型,与之前的版本保持一致。 - 填充回调的节点 ID 或数据参数的所有计数器都经过审核,以确保它们传递预期的数据、地址或 EMBER_UNKNOWN_NODE_ID(如果需要节点 ID 但无法从数据包中获取),如修订版 ember- 中所述types.h 文档。
- EMBER_COUNTER_MAC_TX_UNICAST_RETRY 的计数器处理程序现在可以正确反映 MAC 层目标节点 ID 以及其目标节点 ID 和数据参数中的重试次数。
- EMBER_COUNTER_PHY_CCA_FAIL_COUNT 的计数器处理程序现在通过节点 ID 参数提供有关传输失败的消息的预期 MAC 层目标的目标节点 ID 信息。
更新的绿色电源规范
Green Power 服务器代码已更新,进行了多项改进,包括:
- 在 GP 服务器上接收时,为具有无效端点的传入命令添加了更多验证代码。
- 添加了代码来处理没有更多空间来构建绿色电源消息的情况。
- 现在,根据规范第 A.3.5.2.4.1 节,在某些情况下,接收器会通过删除配对操作来删除配对配置。
- 现在,当使用扩展操作处理配对配置时,接收器会在删除之前保存条目的现有组列表。
- 当翻译表为空或索引大于表中的条目数时,翻译查询命令将返回“NOT FOUND”作为错误代码。
- 将某些应用程序中的 GP 端点版本从 1 更改为 0。
在 GPDF 发送功能中使用 CSMA 受到限制,因为绿色电源器件是最小能源器件,并且在大多数设计中不使用 CSMA。相反,首选设计是使用相同的能量预算发送多个数据包。
删除了 Green Power Server 插件选项中隐藏端点的使用。请改用应用程序端点之一。
网络密钥更新插件代码改进
将定期网络密钥更新周期改为长达1年。
重构了一些API以避免不必要的密钥导出
进行了更改以支持使用关键上下文而不是纯文本关键数据。
- sl_zigbee_send_security_challenge_request 现在采用 sl_zb_sec_man_context_t 参数代替 EmberKeyData。
- sl_zb_sec_man_衍生_key_type 枚举的值现在是 16 位位掩码,以直接支持组合多个派生类型的某些密钥派生。
修正问题
已在 7.4.2.0 版中修复
| ID # | 描述 |
|
1252268 |
用于在 4900/4901 上打开 IP 端口的 zigbee 主机应用程序选项已弃用。
使用远程连接与主机应用程序交互的另一种方法可能是在大多数受支持的操作系统中使用 socat 实用程序。 (其他参考号:1232361) |
|
1254541 |
引入了新的事件初始化函数 sl_zigbee_af_isr_event_init,以允许初始化要从中断服务例程 (ISR) 激活的应用程序事件。
这些事件只能从延迟 0 毫秒的 ISR 中激活。 这些事件不得以非零延迟进行安排或从 ISR 内停用。
增加了上述功能的应用框架文档。有关上述 API 文档,请参阅本版本的 docs.silabs.com。 (其他参考号:1252940) |
| 1255175 | 修复了导致 APS 验证密钥确认消息处理错误的问题。 (其他参考:1227738) |
|
1260605 |
“net multi-phy-start”CLI 命令的可选 optionsMask 参数被忽略并始终被视为 0。
(其他参考号:1258636) |
| 1262538 | 修复了 GP 服务器不会丢弃 FC 等于存储 FC 的帧的问题。 (其他参考号:1259936) |
| 1263124 | 删除了已弃用的 MAC 命令处理的代码。 (其他参考:1262368) |
| 1266765 | 修复了专业叶堆栈标签的问题。 (其他参考:1259298) |
| 1270706 | 修复了阻止应用程序框架针对成功案例发送 ZCL 默认响应的问题。 |
| 1272181 | 修复了在 Z3Gateway 上启用扩展报告表时导致构建失败的问题。 (其他参考:1188397) |
|
1272280 |
SE1.4a 规范要求多 MAC 加入终端设备在其先前加入的同一接口上重新加入。重新加入期间不允许更改接口(从 2.4GHz 切换到 Sub-GHz 或反之亦然)。重新加入可能是由于父节点丢失或节点电源回收而发起的。在这两种情况下,都会在内部调用堆栈 API emberFindAndRejoinNetworkWithReason 来启动重新加入过程,并且该 API 需要重新加入通道掩码作为参数。该通道掩码由堆栈通过调用函数 emberUpdateMultiMacRejoinChannelMaskForSelectionOrJoiningDevice 获取,该函数作为源代码和应用程序项目的一部分实现。
默认实现可以在 ember-configuration.c 中作为弱函数找到,以便用户可以覆盖。 |
|
1273235 |
当关联响应或重新加入响应仍待传递时,针对休眠终端设备子项触发该子项删除操作可能会导致同一子项的两次擦除。这将使 emberChildCount() 关闭 -1。如果这是表中要删除的最后一个子项,则可能会导致子项计数下溢。这会阻止任何终端设备进一步加入/重新加入尝试,直到执行重置或离开网络,这可能会导致某些版本中的断言失败(引用 child.c)。 |
|
1273585 |
非易失性存储器中绿色电源安全帧计数器的初始化值从 0xFFFFFFFF 设置为 0。
(其他参考号:1269700) |
| 1277012 | 如果子表已满,并且本地设备的现有子表尝试重新加入,则重新加入会被错误地拒绝,从而导致子表项被删除并强制子表再次重新加入以与该父表重新关联。 |
已在 7.4.1.0 版中修复
| ID # | 描述 |
| 1036893 | 修复了导致 OTA 集群组件将旧引导加载程序接口组件安装为依赖项的问题。 |
| 1114905 | Zigbee Direct:改进了离开网络特征的处理。 |
| 1180937 | 修复了将 Zigbee Direct ZDD 连接到第 3 方 ZVD 时 WDT 重置的问题。 |
| 1223904 | 修复了导致终端设备在非常繁忙的环境中无法正常工作的问题。 |
| 1224393 | 更新了绿色电源接收器表请求处理程序代码以更新响应目标地址。 |
| 1228808 | 修复了 gp-types.h 文档中宏定义的显示问题。 |
| 1232297 | 修复了 emberSetOutgoingNwkFrameCounter 和 emberSetOutgoingApsFrameCounter 在 64 位主机应用程序上不起作用的问题(返回 EMBER_BAD_ARGUMENT)。 |
| 1232359 | 修复了 green power 客户端命令处理中的 gppTunnelingDelay 参数计算。 |
|
1240392 |
根据 Zigbee 规范,因访问/权限原因而拒绝的 ZDO 绑定/取消绑定请求应返回 EMBER_ZDP_NOT_AUTHORIZED 状态,而不是 EMBER_ZDP_NOT_PERMITTED 状态。 |
| 1243523 | Zigbee Direct:提高了 BLE 与 ZVD 连接的稳定性。 |
| 1249455 | 修复了导致休眠终端设备在收到确认之前收到广播时进入休眠状态的问题。 |
| 1252295 | 修复组件目录宏 SL_CATALOG_ZIGBEE_OTA_STORAGE_COMMON_PRESENT 中的拼写错误。 |
已在 7.4.0.0 版中修复
| ID # | 描述 |
| 1019348 | 修复了 Zigbee ZCL Cli 组件的依赖关系要求,以便在不需要时可以将其删除。 |
| 1024246 | 更新了 emberHaveLinkKey() 和 sl_zb_sec_man_have_link_key() 的函数描述。 |
| 1036503 | 添加了建议使用 DMP 的 Micrium 内核的说明amp乐应用程序。 |
| 1037661 | 阻止应用程序安装专业堆栈或叶子堆栈的问题已得到修复。 |
| 1078136 | 修复了从中断上下文修改事件时的间歇性崩溃 |
|
1081548 |
请注意,Zigbee 不同步 CSL 传输会受到无线电调度器协议抢占的影响。在 SleepyToSleepy 应用中,BLE 可以并且将会抢占 Zigbee CSL 传输,这将终止传输。考虑到可能使用可能很长的唤醒帧序列,调度程序抢占对于不同步的 CSL 来说更为常见。希望调整传输优先级的用户可以使用 DMP 调整和测试组件来执行此操作。用户还可以查阅UG305:动态多协议用户指南以获取更多信息。
CSL 中修复了一个问题,即在前一个有效负载帧之后立即接收到的新唤醒帧序列将无法正确记录。这将导致丢失有效负载帧。 |
| 1084111 | 作为此版本的一部分,对基于 MG24 的主板的初始休眠 SPI-NCP 支持进行了更新。 |
| 1104056 | 添加了对网络引导的支持,以便在多网络情况下在辅助网络上运行 |
| 1120515 | 修复了使用 mfglib set-channel 命令时通道未更改的问题。 |
| 1141109 | 修复了导致生成 s 的问题ample 应用程序 ncp-uart-gp-multi-rail 丢失一些标头 file使用带有 -cp 选项的绿色电源适配器组件时。 |
| 1144316 | 更新了 gp-types.h 文档中一些数据结构类型的描述。 |
| 1144884 | 修复了没有待处理数据时设置的虚假帧待处理位。 |
| 1152512 | 修复了在 isr 上下文中修改事件时 low-mac-rail 中潜在的崩溃问题。 |
| 1154616 | 添加了“将角色从休眠终端设备切换到非休眠终端设备”情况下初始化网络的条件的例外。 |
| 1157289 | 修复了可能导致 BDB 测试失败 DN-TLM-TC-02B 的问题。 |
| ID # | 描述 |
| 1157426 | 修复了使用 green_power_adapter 组件构建 zigbee_simple_app 时的构建问题。 |
| 1157932 | 添加了一个条件来检查“过渡时间”字段是否缺失,并为此缺失字段设置默认值 0xFFFF。 |
| 1166340 | 修复了导致 emberAfGpdfSend 无法发送预期重复传输次数的问题。 |
| 1167807 | 修复了每次新设备加入时,在分布式网络中充当信任中心的设备会错误地清除其临时链接密钥的问题。 |
| 1169504 | 修复了强制唤醒时导致休眠设备重置的问题。 |
| 1169966 | 修复了缓冲区分配代码中缺少返回值验证的问题。 |
| 1171477,
172270 |
使用 mfglib start 1 没有发送但接收消息,因此显示的终端消息“mfglib sendcomplete”是错误的,并更改为“RXed %d packet in the last %d ms”。 |
| 1171935 | 将定期网络密钥更新周期改为长达1年。 |
| 1172778 | 将缺少的 emberAfPluginGreenPowerServerUpdateAliasCallback 调用添加到 Green Power 服务器。 |
| 1174288 | 修复了导致网络转向进程在调用停止正在进行的扫描的调用时断言的问题。 |
| 1178393 | 更新了文档错误。 |
| 1180445 | 在智能能源中,如果协调器达到有限任务周期,OTA 现在会继续下载。 |
| 1185509 | 修复了 CSL 中无法正确记录紧随前一个有效负载帧之后接收到的新唤醒帧序列的问题。这将导致丢失有效负载帧。 |
| 1186107 | 修复了导致接收到的 GPDF 解密失败以替换 gp 调试通知中传入的 GPDF 的问题。 |
| 1188397 | 修复了启用扩展报告表大小时导致编译错误的问题。 |
| 1194090 | 更正了接收器调试模式命令的默认响应中的故障状态 - 遵循第 3.3.4.8.2 节 |
| 1194963 | 修复了在调用用户回调 emberAfGreenPowerServerPairingStatusCallback 之前 memsetcommissioningGpd 结构的问题。 |
| 1194966 | 修复了未使用退出调试操作设置端点和 proxiesInvolved 字段的问题。 |
| 1196698 | 修复了没有待处理数据时设置的虚假帧待处理位。 |
| 1199958 | 添加了代码来处理没有更多空间来构建绿色电源消息的情况。 |
| 1202034 | 修复了 sl_zb_sec_man_context_t 堆栈变量未正确初始化,导致连接安装代码失败的问题。 |
|
1206040 |
在终端设备尝试安全重新加入期间调用 emberRemoveChild() 可能会导致子计数额外减少,从而可能导致子计数为 -1 (255),从而由于指示的缺失而阻止终端设备加入/重新加入信标中的容量。 |
|
1207580 |
堆栈中的子表搜索函数在使用 0x0000 与 0xFFFF 作为表示无效/空条目的节点 ID 返回值时不一致,导致在检查 emberRemoveChild() 等 API 中未使用的条目时出现问题。 |
| 1210706 | 作为 emberCounterHandler() 一部分的 EmberExtraCounterInfo 结构中提供的目标和 PHY 索引对于 MAC TX 单播计数器类型可能不正确。 |
| 1211610
1212525 |
修复了启用安全密钥存储升级组件后动态多协议应用程序崩溃的问题。 |
| 1211847 | 虽然 emberCounterHandler() 的签名没有改变,但其参数的填充方式略有改变。上面第 2 节解释了围绕此 API 的更改。 |
|
1212449 |
MAC 层错误地对传出信标进行了分类,导致 emberCounterHandler() 无法使用 EMBER_COUNTER_MAC_TX_BROADCAST 计数器类型捕获这些数据包,而是使用 EMBER_COUNTER_MAC_TX_UNICAST_SUCCESS 计数器类型对信标进行计数。这可能会导致传递给 EmberCounterInfo 结构的 dest EmberNodeId 参数的值不可靠 |
| 1214866 | 在某些高流量配置中发送数据轮询数据包可能会导致总线故障。 |
| 1216552 | 修复了在繁忙流量条件下导致断言的问题。 |
| 1216613 | 修复了导致代理表中组播半径值不正确的问题。 |
| ID # | 描述 |
| 1222509 | 路由器/协调器向非子轮询终端设备发送离开和重新加入请求,但 MAC 目标是 0xFFFF,而不是匹配 NWK 目标地址。 |
| 1223842 | 修复了生成 sl_component_catalog.h 时留下不需要的代码导致编译失败的问题。 |
| 756628 | 将应用程序回调 emberAfMacFilterMatchMessageCallback 的调用更改为仅针对堆栈验证的 ZLL 消息调用。 |
| 816088 | 将 EMBER 配置从 zigbeed_configuration.h 移至 zigbeed.slcp。 |
| 829508 | 为了避免竞争条件,在 emberSetLogicalAndRadioChannel 中添加了额外的验证,以便在较低层繁忙或未处于更改通道的状态时返回不成功。 |
当前版本中的已知问题
自上一版本以来添加了粗体问题。 如果您错过了某个版本,请访问最近的版本说明 https://www.si-labs.com/developers/zigbee-emberznet 在技术文档选项卡中。
| ID # | 描述 | 解决方法 |
| 不适用 | 此版本不支持以下应用程序/组件:EM4 支持。 | 该功能将在后续版本中启用。 |
|
193492 |
emberAfFillCommandGlobalServerToClientConfigureRe 移植宏已损坏。缓冲区的填充会产生错误的命令包。 | 使用“zcl global send-me-a-report”CLI 命令而不是 API。 |
| 278063 | 智能能源隧道 plugins 地址表索引的处理/使用存在冲突。 | 没有已知的解决方法 |
|
289569 |
网络创建器组件功率级别选项列表不提供 EFR32 的全部支持值 |
编辑 EMBER_AF_PLUGIN_NETWORK_CREATOR_RADIO_P 的 CMSIS 注释中指定的范围 <-8..20>
OWER 在 /protocol/zigbee/app/framework/plugin/network-creator/config/network-creator-config.h file. 例如ample,更改为 。 |
| 295498 | 在 Zigbee+BLE 动态多协议用例中,UART 接收有时会在重负载下丢失字节。 | 使用硬件流控制或降低波特率。 |
|
312291 |
EMHAL:Linux 主机上的 halCommonGetIntxxMillisecondTick 函数当前使用 gettimeofday 函数,该函数不能保证单调性。如果系统时间发生变化,可能会导致堆栈计时问题。 |
修改这些函数以将clock_gettime 与CLOCK_MONOTONIC 源结合使用。 |
| 338151 | 使用低数据包缓冲区计数值初始化 NCP 可能会导致数据包损坏。 | 使用 0xFF 保留值作为数据包缓冲区计数以避免默认值过低 |
| 387750 | 终端设备上的路由表请求格式存在问题。 | 在调查中 |
| 400418 | touchlink 启动器无法链接到非出厂新的终端设备目标。 | 没有已知的解决方法。 |
|
424355 |
在某些情况下,触摸具有目标功能的启动器的非出厂新休眠终端设备无法接收设备信息响应。 |
在调查中 |
|
465180 |
共存无线电拦截器优化项“启用运行时控制”可能会阻止正确的 Zigbee 操作。 | 拦截器优化的可选“Wi-Fi 选择”控制应保留为“禁用”。 |
|
480550 |
OTA集群有自己内置的分片方法,因此不应该使用APS分片。不过,如果启用了 APS 加密,它会将 ImageBlockResponses 的有效负载增加到激活 APS 碎片的大小。这可能会导致 OTA 流程失败。 |
没有已知的解决方法 |
|
481128 |
当启用诊断插件和虚拟 UART 外设时,默认情况下应通过 NCP 平台上的虚拟 UART(串行 0)提供详细的重置原因和崩溃详细信息。 |
由于 Serial 0 已在 NCP 中初始化,因此客户可以在 Zigbee NCP Framework 中启用 emberAfNcpInitCallback,并在此回调中调用相应的诊断函数(halGetExtendedResetInfo、halGetExtendedResetString、halPrintCrashSummary、halPrintCrashDetails 和 halPrintCrashData)以将此数据打印到 Serial 0 view网络分析仪捕获日志中的信息。
对于前任amp有关如何使用这些函数的信息,请参阅定义 EXTENDED_RESET_INFO 时 a-main-soc.c 的 emberAfMainInit() 中包含的代码。 |
| ID # | 描述 | 解决方法 |
|
486369 |
如果形成新网络的 DynamicMultiProtocolLightSoc 具有其已离开的网络中剩余的子节点,则 emberAfGetChildTableSize 在 startIdentifyOnAllChildNodes 中返回非零值,从而在寻址“幽灵”子节点时导致 Tx 66 错误消息。 | 如果可能,请在创建新网络之前批量擦除该部分,或者在离开网络后以编程方式检查子表,并在形成新网络之前使用 emberRemoveChild 删除所有子表。 |
|
495563 |
加入 SPI NCP Sleepy End Device Sample App 不进行短轮询,因此在更新 TC Link Key 状态下加入尝试失败。 | 希望加入的设备在尝试加入之前应处于短轮询模式。终端设备支持插件可以强制此模式。 |
|
497832 |
在网络分析器中,验证密钥请求帧的 Zigbee 应用支持命令分解错误地引用了将帧源地址指示为目标地址的有效负载部分。 |
没有已知的解决方法 |
| 519905
521782 |
Spi-NCP 很少会无法使用 ota-client 插件的“bootload”CLI 命令启动引导加载程序通信。 |
重新启动引导加载过程 |
|
620596 |
NCP SPI 防爆ampBRD4181A (EFR32xGMG21) 的文件
nWake 默认定义的引脚不能用作唤醒引脚。 |
在 NCP-SPI 插件中将 nWake 的默认引脚从 PD03 更改为 EM2/3 唤醒启用引脚。 |
|
631713 |
如果使用插件“Zigbee PRO Stack Library”而不是“Zigbee PRO Leaf Library”,Zigbee 终端设备将重复报告地址冲突。 | 使用“Zigbee PRO Leaf Library”而不是“Zigbee PRO Stack Library”插件。 |
|
670702 |
报告插件中的低效率可能会导致基于数据写入频率和表大小的显着延迟,这可能会干扰客户应用程序代码,包括事件计时。 | 如果频繁写入,请考虑检查报告条件并手动发送报告,而不是使用插件。 |
|
708258 |
通过 addEntryToGroupTable() 在 groups-server.c 中未初始化的值可以创建虚假绑定并导致发送组播报告消息。 | 添加“binding.clusterId = EMBER_AF_INVALID_CLUSTER_ID;”在“绑定.类型”之后
= EMBER_MULTICAST_BINDING;” |
|
757775 |
所有 EFR32 部件都具有独特的 RSSI 偏移。此外,电路板设计、天线和外壳也会影响 RSSI。 |
创建新项目时,安装 RAIL Utility、RSSI 组件。此功能包括 Silabs 为每个部件测量的默认 RSSI 偏移。在对整个产品进行 RF 测试后,如有必要,可以修改此偏移量。 |
|
758965 |
ZCL 集群组件和 ZCL 命令发现表不同步。因此,当启用或禁用 ZCL 集群组件时,已实现的命令将不会在相应的 ZCL 高级配置器命令选项卡中启用/禁用。 |
在 ZCL 高级配置器中手动启用/禁用所需 ZCL 命令的发现。 |
| 765735 | 在启用页面请求的休眠终端设备上,OTA 更新失败。 | 使用块请求而不是页面请求。 |
|
845649 |
删除 CLI:Core 组件不会消除 EEPROM cli 对 sl_cli.h 的调用。 |
删除 eeprom-cli.c file 调用 sl_cli.h。此外,可以注释掉 ota-storage-simple-eeprom 中对 sl_cli.h 和 sl_cli_command_arg_t 的调用。 |
|
857200 |
ias-zone-server.c 允许使用“0000000000000000”CIE 地址创建绑定,并且以后不允许进一步绑定。 |
没有已知的解决方法 |
| 1019961 | 生成的 Z3Gateway makefile 将“gcc”硬编码为 CC | 没有已知的解决方法 |
| ID # | 描述 | 解决方法 |
|
1039767 |
多线程 RTOS 使用案例中的 Zigbee 路由器网络重试队列溢出问题。 |
Zigbee 堆栈不是线程安全的。因此,操作系统环境不支持从另一个任务调用 Zigbee 堆栈 API,并且可能会使堆栈进入“非工作”状态。请参阅以下应用说明,了解更多信息以及使用事件处理程序的解决方法。
https://www.silabs.com/documents/public/application- 笔记/an1322-动态多协议-蓝牙-zigbee-sdk- 7x.pdf . |
| 1064370 | Z3Switch 的amp默认情况下,该应用程序仅启用一个按钮(实例:btn1),这会导致项目中的按钮描述不匹配 file. | 解决方法:在 Z0Switch 项目创建期间手动安装 btn3 实例。 |
| 1161063 | Z3Light 和可能的其他应用程序报告不正确的集群修订值。 | 手动将集群修订版属性更新为其适当的修订版。 |
| 1164768,
1171478, 1171479 |
错误:在 mfglib 接收模式期间重复报告 ezspErrorHandler 0x34 | 要减少打印的错误消息,请配置 EMBER_AF_PLUGIN_GATEWAY_MAX_WAIT_FOR_EV
将主机应用程序上的 ENT_TIMEOUT_MS 设置为 100,以便更快地释放回调队列。 |
| 1252460 | 启动时运行的 SimEEPROM 恢复例程(适用于 v1 和 v2)可能会执行未对齐的闪存页面擦除调用,从而在 em_msc 期间产生断言。 c 的 MSC_ErasePage 例程。 | 解决方法:将以下代码行放在 em_msc.c 中 MSC_ErasePage() 函数的顶部:起始地址 = (uint32_t*)((uint32_t)起始地址 &
~(FLASH_PAGE_SIZE-1)); |
弃用的项目
版本 7.4.1.0 中已弃用|
在 GSDK 7.4.0.0 及更高版本(包括此补丁)中,Z3Gateway 中用于 Linux 主机应用程序创建端口 4900 或 4901 的 telnet 接口的“-v”选项已被弃用。创建 telnet 接口的替代推荐方法是使用 Linux 实用程序,例如“socat”。
- 在版本 7.4.0.0 中已弃用
- 删除了以下已弃用的安全 API:
- emberGetKey()
- emberGetKeyTableEntry()
- emberSetKeyTableEntry()
- emberHaveLinkKey()
- emberAddOrUpdateKeyTableEntry()
- emberAddTransientLinkKey()
- emberGetTransientKeyTableEntry()
- emberGetTransientLinkKey()
- emberHmacAesHash()
- 使用 Zigbee 安全管理器提供的 API 来访问密钥存储和 HMAC 哈希。
删除 d 项
在版本 7.4.0.0 中删除
- 删除了公共标头中重复的公共 API file gp-types.h。
- zigbee_end_device_bind 组件已被删除。该组件用于协调器代理终端设备的绑定请求。此可选功能已从 Zigbee 核心规范的 R22 中删除。
- 删除了 af-host.c 中的 setPacketBufferCount() 和 command-handlers.c 中无用的检查情况 EZSP_CONFIG_PACKET_BUFFER_COUNT:。
- 删除了内存分配参数,因为初始化 NCP 时无需分为两个阶段。
- 删除了 se14-comms-hub、se14-ihd 和 se14-meter-gas 的 app.c 中的 emberAfNcpInitCallback()。
- 删除了在 ncp 配置中的 ncp 初始化期间设置 EZSP_CONFIG_RETRY_QUEUE_SIZE 值。 C。
多协议网关和 RCP
- 新品
- 在版本 7.4.0.0 中添加
- 发布了并发侦听,即使用 EFR802.15.4xG32 或 xG24 RCP 时 Zigbee 和 OpenThread 堆栈在独立 21 通道上运行的能力。并发监听不适用于 802.15.4 RCP/蓝牙 RCP
- 组合、Zigbee NCP/OpenThread RCP 组合或 Zigbee/OpenThread 片上系统 (SoC)。它将在未来版本中添加到这些产品中。
- OpenThread CLI 供应商扩展已添加到多协议容器的 OpenThread 主机应用程序中。这包括 coex cli 命令。
- 改进
- 在版本 7.4.0.0 中更改
- Zigbee NCP/OpenThread RCP 多协议组合现已达到生产质量。
- 修正问题
- 已在 7.4.2.0 版中修复
| ID # | 描述 |
| 1022972 | 将共存插件添加回 Zigbee-OpenThread NCP/RCPamp申请。 |
| 1231021 | 通过恢复 RCP 而不是将未处理的传输错误传递给 sub mac,可以避免加入 80 多个 zigbee 设备时观察到的 OTBR 中的断言。 |
| 1249346 | 解决了 RCP 可能错误地将发往主机的数据包出队,导致 OTBR 中出现解析错误和意外终止的问题。 |
已在 7.4.1.0 版中修复
| ID # | 描述 |
|
1213701 |
如果 MAC 间接队列已经有该子项的待处理数据,zigbeed 不允许为该子项创建源匹配表条目。此行为可能会导致子设备与其他某些设备之间的应用程序层事务由于缺乏 APS Ack 或应用程序层响应而失败,最明显的是针对子设备的 ZCL OTA 升级的中断和意外终止。 |
| 1244461 | 尽管消息未决,但子项的源匹配表条目可能会被删除。 |
已在 7.4.0.0 版中修复
| ID # | 描述 |
| 1081828 | 基于 FreeRTOS 的 Zigbee/BLE DMP 的吞吐量问题amp应用程序。 |
| 1090921 | Z3GatewayCpc 在嘈杂的环境中组建网络时遇到困难。 |
| 1153055 | 从 zigbee_ncp-ble_ncp-uart 读取 NCP 版本时发生通信故障,导致主机上出现断言amp乐应用程序。 |
| 1155676 | 如果多个 802.15.4 接口共享相同的 15.4 位节点 ID,16 RCP 会丢弃所有收到的单播数据包(MAC 确认后)。 |
| 1173178 | 主机错误地报告了在 Host-RCP 设置中使用 mfglib 接收到的数百个数据包。 |
| ID # | 描述 |
| 1190859 | 在 Host-RCP 设置中发送 mfglib 随机数据包时出现 EZSP 错误。 |
| 1199706 | 来自被遗忘的终端设备子设备的数据轮询未在 RCP 上正确设置挂起帧,以将离开并重新加入命令排队到前一个子设备。 |
| 1207967 | “mfglib send random”命令在 Zigbeed 上发送额外的数据包。 |
| 1208012 | 在 RCP 上接收时,mfglib rx 模式未正确更新数据包信息。 |
| 1214359 | 当 80 个或更多路由器尝试同时加入 Host-RCP 设置时,协调器节点崩溃。 |
|
1216470 |
在中继地址掩码 0xFFFF 的广播后,充当父设备的 Zigbee RCP 将为每个子设备留下待处理的数据标志集。这导致每个孩子在每次轮询后都保持清醒状态,等待数据,并且需要每个终端设备进行一些其他待处理的数据事务以最终清除此状态。 |
当前版本中的已知问题
粗体显示的问题是自上一版本以来添加的。如果您错过了某个版本,可以在以下位置找到最新的版本说明: https://www.si-labs.com/developers/gecko-software-development-kit
| ID # | 描述 | 解决方法 |
| 937562 | Bluetoothctl 'advertise on' 命令在 Raspberry Pi OS 802154 上使用 rcp-uart-11-blehci 应用程序失败。 | 使用 btmgmt 应用程序而不是 bluetoothctl。 |
| 1074205 | CMP RCP 不支持同一 PAN id 上的两个网络。 | 为每个网络使用不同的 PAN id。 计划在未来的版本中提供支持。 |
| 1122723 | 在繁忙的环境中,z3-light_ot-ftd_soc 应用程序中的 CLI 可能会变得无响应。 | 没有已知的解决方法。 |
| 1124140 | z3-light_ot-ftd_soc samp如果 OT 网络已经启动,则该应用程序无法形成 Zigbee 网络。 | 首先启动 Zigbee 网络,然后启动 OT 网络。 |
|
1170052 |
CMP Zigbee NCP + OT RCP 和 DMP Zigbee NCP + BLE NCP 可能不适合当前版本中的 64KB 及更低 RAM 部件。 |
这些应用程序当前不支持 64KB 部分。 |
|
1209958 |
Bobcat 和 Bobcat Lite 上的 ZB/OT/BLE RCP 在运行所有三个协议时可能会在几分钟后停止工作 |
将在未来版本中解决 |
| 1221299 | RCP 和 NCP 之间的 Mfglib RSSI 读数不同。 | 将在未来版本中解决。 |
弃用的项目
没有任何
已移除商品
在版本 7.4.0.0 中删除
“NONCOMPLIANT_ACK_TIMING_WORKAROUND”宏已被删除。现在,所有 RCP 应用程序默认支持非增强型 ack 的 192 微秒周转时间,同时仍使用 CSL 所需的增强型 ack 的 256 微秒周转时间。
使用此版本
此版本包含以下内容
- Zigbee堆栈
- Zigbee应用框架
- 紫蜂Samp应用程序
有关 Zigbee 和 EmberZNet SDK 的更多信息,请参阅 UG103.02:Zigbee 基础知识。如果您是首次使用,请参阅 QSG180:SDK 7.0 及更高版本的 Zigbee EmberZNet 快速入门指南,了解有关配置开发环境、构建和刷新的说明amp文件应用程序以及指向后续步骤的文档参考。
安装和使用
Zigbee EmberZNet SDK 作为 Gecko SDK (GSDK)(Silicon Labs SDK 套件)的一部分提供。要快速开始使用 GSDK,请安装 Simplicity Studio 5,它将设置您的开发环境并引导您完成 GSDK 安装。 Simplicity Studio 5 包含使用 Silicon Labs 设备开发物联网产品所需的一切,包括资源和项目启动器、软件配置工具、带有 GNU 工具链的完整 IDE 以及分析工具。在线 Simplicity Studio 5 用户指南中提供了安装说明。或者,可以通过从 GitHub 下载或克隆最新版本来手动安装 Gecko SDK。看 https://github.com/Sili-conLabs/gecko_sdk 了解更多信息。 Simplicity Studio 默认安装 GSDK:
- (Windows):C:\用户\ \SimplicityStudio\SDKs\gecko_sdk
- (苹果系统): /用户/ /SimplicityStudio/SDKs/gecko_sdk
特定于 SDK 版本的文档随 SDK 安装。 通常可以在知识库文章 (KBA) 中找到其他信息。 有关此版本和早期版本的 API 参考和其他信息可在 https://docs.silabs.com/.
安全信息
安全保管库集成
对于选择使用 Secure Vault-High 部件上的安全密钥存储组件安全存储密钥的应用程序,下表显示了 Zigbee 安全管理器组件管理的受保护密钥及其存储保护特性。
| 包装密钥 | 可出口/不可出口 | 笔记 |
| 网络密钥 | 可导出 | |
| 信任中心链接密钥 | 可导出 | |
| 瞬态链接密钥 | 可导出 | 索引键表,存储为易失性键 |
| 应用程序链接密钥 | 可导出 | 索引键表 |
| 安全 EZSP 密钥 | 可导出 | |
| ZLL 加密密钥 | 可导出 | |
| ZLL 预配置密钥 | 可导出 | |
| GPD 代理密钥 | 可导出 | 索引键表 |
| GPD 接收器密钥 | 可导出 | 索引键表 |
| 内部/占位符键 | 可导出 | Zigbee 安全管理器使用的内部密钥 |
- 可以使用但不能使用标记为“不可导出”的包装密钥 view在运行时编辑或共享。
- 标记为“可导出”的包装密钥可以在运行时使用或共享,但在存储在闪存中时仍保持加密状态。
- 用户应用程序永远不需要与这些键中的大多数进行交互。用于管理链路密钥表密钥或临时密钥的现有 API 仍然可供用户应用程序使用,并且现在可以通过 Zigbee 安全管理器组件进行路由。
其中一些密钥将来可能无法导出到用户应用程序。除非绝对必要,否则鼓励用户应用程序不要依赖密钥的导出。
有关安全保管库密钥管理功能的更多信息,请参阅 AN1271:安全密钥存储。
安全建议
要订阅安全公告,请登录 Silicon Labs 客户门户,然后选择帐户主页。 单击“主页”转到门户主页,然后单击“管理通知”磁贴。 确保选中“软件/安全咨询通知和产品变更通知 (PCN)”,并且您至少订阅了您的平台和协议。 单击保存以保存任何更改。
![]()
支持
开发套件客户有资格获得培训和技术支持。使用 Silicon Laboratories Zigbee web 页面以获取有关所有 Silicon Labs Zigbee 产品和服务的信息,并注册产品支持。
您可以通过以下方式联系 Silicon Laboratories 支持 http://www.silabs.com/support.
简单工作室
一键访问 MCU 和无线工具、文档、软件、源代码库等。 适用于 Windows、Mac 和 Linux!
- 物联网产品组合
www.silabs.com/物联网 - 软件/硬件
www.silabs.com/simplicity - 质量
www.silabs.com/quality - 支持与社区
www.silabs.com/community
免责声明
Silicon Labs 旨在为客户提供最新、准确且深入的所有外围设备和模块的文档,供使用或打算使用 Silicon Labs 产品的系统和软件实施者使用。 特性数据、可用模块和外设、存储器大小和存储器地址涉及每个特定器件,并且提供的“典型”参数在不同的应用中可能并且确实有所不同。 应用前amp本文描述的文件仅用于说明目的。 Silicon Labs 保留对本文中的产品信息、规格和描述进行更改的权利,恕不另行通知,并且不对所包含信息的准确性或完整性提供保证。出于安全或可靠性原因,Silicon Labs 可能会在制造过程中更新产品固件,恕不另行通知。此类更改不会改变产品的规格或性能。 Silicon Labs 对使用本文档中提供的信息所造成的后果不承担任何责任。本文件并不暗示或明确授予设计或制造任何集成电路的任何许可。未经 Silicon Labs 具体书面同意,这些产品未设计或授权用于任何 FDA III 类设备、需要 FDA 上市前批准的应用或生命支持系统。 “生命支持系统”是指旨在支持或维持生命和/或健康的任何产品或系统,如果出现故障,可以合理预期会导致重大人身伤害或死亡。 Silicon Labs 产品并非为军事应用而设计或授权。 Silicon Labs 产品在任何情况下均不得用于大规模杀伤性武器,包括(但不限于)核武器、生物武器或化学武器,或能够运载此类武器的导弹。 Silicon Labs 不承担所有明示和默示的保证,并且对于与在此类未经授权的应用程序中使用 Silicon Labs 产品相关的任何伤害或损害不承担任何责任。注意:此内容可能包含现已过时的冒犯性术语。 Silicon Labs 正在尽可能用包容性语言替换这些术语。欲了解更多信息,请访问 www.silabs.com/about-us/inclusive-lexicon-project
商标信息
Silicon Laboratories Inc.、Silicon Laboratories、Silicon Labs、SiLabs 和 Silicon Labs 徽标、Bluegiga、Bluegiga 徽标、EFM、EFM32、EFR、Ember、Energy Micro、Energy Micro 徽标及其组合、“世界上最节能的微控制器”、 Redpine Signals、WiSeConnect、n-Link、ThreadArch、EZLink、EZRadio、EZRadioPRO、Gecko、Gecko OS、Gecko OS Studio、Precision32、Simplicity Studio、Telegesis、Telegesis 徽标、USBXpress、Zentri、Zentri 徽标和 Zentri DMS、Z- Wave 等是 Silicon Labs 的商标或注册商标。 ARM、CORTEX、Cortex-M3 和 THUMB 是 ARM Holdings 的商标或注册商标。 Keil 是 ARM Limited 的注册商标。 Wi-Fi 是 Wi-Fi 联盟的注册商标。本文提及的所有其他产品或品牌名称均为其各自所有者的商标。
硅实验室公司
400 West Cesar Chavez 美国德克萨斯州奥斯汀 78701 www.silabs.com
常问问题
问:该 SDK 推荐的编译器是什么?
答:推荐的编译器是 Simplicity Studio 提供的 GCC 版本 12.2.1。
问:在哪里可以找到安全更新和通知?
答:请参阅 Gecko 平台发行说明的安全性章节或访问 Silicon Labs web安全信息网站。
文件/资源
![]() |
SILICON LABS EmberZNet SDK Gecko 软件开发套件 [pdf] 用户指南 EmberZNet SDK Gecko 软件开发套件、SDK Gecko 软件开发套件、Gecko 软件开发套件、软件开发套件、开发套件、套件 |
