一般来说,指定版本的SDK一般只能用指定版本的IDE才能进行开发。要使用新版的SDK,前提一般都是必须先把升级IDE。虽然IDE和SDK都推荐用最新版本的,但是频繁更新开发使用的IDE和SDK往往会给开发人员带来很多的麻烦。比如,等我们把IDE升级了,新的SDK也下载下来了,结果:
大家在开发过程中,具体遇到的由于版本混乱导致的问题可能还有很多。经过安装、测试、卸载、再安装、再测试等等一系列的实验验证后,我们终于总结出来一套针对于Silicon Labs的IDE和SDK全新的开发模式——集成离线开发模式。主要体现在我们提供的资源包SimplicityStudio_v5.6.4.0.rar,这一个压缩包文件中就已经一体化集成了:
本教程使用的全部资源包,都以群文件的形式提供下载(群置顶公告中也有百度网盘下载链接)。大家可以根据本文文初或文末的提示加群,即可直接免费下载获取。
(更多丰富的示例工程代码、软硬件资料,也都会在群文件该目录下持续更新,欢迎大家关注。)
这里有丰富的开发资料供大家下载使用,其中最核心的还是箭头指向的名为SimplicityStudio_v5.6.4.0.rar的压缩包。其中已包含了当前(2023.05.29)最新版本的Gecko SDK v4.2.3.0(含EmberZnet 7.2.3.0):
以及编译工具GNU ARM v10.3.1:
整个软件包免安装,解压出来直接就可以正常使用。
(注:资源包中Simplicity Studio软件的自动更新功能已关闭,不用担心IDE和SDK被意外或强制更新可能带来的问题。)
等Simplicity Studio和Gecko SDK迭代了几个版本,有了重大更新之后,我会重新制作新版本的资源包上传至群文件。到时候需要的朋友可以自行下载使用。
由于是使用离线资源包的形式,而不是exe可执行文件安装或是在线获取,所以新旧版的IDE或SDK都是可以完全共存使用,互不影响!
Silicon Labs的Simplicity Studio是一个集成开发环境,大家熟知的主要有v4和v5两个版本。
v4版本相对老一些,之前Silicon Labs官方还在官网同时维持着v4版本和v5版本的下载链接,以及两个版本的差异对比等等,现在官方已经彻底删除v4相关的下载和说明了,仅保留了v5版本,并对齐进行了非常完善的全方位支持。所以,现在很多新的开发工程师大多都已经不知道v4版本的存在了。
后面官方推出的新版的SDK也仅支持最新的Simplicity Studio v5了。比如,你想使用最新的SDK,你就必须使用最新的Simplicity Studio,才能对最新的SDK进行开发。
新的SDK修复了老版SDK的很多bug,也增加了很多优化和新的内容。我们必须跟着技术发展走,所以这里也建议还在使用v4版本Simplicity Studio的老工程师们尽快升级到最新的v5版本上来。
(注:最新版本的Simplicity Studio不再需要手动Generate了,而是会根据用户的修改实时自动生成代码!)
Silicon Labs为开发者全方位提供了多种SDK,比如有:
本教程主要是针对ZigBee无线协议的开发,所基于的硬件主要是Silicon Labs的EFR32MG21、EFR32MG22、EFR32MG24系列的无线MCU,这些MCU都是ARM Cortex-M33内核的32位处理器,所以自然是需要基于Gecko SDK进行开发的。
Gecko SDK本身其实是一个大的“SDK包”,里面包含了许多“子SDK”。就以本教程所基于的 4.2.3.0 版本的 Gecko SDK 为例,其中所包含的“子SDK”如下图所示:
从图中可以看出,我们常用的Bluetooth、Bluetooth Mesh、Z-Wave、ZigBee等协议相关的SDK都是包含在内的。
Silicon Labs的Gecko SDK也经历了好几个版本的更新迭代:
前面提到,本教程主要是针对ZigBee无线协议的开发,所以这里有必要专门说明一下Gecko SDK“SDK包”中的ZigBee“子SDK”——EmberZnet。
本教程所使用的 Gecko SDK 4.2.3.0,其中包含的ZigBee SDK是 EmberZnet 7.2.3.0。
大家从官网可以获取到关于 EmberZnet 极其详细的介绍。下图是 EmberZnet 7.2.3.0 版本的更新信息,以及最近的一些历史版本:
从中可以看出,Silicon Labs官方对于自家的SDK(比如EmberZnet)更新得相当频繁。从上图(截止至本文的发布时间)可以看出,Silicon Labs的ZigBee协议栈——EmberZnet几乎是每1~2个月就会发布一个新的版本。
在新发布的SDK中,既有老版本SDK中bug的修复,也会有许多优化、新内容的增加等等。这里举例跟大家说明一下为什么推荐使用新版本的SDK,主要从各个版本仍存在的Known Issues in the Current Release(取自于各个版本EmberZnet的release note)的数量来说明:
由此可见,目前最新的 EmberZnet 7.2.3.0 是目前可用的版本中Known Issues最少的版本,这个还是非常有吸引力的!
比如直到7.0.0.0版本的EmberZnet发布都一直长期存在的**“Known Issue 488977和702802”**,终于在7.0.1.0 版本的EmberZnet中得到了修复。(感兴趣的朋友,可以去查阅EmberZnet 7.0.0.0和7.0.1.0的release note去查看详情。)
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)