【经验】简述32位MCU EFM32/EZR32的USB-UART引导加载程序的编程、验证、安全命令的使用
引导加载程序使用户能够通过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为高电平。
详细方案请参考该链接或联系代理商世强:
- |
- +1 赞 0
- 收藏
- 评论 0
本文由GHjames翻译自Silicon Labs,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】32位MCU LEUART位周期抖动大,该如何解决?
Silicon Labs 32位MCU EFM32,当基于32.768kHz时钟使用LEUART(@9600bps)进行通讯的时候,发现存约1%误码,原因是什么?如何解决?
设计经验 发布时间 : 2019-09-06
【经验】EFM32系列低功耗32位MCU芯片加密详解
本文主要介绍以Silicon Labs EFM32系列低功耗32位MCU为核心的方案打造加密系统。
设计经验 发布时间 : 2017-10-27
【经验】如何使用32位超低功耗MCU外设反射系统功能?
外设反射系统(PRS)是 Silicon Labs EFM32系列MCU专有的外设互联总线,它允许不同的外设无需CPU干预即可直接相互通信。
设计经验 发布时间 : 2019-09-02
雅特力(Artery)AT32全系列32位微控制器(MCU)选型指南(中文)
描述- 雅特力坚持自主研发,以科技创新引领智慧未来,专注于ARM® Cortex®-M4/M0+的32位微控制器研发与创新,提供高效能、高可靠性且具有竞争力的产品。自2018年正式对外销售至今,累积了相当多元的终端产品成功案例,广泛地覆盖工控、电机、车载、消费、商务、5G及物联网等领域,助力客户实现产业升级。
型号- AT32F413CCU7,AT32F437ZCT7,AT32A403ACGU7,AT32F405CCU7,AT32L021K6U7-4,AT32F421K6T7,AT32F437VMT7,AT32F425R8T7,AT32F437RGT7,AT32F423VBT7,AT32F423RBT7-7,AT32A403A 系列,AT32A403ACGT7,AT32A423RBT7-7,AT32A423CCU7,AT32F413CBT7,AT32F435CMT7,AT32F403ARCT7,AT32L021C4T7,AT32F435RCT7,AT32F435ZGT7,AT32F405CCT7,AT32F403ACET7,AT32F405 系列,AT32A423R8T7,AT32L021K8T7,AT32 WB SERIES,AT32A423CBT7,AT32L021F8P7,AT32F435CMU7,AT32F437VDT7,AT32F415KBU7-4,AT32F413CBU7,AT32F402CBT7,AT32F405KCU7-4,AT32F407RCT7,AT32L021G4U7,AT32F403ACGU7,AT32F425K8U7-4,AT32F402KBU7-4,AT32F425R8T7-7,AT32F415RCT7,AT32F423VCT7,AT32F402CBU7,AT32F423T8U7,AT32F425K6T7,AT32F435CDT7,AT32F405RBT7,AT32A403ARCT7,AT32F421K6U7,AT32F421G8U7,AT32F415RBT7-7,AT32F421F4P7,AT32A423CCT7,AT32 F SERIES,AT32WB415系列,AT32F413KCU7-4,AT32F425F6P7,AT32F423C8T7,AT32A403ACEU7,AT32F437VGT7,AT32F437ZMT7,AT32F423RCT7-7,AT32A423TBU7,AT32A423C8T7,AT32F421K8T7,AT32F435 系列,AT32F413C8T7,AT32F415RBT7,AT32F403ARET7,AT32F435CGT7,AT32A423K8U7-4,AT32A403ACET7,AT32F435VCT7,AT32A423C8U7,AT32F403ACGT7,AT32F421C4T7,AT32L021K6T7,AT32A423R8T7-7,AT32F403AVCT7,AT32L021F6P7,AT32F437ZDT7,AT32F415RCT7-7,AT32F435CGU7,AT32F415CCT7,AT32F405KBU7-4,AT32F407VCT7,AT32F405CBU7,AT32F415KCU7-4,AT32A423TCU7,AT32F407RET7,AT32 A,AT32A423CBU7,AT32F435RMT7,AT32L021K8U7,AT32L021,AT32 F,AT32 L,AT32A423KBU7-4,AT32F423C8U7,AT32F423 系列,AT32F435RDT7,AT32L021F8U7,AT32F425K8T7,AT32F405CBT7,AT32A403AVCT7,AT32F421K8U7,AT32A403ARET7,AT32F423TBU7,AT32F421K6U7-4,AT32F421F6P7,AT32F403A,AT32 L SERIES,AT32A403ACCU7,AT32F415CBT7,AT32F415R8T7,AT32F425F8P7,AT32A403A,AT32F437ZGT7,AT32F423R8T7,AT32F425C6U7,AT32A423T8U7,AT32F421K4U7-4,AT32A,AT32F437RCT7,AT32F423CCU7,AT32F402 系列,AT32F425 系列,AT32F402RCT7,AT32L021C8T7,AT32F403ARGT7,AT32WB415CCU7-7,AT32F415CCU7,AT32A403ACCT7,AT32F403AVET7,AT32F435RGT7,AT32F435VMT7,AT32F421C6T7,AT32A423VBT7,AT32L021K4U7-4,AT32L021K4T7,AT32F423TCU7,AT32F405RBT7-7,AT32F413KBU7-4,AT32F435ZCT7,AT32 A SERIES,AT32F423CCT7,AT32WB415,AT32L021F4P7,AT32L021G8U7,AT32F407VET7,AT32F407RGT7,AT32F403ACCU7,AT32L021K6U7,AT32F423CBU7,AT32F403A 系列,AT32A423RCT7-7,AT32F435VDT7,AT32F415CBU7,AT32L021K8U7-4,AT32A423VCT7,AT32L021F6U7,AT32A403AVET7,AT32 WB,AT32F413 系列,AT32F425K6U7-4,AT32F425C6T7,AT32F421G4U7,AT32F407 系列,AT32A403ARGT7,AT32A423KCU7-4,AT32F421F8P7,AT32F423CBT7,AT32F413RCT7,AT32F425R6T7-7,AT32F413,AT32F423V8T7,AT32F415,AT32家族,AT32F437VCT7,AT32F423KCU7-4,AT32F402CCT7,AT32F421K4T7,AT32F435CDU7,AT32F425C8U7,AT32F425R6T7,AT32F423RBT7,AT32A423 系列,AT32F423K8U7-4,AT32F421,AT32F402,AT32F421 系列,AT32F435VGT7,AT32F405,AT32A423RBT7,AT32L021C6T7,AT32F407,AT32F402CCU7,AT32F421C8T7,AT32F435CCT7,AT32F415 系列,AT32F403AVGT7,AT32F405RCT7,AT32F423R8T7-7,AT32F403ACCT7,AT32F435ZMT7,AT32A423V8T7,AT32F413RBT7,AT32F405RCT7-7,AT32F415C8T7,AT32F402RBT7-7,AT32F435,AT32F437,AT32F407VGT7,AT32F435CCU7,AT32L021G6U7,AT32,AT32F402RCT7-7,AT32F403ACEU7,AT32F415K8U7-4,AT32L021K4U7,AT32F415R8T7-7,AT32F437RDT7,AT32F423RCT7,AT32F437 系列,AT32F402KCU7-4,AT32F402RBT7,AT32F423,AT32F425,AT32F413CCT7,AT32A423RCT7,AT32F421K4U7,AT32F421K8U7-4,AT32L021F4U7,AT32F425C8T7,AT32F437RMT7,AT32A403AVGT7,AT32F421G6U7,AT32L021 系列,AT32F423KBU7-4,AT32F435ZDT7,AT32A423
华芯微特(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
【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求
SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。
产品 发布时间 : 2024-04-17
华芯微特(Synwit)32位MCU选型指南
目录- 公司介绍&产品分类 TFT-LCD 显示和人机界面(HMI)用微控制器 电机专用微控制器 大家电 & 工控通用微控制器 32位微控制器选型表
型号- SWM34X,SWM320 SERIES,SWM 201C6T7-50,SWM19SCBT6-50,SWM190 SERIES,SWM 201 系列,SWM32SRET6,SWM181CCT6-50,SWM260KBT7-80,SWM190KBT6-80,SWM201G6S7-65,SWM 201,SWM 201G6S7-65,SWM 19S 系列,SWM201,SWM260 SERIES,SWM320,SWM19S,SWM160,SWM20PG6S6,SWM20D,SWM32SRET6-50,SWM 20PG6S6-65,SWM 190,SWM181CBT6-50,SWM260CBT7-50,SWM260PBT7-80,SWM 260 系列,SWM32S,SWM181 SERIES,SWM181RCT6-50,SWM20P,SWM260CBT7,SWM160C8T7-50,SWM190CBT6-50,SWM20G,SWM 190 系列,SWM 260,SWM 181,SWM201 SERIES,SWM320RET7-50,SWM181DBU6-40,SWM181CBT6,SWM160 SERIES,SWM 341,SWM 341 系列,SWM190 系列,SWM201C6T7-50,SWM 181 系列,SWM320VET7-50,SWM341,SWM190RBT6-50,SWM20PG6S6-65,SWM260,SWM181,SWM320CET7-50,SWM190
高效能 Cortex® -M4 & M0+ MCU 32位微控制器的创新领导者
型号- AT32F423F,AT32WB415,AT-SURF-F437,L021,AT32F455,AT32F413F,AT32A403AF,AT32F435F,AT32F413,AT32F435,F403A,AT32F415,AT32F405F,AT32F437,AT-LINK-ISO+,WB415,AT32A403A,AT32F437F,AT32,F421,F423,F425,AT-START,F405,AT-LINK+,F407,AT32L021,AT-LINK-EZ,AT-LINK-PRO,AT-LINK,AT32F421,AT32F423,AT32F402F,AT32F402,AT32F425,AT32F405,AT-LINK FAMILY,AT32F407,F435,F413,F415,F437,AT32F407F,AT32F403A,AT32A423,AT32系列,AT32F403AF,AT32A423F
【IC】芯科科技新款32位MCU EFM32和EFM8功能升级,电流可低至1.03µA,小尺寸满足微型设备需求
芯科科技近期发布的新款32位MCU EFM32PG23和8位MCU EFM8BB50产品旨在通过更优化的设计架构来帮助开发人员加速产品原型设计。PG23和BB50不仅进一步扩大了Silicon Labs的MCU产品组合,并且利用小尺寸和低功耗设计满足各种微型、电池设备和物联网应用的需求。
新产品 发布时间 : 2023-04-13
【技术】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 EFM32PG22C200F64IM32助力汽车仪表盘设计,功耗仅26μA/MHz
汽车仪表盘通过安装在车上各部位的传感器数据汇集到仪表盘上显示出来的。主要有发动机转速、车速、燃油位等相关信息,因为处理信息的复杂度及安全性的要求,对主控制芯片有较高的要求。本项目需要一款高算力低功耗的MCU,本文推荐芯科的控制器方案。
应用方案 发布时间 : 2022-12-11
使用32位MCU EFM32在调试窗口查看间接寻址寄存器(比如USB或者RTC寄存器)时,寄存器值似乎和写入这些寄存器的设置值不一致,为什么?
SimplicityStudio目前不支持以间接访问方式对这些寄存器的访问,如果需要调试这些寄存器,需要把这些寄存器读入到变量,然后在调式监察窗口查看这些变量的值。
技术问答 发布时间 : 2017-05-10
【产品】超低功耗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
【产品】节能型EFM32 32位微控制器击败现有的低功耗MCU替代品的几大因素
Silicon Labs的EFM32™32位微控制器(MCU)系列是世界上最节能的微控制器,特别适合用于低功耗和对能源敏感的应用,包括能源,水和燃气计量,楼宇自动化,警报和安全性以及便携式医疗/健身设备。 由于出于访问和成本的原因,通常无法更换电池,因此此类应用需要在没有外部电源或操作员干预的情况下尽可能长时间地运行。
新产品 发布时间 : 2020-07-16
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论