datasheet

Silicon Labs 芯科科技

文章数:500 被阅读:66273

账号入驻

【设计应用】以太网助力Giant Gecko 11固件更新

2019-04-08
    阅读数:

在管理物联网设备方面,无线(OTA)固件更新发挥着关键作用。产品制造商借助OTA,通过漏洞修复,功能增强和安全补丁功能远程更新连接设备。

 

如果您正在对Silicon Labs(亦称芯科科技)的某一EFM32 32MCU型号进行评估,例如嵌入式Giant GeckoGG11入门套件(SLSTK3701A),并希望学习一种简单的方法来启用OTA固件更新。那么本文将通过以下展示示例进行演示:

1. 以太网上的固件更新

  • 1-(1): 嵌入式应用程序充当HTTP客户端,将被连接到您的Web服务器以发送GET请求下载固件更新文件(myupgrade.gbl)

  • 1-(2): 服务器开始使用固件更新文件(myupgrade.gbl)并对其进行响应

  • 1-(3): 下载文件myupgrade.gbl后,嵌入式应用程序将使用引导加载程序接口API对其进行存储,紧接着重新编程引导加载程序的存储区域。

  • 1-(4): 嵌入式应用程序将使用引导加载程序接口API验证固件更新映像并升级当前应用程序。

 

固件更新映像显现有以下几个标准:

  • myupgrade.gbl为有效文件,这需要嵌入式应用程序使用引导加载程序接口API进行确认。

  • 嵌入式应用程序检查myupgrade.gbl中存储的固件更新映像的版本。如果嵌入式应用程序的版本与正在运行的应用程序的版本相同或为旧版本,图像文件则不会显现。

 

如果出现以下情况,引导加载程序存储区域将被删除。嵌入式应用程序将尝试建立新的HTTP / HTTPS连接:

  • 加载的.gbl图像文件无效。

  • 存储的图像版本与运行版本相同或为旧版本。

  • HTTP / HTTPS协议出现任何问题。

 

硬件要求

  • EFM32 Giant Gecko GG11入门套件SLSTK3701A

  • Web服务器托管固件更新文件

 

软件要求

  • Simplicity Studio

  • 32MCU SDK

  • Micrium OS内核

  • Micrium OS网络

 

入门介绍

1. 从官网或经销商处订购EFM32 Giant Gecko GG11入门套件SLSTK3701A

2. 安装Simplicity Studio

  • 下载并安装最新版本的Simplicity Studiohttp://www.silabs.com/simplicity-studio

  • 下载软件并按照安装说明进行操作。

  • 登录时,请输入您在Silicon Labs官网的用户名和密码。如果您还没有帐户,请注册。这是访问所有软件组件所必需的条件。

  • 登录后,使用Simplicity Studio注册您的套件。如果套件未注册,Simplicity     Studio仅允许访问Micrium内核;如果套件已注册,Simplicity Studio还可允许访问所有其他适用的Micrium组件。许可证编号可参考套件包装盒上编码。

3. 连接电路板,如下图所示:

2. 硬件连接

 

4. Launcher面板打开Simplicity Studio,选择SLSTK3701A_micriumos_httpcloader的示例,如下所示:

3.选择示例

 

5. 打开位于Project Explorer/ src文件夹中的文件httpclient.c,然后输入计划进行的托管固件更新映像的完整URL

#define  FULL_URL  http://mywebserver.com/myupgrade.gbl

 

如果使用中的网络服务器是安全的(即https),那么此演示也包括mbedTLS一部分。只需确保网站所需的证书在位于Project Explorer/ src文件夹中的文件ssl_certificates.c中的SSL_ROOT_CA []

 

您可能还必须通过在配置文件config-ssl中设置MBEDTLS_ECP_MAX_BITSMBEDTLS_MPI_MAX_SIZE中的正确大小来调整与您的网站证书匹配的位数和字节数 -

httpcloader.h位于C\ SiliconLabs \ SimplicityStudio \ v4 \ developer \ sdks \ gecko_sdk_suite\ v2.5 \ app \ mcu_example \ SLSTK3701A_EFM32GG11 \ micriumos_httpcloader \config-ssl-httpcloader.h

#defineMBEDTLS_MPI_MAX_SIZE   256

#defineMBEDTLS_ECP_MAX_BITS   384

 

6. 打开Project Explorer/ src文件夹中的application_properties.c文件,并将嵌入式应用程序的版本号设置为2以模拟固件升级:

#define APP_PROPERTIES_VERSION2

 

7. 构建项目


8. 通过打开位于C\ SiliconLabs \ SimplicityStudio \ v4 \ developer \adapter_packs \ commander的实用程序Simplicity Commander并将二进制文件.s37的路径提供给与此类似的命令行,生成固件更新文件myupgrade.gbl

commander.exe gbl createmyupgrade.gbl --app"C:\Users\[YourUsername]\SimplicityStudio\v4_workspace\SLSTK3701A_micriumos_httpcloader\GNUARM v7.2.1 - Debug\SLSTK3701A_micriumos_httpcloader.s37"

4. 创建固件更新文件(.gbl

 

9. 将文件myupgrade.gbl上传到您的Web服务器


10. 打开Project Explorer/ src文件夹中的application_properties.c,并将嵌入式应用程序的版本号设置回1

#define APP_PROPERTIES_VERSION1

 

11. 再次构建项目

 

12. 如之前图2所示连接入门工具包

 

13. Windows中打开设备管理器,查找列为J-Link CDC UART端口的USB设备的COM端口号

 

14. 打开串行控制台应用程序(如PuTTY)便于在运行时查看调试消息

 

15. 从调试适配器列表中选择项目J-Link Silicon Labs,单击右键打开上下文菜单,然后选择upload application,如下所示:

5. 上传嵌入式应用程序和Bootloader映像

 

16. Application Image Path字段中,通过浏览项目所在的工作文件夹,选择构建的文件SLSTK3701A_micriumos_httpcloader.s37,路径类似于以下内容:

C:\Users\[YourUsername]\SimplicityStudio\v4_workspace\SLSTK3701A_micriumos_httpcloader\GNUARM v7.2.1 - Debug\SLSTK3701A_micriumos_httpcloader.s37

勾选Upload a Bootloader image”复选框,然后通过在相似路径中浏览到文件bootloader-storage-internal-single-combined.s37选择示例附带的引导加载程序:

C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.5\app\mcu_example\SLSTK3701A_EFM32GG11\micriumos_httpcloader\bootloader-storage-internal-single-combined.s37

6. 上传嵌入式应用程序和Bootloader映像

 

17. 点击“OK”按钮后,两个图像将会显现。引导加载程序映像将在Flash的保留区域中,从此处可以简单地从Simplicity Studio启动调试会话,从而使用不同的应用程序映像对设备进行编程。因为引导加载程序映像被存储在Flash的保留区域中,除非您使用此工具或使用Simplicity Commander的命令行覆盖它,否则映像不会被删除。

 

18. 当嵌入式应用程序启动以太网接口时,观察串行终端,连接到网站下载文件myupgrade.gbl并在新升级的嵌入式应用程序上重新启动该文件。

7. 成功升级时的调试消息

 

延伸阅读

此示例中描述的固件更新情况基于无身份验证情况下,同时也没有加密固件更新文件。但是,我们的系统支持这些功能以及安全启动,但这超出了本文范围。如需签署和加密固件更新文件,您可以按一下方式使用Simplicity Commander

commander.exe gbl create --app--bootloader --metadata --compress --encrypt --sign --force

 

有关如何使用Simplicity Commander,请参阅以下文档的第34页上的GBL命令部分:

UG162Simplicity Commander参考指南
https://www.silabs.com/documents/public/user-guides/ug162-simplicity-commander-reference-guide.pdf

 

有关Gecko Bootloader的更多内容,请参阅以下文档:

UG266Gecko Bootloader用户指南https://www.silabs.com/documents/public/user-guides/ug266-gecko-bootloader-user-guide.pdf


UG103.6Bootloader基础知识https://www.silabs.com/documents/public/user-guides/ug103-06-fundamentals-bootloading.pdf

 

您也可以扫描以下维码,关注Silicon Labs社交媒体平台


About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved