※This article is based on Simplicity Studio 4 、EmberZnet SDK 6.7.5.0 and EFR32MG Series
Simplicity Studio 工具的主要目的不是编译调试,而是一个工程项目的模板编辑器, 他创建的工程项目,再在IAR 等 IDE 工具中打开使用,用 IAR 等工具进行开发编译调试。
为了后期的版本升级方便,建议最大程度的使用 Simplicity Studio 工具进行代码的开发,IAR 等工具只作为编译器去使用。
例程
https://github.com/SiliconLabs/zigbee_applications
您可以按照以下步骤创建Zigbee项目:
项目通过使用 isc 文件进行配置,在 Simplicity Studio 里面打开 isc 文件,可以看到下面的选项卡
可以设置设备类型和安全性类型。对于Zigbee设备类型,我们有四个选项:
确定Zigbee设备类型后,您可以设置endpoint和每个endpoint所在的cluster。这些功能在“ ZCL Clusters”选项卡下。
插件的属性
属性 | 注释 |
Plugin Name | 插件名称 |
Quality | 插件的质量可能是: 制作准备 测试工具 扩展需求 示例代码 内部测试 公开测试 调试工具 |
Option | 插件选项 |
Located | 插件目录 |
Source files | 插件的源文件 |
Defined callbacks | 此插件定义的回调 |
Implemented callbacks | 在协议栈或其他插件中定义的回调,用此插件实现 |
大多数插件都是开源的。您可以检查源代码以了解其实现方式。
常用插件
类别 | 插件 | 注释 |
核心协议栈 | Zigbee PRO Stack Library | 具有路由支持的核心协议栈,由路由和协调器使用 |
Zigbee PRO Leaf Library | 不支持路由的核心协议栈,由终端设备使用 | |
End Device Support | 一个支持终端设备的插件 | |
Network Creator | 创建网络,由协调器使用 | |
Network Creator Security | 协调器的安全设置,例如为新设备配置Link key | |
Network Steering | 扫描可加入的网络并加入 | |
睡眠 | Idle/Sleep | 由睡眠终端设备使用。空闲时设备将进入EM2。 |
EM4 | 插件可帮助睡眠终端设备进入EM4 | |
主条目 | Simple Main | 项目的主要入口 |
非易失性数据 | Simulate EEPROM Version 1 Library | 模拟EEPROM版本1的库,用于存储非易失性数据 |
Simulate EEPROM Version 2 Library | 模拟EEPROM版本2的库,用于存储非易失性数据 | |
NVM3 Library | NVM3库,用于存储非易失性数据 |
Bootloader Configuration
点击“ Open Hardware Configurator”按钮,可以打开“Hardware Configurator”对芯片引脚进行设置
Silicons Labs建议客户在回调中添加其自定义源代码。好处是,当您从旧的SDK迁移到新的SDK时,这将非常容易。
建议在生成的文件<projectname>_callbacks.c 中定义和实现选定的回调。您也可以将它们添加到新的源文件中。
Try Project->Properties->Run/Debug Settings "iRIS_270FX Debug" -> Edit button, Connection tab Also Simplicity Commander.. click Connect twice defiantly the right processor... on two counts
you shouldn't configure the part number as mgmxxx in Simplicity IDE, that is not a valid part number. you should use efr32ngxxxx as the commander showed.
C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander>commander device info -d cortex-m4 --serialno 440029541
完成项目设置后,保存并按下按钮“ Generate”,AppBuilder将生成项目。
文件 | 描述 |
<projectname>.h | 主头文件。此处列出了所有插件设置,回调设置 |
<projectname>_callbacks.c | 生成的源文件。自定义回调和事件处理应在此文件中实现。 |
<projectname>_endpoint_config.h | 定义endpoint,属性和命令 |
znet-cli.c/znet-cli.h | CLI命令列表 |
client-command-macro.h | 定义大量宏指令用于填充消息 |
call-command-handler.c | Cluster命令处理 |
attribute-id.h/attribute-size.h/attribute-type.h/att-storage.h | 相关属性 |
af-structs.h | 数据结构 |
af-gen-event.h | 事件/处理程序对 |
编译完成后,生成的应用程序image位于:
显示以下的错误信息:
Error[Pe020]: identifier "BSP_PTI_DOUT_LOC" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 379 Error[Pe020]: identifier "BSP_PTI_DOUT_PORT" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 380 Error[Pe020]: identifier "BSP_PTI_DOUT_PIN" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 381 Error[Pe020]: identifier "BSP_PTI_DFRAME_LOC" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 385 Error[Pe020]: identifier "BSP_PTI_DFRAME_PORT" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 386 Error[Pe020]: identifier "BSP_PTI_DFRAME_PIN" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 387
打开.hwconf文件(或者在isc文件的 HAL 选项卡里面找到“Open Hardware Configurator”),找到PTI,将其取消,或者配置对应的参数,试缺少的参数补齐(PTI一般开发板才需要配合使用)
在isc文件的 includes 选项卡里面,add directory... 添加下面的路径
安装路径\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\radio\rail_lib\common
Simplicity Studio 自带的烧录器的问题,使用 Simplicity Commander 烧录即可解决
参考URL
https://community.silabs.com/s/question/0D51M00007xeRSnSAM/cannot-debug-mgm210p022jia2-using-external-ji-link-secure-element-not-present?language=en_US
Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。
下载地址
https://www.silabs.com/documents/public/software/SimplicityCommander-Windows.zip
simplicity studio v5 的话,点击 tools 选择 simplicity commander
默认的路径
安装路径\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\adapter_packs\commander
检查是否有线松动
&ref(): File not found: "ZigBee.png" at page "++EmberZnet++开发环境";
Comment: