【经验】简述32位MCU EFM32/EZR32的USB-UART引导加载程序的编程、验证、安全命令的使用

2018-12-14 Silicon Labs
32位MCU,32位微控制器,EFM32ZG110F8-QFN24,EFM32ZG210F32 32位MCU,32位微控制器,EFM32ZG110F8-QFN24,EFM32ZG210F32 32位MCU,32位微控制器,EFM32ZG110F8-QFN24,EFM32ZG210F32 32位MCU,32位微控制器,EFM32ZG110F8-QFN24,EFM32ZG210F32

引导加载程序使用户能够通过UART或USB CDC类虚拟UART对EFM32或EZR32进行编程,而无需调试器,故本文旨在指导用户如何在SILICON LABS 32位MCU EFM32或EZR32器件的使用中去引导加载程序。除了引导用户应用程序之外,它还提供了破坏性写入模式,允许用户覆盖引导加载程序,以便整个闪存都用于用户应用程序。还可以通过CRC校验来验证存储内容,并且可以启用Debug锁定来保护IP。由于引导加载程序通过已建立的XMODEM-CRC协议进行数据上传,因此可以使用任何串行终端程序与引导加载程序进行通信。USB/UART引导加载程序在带有USB外设的所有EFM32或EZR32器件中进行预编程。虽然EFM32HG器件只有8 KB的RAM,但是引导加载程序经过了大量优化,适合这些设备。


所有带USB外设的32位MCU EFM32或EZR32器件都预先设有USB/UART引导加载程序,其中可以实现以下功能:

1)可以与客户应用程序一起保留以支持现场升级,也可以被覆盖以最大化可用的闪存空间;

2)使用基于USB的虚拟或物理UART接口进行通信;

3)支持单字符命令:编程(上传/覆盖),验证(计算校验和),安全(写保护,锁定调试端口)等;

4)使用XMODEMCRC协议进行文件传输;

5)  DBG_SWCLK拉高时,在复位后调用。

1.启动Bootloader

1.1进入Bootloader模式

要进入引导加载程序,必须将DBG_SWCLK拉高并且必须复位EFM32或EZR32。如果DBG_SWCLK为低,则引导加载程序将检查闪存中的应用程序。如果应用程序空间包含有效的应用程序,则引导加载程序将运行此应用程序。如果没有有效的应用程序,引导加载程序将在EM2中休眠以节省电量,同时定期检查引导加载程序引脚。而DBG_SWCLK具有内部下拉,如果保持此引脚不连接不会调用引导加载程序。


1.2初始化与Bootloader的通信

通过在物理UART接口(启动自动波特算法)上传输大写“U”或通过枚举USB CDC虚拟UART设备来初始化Bootloader通信。无论哪个先发生,都将控制引导加载程序操作的其余部分,引导加载程序通常使用GPIO引脚的E11和E10进行UART通信。UART数据结构包含1个停止位和8个数据位,无奇偶校验位。为了启用各种不同的终端仿真器(如果使用USB串行端口则不适用),引导加载程序使用自动波特率算法。在物理UART上接收到大写“U”时,将测量主机波特率并相应地调整UART波特率,自动波特率算法适用于2400到115200范围内的波特率。


图1.1 在Tera Term中配置UART串行端口以进行引导加载程序通信


一旦引导加载程序完成了自动波特率调整,它将打印引导加载程序版本和芯片唯一ID: BOOTLOADER版本x.yy,芯片ID F08AB6000B153525。如果使用USB-UART,您将看不到版本字符串,发出命令[i]以检查版本信息。如果自动波特率算法和USB枚举都没有在30秒内完成,芯片将被重置。如果使用Windows主机并且要使用USB CDC虚拟UART,则必须安装USB CDC设备驱动程序。通过打开设备管理器,在设备上单击并选择[更新驱动程序软件],手动安装,就可以轻松完成。大多数EFM32或EZR32器件中的引导加载程序配置为使用引脚位置0中的外设USART0作为物理UART接口,但某些器件没有USART0外设或引脚位置0选项。由于这些原因或其他原因,EFM32HG器件中的引导加载程序使用引脚位置3中的LEUART0,而EZR32LG器件中的引导加载程序使用引脚位置2中的USART1。有关这些信号的引脚位置,请参见器件数据手册。


1.3命令行界面

命令行界面使用单个字母字符作为命令,支持多种命令,具体命令请参考文末链接。需注意,使用USB CDC虚拟UART时,[b]和[r]命令将在实际执行命令之前延迟7秒,前5秒允许操作员断开UART连接,然后引导加载程序执行USB软断开连接,然后再等待2秒钟,以便主机操作系统有时间拆除USB CDC驱动程序的堆栈。


2.上传应用程序

要将应用程序上传到EFM32或EZR32,必须使用[u]或[d]命令。按键后,使用终端软件内置支持XMODEM-CRC传输文件,可以使用任何终端软件,只要它支持XMODEMCRC传输即可。下图显示了使用Tera Term中的内置传输支持传输文件的示例。


图2.1 在Windows 7上使用带有Tera Term的XMODEM-CRC传输文件


2.1创建与Bootloader一起使用的应用程序

使用引导加载程序上传应用程序有两种可能性:破坏性和定期上传。破坏性上传将覆盖引导加载程序。在这种情况下,创建应用程序不需要其他步骤;定期上传会保留引导加载程序,这允许使用引导加载程序进行将来的升级。对于使用引导加载程序的应用程序,必须使用起始地址0x4000创建它们。原因是引导加载程序本身占据了该地址下方的闪存区域。要实现此目的,必须从默认的闪存起始地址0x00更改链接器文件。


2.1.1使用IAR创建应用程序

要使用IAR创建应用程序,请使用项目包含的链接器文件。这将为二进制文件设置正确的起始地址,在项目选项菜单中,选择[Output Converter]和[Generate additional output],再选择[二进制]输出格式,生成的二进制文件可与UART Bootloader一起使用。


2.1.2使用Keil uVision 4 / MDK-ARM创建应用程序

要使用Keil uVision 4 / MDK-ARM创建应用程序,必须先更改项目的目标设置。在选项对话框中,将[IROM1]更改为[0x4000]的开头并从size字段中减去[0x4000]。要生成二进制输出文件,可以使用命令行实用程序fromelf.exe,该实用程序通常安装在C:\ Keil \ ARM \ BIN40 \ fromelf.exe下。


图2.2 设置Keil uVision 4 / MDK-ARM

2.1.3使用Simplicity Studio创建应用程序

要使用Simplicity Studio创建应用程序,请更改项目的内存布局设置,在[属性]> [C / C ++构建]> [设置]> [工具设置]> [存储器布局]对话框中:

1)选中[覆盖默认闪存选项]。

2)将[ORIGIN]更改为[0x4000]的开头。

3)从长度字段中减去[0x4000]。

图2.3 设置Simplicity Studio

这样,应用程序将在内存中的引导加载程序之后启动。


2.2非破坏性应用程序上传

[u]命令将上传应用程序而不覆盖引导加载程序本身。使用终端软件将应用程序二进制文件传输到芯片,完成上传后,您可能希望通过计算上传二进制文件的CRC-16来验证正确性,这可以通过验证应用程序和校验命令来实现。要从引导加载程序启动应用程序,请使用引导命令。


2.3破坏性应用程序上传

[d]命令将启动破坏性上传。使用终端软件将二进制文件传输到芯片,破坏性上传与常规上传的不同之处在于它会覆盖引导加载程序。如果不需要引导加载程序这或者上传新的引导加载程序,则可以覆盖引导加载程序占用的闪存。完成上传后,您可能希望通过计算CRC-16校验和来验证正确性,这可以通过verify flash content命令来实现。要启动应用程序,可以使用reset命令。


2.4写入用户信息页面

使用[t]命令可以将数据写入用户信息页面,使用终端软件将用户数据传输到用户信息页面。


2.5写入锁定信息页面

使用[p]命令可以将数据写入锁定信息页面。使用终端软件将用户数据传输到用户信息页面,使用此命令可以锁定闪存中的页面以进行写入和擦除,但不保护内容,有关锁定位的详细信息,请参见参考手册。



图3.1 示例Tera使用引导加载程序版本/ ChipID和校验和命令的术语对话框


3.验证上传

XMODEM-CRC以128字节为单位传输数据。如果二进制文件的大小不是128字节的倍数,则终端程序将填充剩余的字节,有关详细信息,请参阅终端程序的文档。


4.杂项命令

4.1启动应用程序

没有通过调试将引脚拉高来启用引导加载程序一样,[b]命令将以类似的方式引导上传的应用程序。引导加载程序首先在Cortex-M3的矢量表设定到应用程序的基础上执行此操作。然后,它读出新向量表中的第一个字并相应地设置SP。最后,它将PC由向量表定义的值设置为复位,来执行向量复位。


4.2重置设备

[r]命令重置设备。如果在破坏性上传后发出此命令,则将启动新的二进制文件。如果在常规上传后发出此命令且调试引脚未拉高,则应用程序将启动。否则,引导加载程序将重新启动。


4.3调试锁

[l]命令将锁定调试接口。锁定后,将无法访问常规调试工具,只能通过调试接口擦除设备。在锁定调试接口之前,必须重置设备一次,如果锁定成功,此命令将返回“OK”,否则返回“Fail”; 如果调试锁定失败,请确保未连接DBG_SWDIO且DBG_SWCLK为高电平。


详细方案请参考该链接或联系代理商世强:

https://www.sekorm.com/doc/50771.html

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】EFM32系列低功耗32位MCU芯片加密详解

本文主要介绍以Silicon Labs EFM32系列低功耗32位MCU为核心的方案打造加密系统。

2017-10-27 -  设计经验 代理服务 技术支持 采购服务

【经验】防止32位微控制器EFM32™ Gecko嵌入式目标上的SystemView缓冲区溢出的方法

Silicon Labs的EFM32™ Giant Gecko GG11 32位微控制器入门套件都包含一个板载J-Link调试器,不仅可以调试和刷新嵌入式应用程序,还可以运行SystemView。本文将讨论防止溢出的基本步骤,并且描述防止溢出的最终方法。

2018-10-19 -  设计经验 代理服务 技术支持 采购服务

【经验】如何读取EFM32系列32位MCU产品ID码?

Silicon Labs推出EFM32系列32位单片机产品是基于ARM Cortex-M0+, M3+,M4+ 内核设计出来的高性能、低功耗32位微控制器,如在产品开发中特别功能需要获取该MCU产品ID来设置保护。那么EFM32系列32位MCU如何获取产品ID码?请看本文。

2018-01-17 -  设计经验 代理服务 技术支持 采购服务

华芯微特(Synwit)32位MCU选型表

目录- 32位微控制器   

型号- SWM19SC9T6-50,SWM241PBT7-80,SWM260PBT7-80,SWM181RCT6-50,SWM211,SWM21DC8U7-50,SWM211G6S7-65,SWM181C9T6-50,SWM241KBT7-80,SWM34SRET6-50,SWM21PG6S7-65,SWM34SVET6-50,SWM341RET7-50,SWM260KBT7-80,SWM320RET7-50,SWM201G6S7-65,SWM181DBU6-40,SWM211C8T7-50,SWM201C6T7-50,SWM341CET7-50,SWM190CBT7-50,SWM201,SWM320VET7-50,SWM320,SWM20PG6S6-65,SWM341,SWM241,SWM260,SWM181,SWM19SCBT7-50,SWM320CET7-50,SWM190,SWM32SRET6-50,SWM190RBT7-50,SWM241CBT7-50,SWM181CBT6-50,SWM20DC6U7-50,SWM21DK6U7-50,SWM341VET7-50,SWM260CBT7-50,SWM34SCET6-50

2022/8/30  - 华芯微特  - 选型指南 代理服务 技术支持 采购服务

【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求

SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。

2024-04-17 -  产品 代理服务 技术支持 采购服务

【应用】32位MCU SWM181用来驱动段码仪表盘屏幕,最高可以支持4COM*32SEGMENT

在两轮车客户群体当中,还有非常大一部分使用的是段码仪表盘屏幕,其中现在市场上多为使用液晶控制IC,与MCU进行8080通信来控制驱动屏幕,而华芯微特的32位 MCU SWM181作为一款屏幕驱动的专用MCU,内置了SLCD控制器,可以代替传统的液晶控制IC,使成本进一步降低。

2023-06-29 -  应用方案 代理服务 技术支持 采购服务

【产品】主频超过600MHz的32位微控制器HPM6300系列,采用小体积BGA封装,强大的DSP扩展能力

HPM6300系列MCU是上海先楫半导体科技有限公司推出的一款高性能、高实时、高性价比 RISC-V 内核的32位微控制器。HPM6300系列提供LQFP 和小体积 BGA 封装,简化用户板级设计,为工业自动化及边缘计算应用提供了丰富的算力和高效的控制能力。

2022-08-31 -  产品 代理服务 技术支持 采购服务

【技术】8位MCU与32位MCU的区别

对某类应用做产品定义和规划时,首要任务之一就是选择理想的处理器/控制器,但开发人员往往难以选择合适的MCU。本文是关于微控制器的技术文章,该文从基本差异、基准性能、应用适用性等角度详细地对8位和32位MCU进行了分析。

2016-07-01 -  技术探讨 代理服务 技术支持 采购服务

【应用】基于低功耗32位MCU EFM32G2X的智能温控器节能解决方案

采用Silicon Labs的ARM Cortex-M3内核EFM32是全球最低功耗的32位MCU,外设丰富,5大超低模式,非常适用于智能温控器。无线WIFI模块采用WGM110,具有卓越的射频性能,并可提供远程范围的稳定无线连接和安全性。

2019-07-30 -  方案 代理服务 技术支持 采购服务

【应用】低功耗32位MCU在智能安防无线报警系统中的应用

芯科高性能低功耗的32位微控制器EFM32非常适合于智能安防系统的应用,其EFM32JG系列内核采用运算性能突出的Cortex-M3设计,极大地缩短了智能安防应用中的算法处理时间,提高了系统的性能。

2019-09-03 -  新应用 代理服务 技术支持 采购服务

【IC】芯科科技新款32位MCU EFM32和EFM8功能升级,电流可低至1.03µA,小尺寸满足微型设备需求

芯科科技近期发布的新款32位MCU EFM32PG23和8位MCU EFM8BB50产品旨在通过更优化的设计架构来帮助开发人员加速产品原型设计。PG23和BB50不仅进一步扩大了Silicon Labs的MCU产品组合,并且利用小尺寸和低功耗设计满足各种微型、电池设备和物联网应用的需求。

2023-04-13 -  新产品 代理服务 技术支持 采购服务

【产品】超低功耗EFM32G880 32位MCU,具有ARM Cortex-M3内核CPU架构

Silicon labs推出的EFM32G880系列超低功耗32位MCU,系列下具体型号有EFM32G880F32,EFM32G880F64,EFM32G880F128。具有32/64/128KB三种可选的flash闪存存储,便于工程师快速擦写程序,8/16KB的RAM运存,多达86个普通I/O管脚。主要用于智能配件、报警和安全系统、工业和家庭自动化等领域。

2018-10-28 -  新产品 代理服务 技术支持 采购服务
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:32位MCU

价格:¥16.0735

现货: 5

品牌:SILICON LABS

品类:32位MCU

价格:¥17.4674

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:¥11.4284

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:¥12.6359

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:

现货: 0

品牌:SILICON LABS

品类:32 BIT MCU

价格:

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:¥11.4284

现货: 0

品牌:SILICON LABS

品类:32位MCU

价格:¥9.8488

现货: 21,867

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:MindMotion

品类:32位MCU

价格:¥5.9400

现货:19,996

品牌:兆易创新

品类:MCU

价格:¥7.0000

现货:16,740

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥51.1158

现货:15,887

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥61.8336

现货:10,400

品牌:中科芯

品类:32位微控制器

价格:¥8.5000

现货:10,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥69.9064

现货:7,680

品牌:MindMotion

品类:32位MCU

价格:¥2.3800

现货:6,427

品牌:RENESAS

品类:32BIT MCU

价格:¥135.5187

现货:4,320

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥80.8990

现货:2,880

品牌:TI

品类:MCU

价格:¥124.3000

现货:2,872

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

IC烧录代工及IC自动化烧录

拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面