ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-3-06:不同格式固件的区别:bin/hex/s37/gbl

源码文档软件硬件技术交流技术支持入口文末
【所有相关 IDESDK例程源码均可从群文件 免费获取免安装解压即用

 

持续更新中,欢迎关注!

 


一、编译生成

我们在使用 Simplicity Studio 开发基于 EFR32EmberZnet 时,发现当我们的固件编译结束之后,在工程根目录下的 GNU ARM v10.2.1 - Default 目录下可以得到很多种格式的固件,比如 .bin.hex.s37.gbl 等等。

那么这些不同格式的文件到底有什么区别的?在什么情况下我们要用到对应的文件呢?

二、bin文件

.bin 文件是一个二进制镜像,它包含了一个字节一个字节的二进制镜像,可以烧录到任意地址中。我们在烧录时需要指定地址,所以我们一般不使用这个格式的文件。

三、hex文件

.hex 文件是标准的Intel HEX格式。这种 ASCII 文本文件包含在目标设备的什么位置编程哪些数据的记录,它可以包含应用程序固件引导加载程序固件,甚至制造商 tokenSimEEPROM token数据的编程数据。这是你将芯片的内容导出成文件时使用的格式。在 Silicon Labs 的开发中,.hex 文件通常被作为一种方式来提供一个单独的固件,该文件包含所有必要的信息(应用程序固件和任何必要的引导加载程序固件),用于一次加载一个芯片。这些类似于二进制文件,但它们也包含了 flash的地址。在实际量产过程中,我们可以将 bootloaderapplication合成一个 .hex 文件进行烧录。

四、s37文件

.s37 文件是标准的摩托罗拉S-Record格式。这种ASCII 文件包含有关已构建固件(无论是应用程序固件还是 bootloader固件)的编程数据和加载程序工具的一些原始数据。在 Silicon Labs 的开发中,一个 .s37 文件通常只代表一个固件(一个引导加载程序或一个应用程序,但不是两个同时包含)。它们类似于二进制 .bin 文件,但它们也包含了 flash的地址。我们正常调试固件时可以直接烧录 .hex 或者 .s37 文件,唯一的区别是 .s37 仅能是 bootloaderapplication中的一个,无法合并成一个 .s37 文件。

五、gbl文件

.gbl 文件是 Gecko BootLoader 数据文件的一个二进制格式的文件。使用 Simplicity Commander 工具可以将 .s37 文件转换成 .gbl 文件。由于 .gbl 文件是给 Gecko BootLoader 用的,因此这个文件格式仅适用于应用程序固件,而不适用于bootloader固件。我们在进行串口固件升级或者生成 .ota 文件时需要使用的都是这个格式的文件。更多关于 .gbl 格式的文件的详细信息请参考 Silicon Labs 的官方说明文档《UG266: Silicon Labs Gecko Bootloader User’s Guide》和《Gecko Bootloader File Format》。

(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)


在这里插入图片描述

 

持续更新中,欢迎关注!

 

【所有相关 IDESDK例程源码均可从群文件 免费获取免安装解压即用
源码文档软件硬件技术交流技术支持入口文末

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿破仑940911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值