重磅升级!STM32CubeProgrammer 2.21 解锁SWD多从机模式,开发效率再飙升!

作为STM32生态核心编程与调试工具,STM32CubeProgrammer再次迎来重磅升级,2.21版本正式发布!它进一步优化了用户体验,并支持最新款微控制器,让开发团队在同时应用不同系列的STM32产品时更加高效。ST在命令行界面(CLI)中新增了专属命令,可实现流程自动化,为高级用户解锁更便捷的操作体验;同时,新版本还支持最新款STM32微控制器,让工程师能够即刻启动基于新款MCU的项目开发。此外,新版本还为STM32MP21新增安全密钥配置功能,全面强化开发安全性,助力开发者社区更快、更稳健地打造全新应用。

核心新特性,解锁开发新可能

SWD多从机模式

新版本重磅推出串行线调试多从机模式(SWD Multidrop),基于经典SWD协议,支持单一线缆连接多个目标设备。例如系统以STM32U5为主控制器,搭配STM32WBA5实现无线功能,二者集成于同一块电路板时,可通过该模式共享同一调试端口。只需在STM32CubeProgrammer中修改TargetSel参数值,即可轻松在不同STM32设备间切换调试。温馨提示:因ST-LINK通过产品系列识别STM32微控制器,暂不支持识别同一系列的两个设备(如共享同一SWD端口的两颗STM32C0芯片)。

支持新款STM32WL3R

STM32WL3R正式发布后,STM32CubeProgrammer迅速完成适配支持,践行“让开发者快速基于新款微控制器开展工作”的承诺。作为STM32WL3系列面向遥控应用的衍生版本,STM32WL3R配备更多唤醒引脚,可满足遥控设备搭载多按键启动应用的需求;同时集成超低功耗无线电模块(10dB增益下仅需10mA电流),除兼容STM32WL3系列已支持的无线频段外,还适配遥控应用常用的315MHz频段,为遥控场景开发提供强力支撑。

支持STM32MP21的安全密钥配置功能

新版本为STM32MP21引入安全密钥配置功能,相当于为微处理器搭建“安全固件安装”屏障,有效保护知识产权,抵御恶意入侵与商业窃取风险。尽管其他工具也可实现该功能,但在STM32CubeProgrammer内直接操作,大幅简化了开发流程,尤其适合原型制作和开发阶段使用。ST已同步提供相关Wiki文档,助力开发团队快速上手配置。

支持STM32WBA5STM32U3的出厂复位选项字节功能

STM32CubeProgrammer 2. 21现已支持STM32WBA5STM32U3系列器件的出厂复位选项字节功能。正如STM32H5系列的该功能广受好评,出厂复位选项字节可让开发团队轻松执行器件出厂复位,方便共享微控制器或快速从一个项目切换至另一个项目。仅需简单几步操作,即可完成器件复位,确保用户顺畅运行全新的应用程序。很多客户都反馈该功能大大优化了他们的工作流程。未来ST还将继续将该功能拓展到更多的STM32器件。立即升级你的STM32CubeProgrammer,解锁高效、安全、灵活的开发新体验,助力每一个创新构想快速落地!

STM32 Flasher和调试器

STM32CubeProgrammer的核心功能是协助调试和烧写STM32 MCU。因此,它也包括优化这两个过程的功能。例如,2. 6版引入了导出整个寄存器内容和动态编辑寄存器的能力。以往,更改寄存器的值意味着需要更改源代码、重新编译并刷新固件。如今,测试新参数或确定某个值是否导致错误要简单得多。同样,工程师现在可以使用STM32CubeProgrammer一次性烧写所有外部存储器。但在以前,烧写外部嵌入式存储器和SD卡需要开发人员单独启动每个进程。如今STM32CubeProgrammer可以一次性完成。

开发人员面临的另一个挑战是解析通过STM32CubeProgrammer传递的大量信息。刷过固件的人都知道跟踪所有日志有多么困难。为此,我们带来了自定义跟踪功能,允许开发人员为不同的日志信息设置不同的颜色。它确保开发人员可以快速将特定输出与日志的其余部分区分开来,让调试变得更加直观而快捷。此外,它可以帮助开发人员使用与STM32CubeIDE一致的配色方案。STM32CubeIDE是STM32生态系统的另一个成员,旨在为开发者提供强大而免费的IDE支持

STM32CubeProgrammer

新版本的核心特性

支持新款MCU

新版STM32CubeProgrammer同步支持新的MCU系列。例如,2.16版新增对256KB的STM32U0的支持。STM32U0在待机模式下静态功耗仅16nA,是适用于入门级应用的全新超低功耗旗舰MCU。STM32CubeProgrammer 2.16还支持512KB的STM32H5,以及闪存容量较小的STM32H7R和STM32H7S,可帮助使用外部存储器的用户大大降低成本。

支持SEGGERJ-Link调试探头

为帮助开发人员优化工作流程,ST与SEGGER合作实现了对J-Link调试探头的全面支持。这意味着硬件烧录工具不再局限于此前只有ST-LINK模块才能实现的功能,SEGGER系统能够对内部和外部存储器进行编程,或调整读保护级别(RDP)。此外,将J-Link与STM32CubeProgrammer结合使用时,开发人员可查看和修改寄存器。自2.17版本起新增了生成序列号并在STM32CubeProgrammer中自动递增的功能,加强批量烧录多个STM32器件的管理。

许多STM32客户选择SEGGER调试探头,因为它能兼容更多MCU、运行速度更快,或是他们已经采用SEGGER的软件。因此,STM32CubeProgrammer可大幅提升J-Link的实用性,开发人员无需切换到其他ST软件即可完成更多工作。2.18版还新增了通过J-Link调试探头在STM32WB上安全安装蓝牙协议栈的功能,开发人员可以将SEGGER工具应用于更多场景,推动这些功能的广泛普及。

Apple silicon原生支持

本次升级对Mac开发人员意义重大——首次实现对Apple silicon的原生支持。我们注意到,许多开发人员仍依赖传统系统保障开发环境稳定性,因此此前暂未适配新架构。但随着苹果官方宣布macOS Tahoe将成为最后一款支持Intel Mac的操作系统,且macOS 27将终止Rosetta转译支持(该技术使Apple Silicon设备可运行Intel应用),此时推出原生支持至关重要。这一举措将确保迁移用户在未来数年都能在macOS上获得最佳的STM32CubeProgrammer使用体验。

增量编程功能增强

STM32CubeProgrammer 2.20版本在2.19版的增量编程功能基础上进行了重要升级,新增了对更多MCU的支持并优化了性能。在兼容性方面,开发人员现可在STM32WB5、STM32WB35、STM32G0B0、STM32G0B1和STM32G0C1系列MCU上执行增量编程操作。除错误修复外,2. 20版本还显著提升了性能。内部测试显示,1 MB固件在STM32H7上的完整写入需23秒,而采用增量更新时即使非连续写入两个存储扇区也仅需5秒。这种效率提升在反复调试时将产生显著的时间节省。

为开发者带来高度自动化开发体验

STM32CubeProgrammer 2.19引入了一系列自动化功能,可简化操作流程。例如,该工具现在可自动下载X-CUBE-RSSe文件,其中包含RSS扩展二进制文件的最新版本、选项字节模板以及STM32HSM-V2硬件安全模块的个性化数据文件。用户将在STM32CubeProgrammer安全编程部分的SFI/SFIx选项卡上看到相关消息,提示有新版本可以下载,同时还有一个选项卡会告知主要变更内容。由于这些安全库和功能具有高度敏感性,该特性可确保开发者的软件持续更新,以避免已知问题。

新版本还增强了序列号功能,支持用户选择采用大端格式或小端格式。大端格式模拟从左到右的排列方式(类似于大多数拼音文字语言的常规书写顺序),在处理网络地址时最为常见。而小端格式在嵌入式系统中更为普遍,这是因为将最低有效字节(LSB)存储在最低内存地址,可使资源受限的系统更高效地读取地址,比如,只需访问最低有效字节的操作就能更快获取信息。这也是大多数MCU默认采用小端格式的原因,STM32CubeProgrammer支持对这两种格式的选用。

同样,STM32CubeProgrammer 2.19在使用命令行界面时引入了增量编程功能,只自动更新闪存中发生更改的扇区。工程师无需将固件烧录到整个闪存,该工具会识别有更新的内存扇区,并只修改这部分内容。大多数STM32器件已支持该功能,ST还将持续增加对更多MCU系列的内存配置的支持。ST还推出多目标开发板调试认证功能。用户每次选择一个目标开发板,并可以在多个开发板间无缝切换。

导出选项功能

新版本还进行了多项性能优化,可提升用户使用体验,让STM32CubeProgrammer更易上手。例如支持导出STM32的选项字节。选项字节用于存储配置参数,包括读出保护级别、看门狗设置、电源模式等。MCU会在启动初期加载这些选项字节,它们存储在内存的特定区域,该区域只能通过调试工具或引导程序访问。

通过选项字节的导出和导入功能,STM32CubeProgrammer能让开发人员更便捷地配置MCU。2.17版本起,开发人员可使用ASCII格式编辑内存字段,大幅提升特定内容的可读性。而2.18版本引入了组合式选项字节视图,支持在同一行中查看和编辑多个选项字节,无需逐行滚动浏览详细列表。对于明确操作需求的资深用户而言,这种组合视图可显著缩短选项字节的修改时间。

ST还对用户体验进行了优化,例如新增项目模式,支持用户保存和恢复配置及连接设置、选项字节值、固件列表、外部闪存加载程序、安全固件更新(根安全系统扩展二进制文件)、STM32WB的协议栈安装设置以及自动模式参数。开发人员可通过导入和导出核心项目元素实现更高效的操作,将精力集中于代码编写,避免选项重复勾选或重复应用相同设置。

日语和中文本地化支持

为提升STM32CubeProgrammer的包容性,我们新增了中文和日语本地化支持。这延续了我们让整个STM32Cube生态更贴近当地开发人员的理念。尽管绝大多数以日语和中文为母语的用户都能熟练使用英语版工具,然而,鉴于我们在这些市场的深耕与承诺,我们也深知,将我们的解决方案本地化能为更习惯使用母语的教育用户、爱好者和专家打开便利之门。这正是我们此前推出中日双语版STM32 MCU/MPU开发者社区的原因,如今这一理念进一步延伸至STM32CubeProgrammer。

STM32上的安全门户

STM32CubeProgrammer是STM32Cube生态系统中安全解决方案的核心部件该实用程序附带Trusted Package Creator,它让开发人员能够将OEM密钥上传到硬件安全模块并使用相同的密钥加密他们的固件。然后,OEM使用STM32CubeProgrammer将固件安全地安装到支持SFI的STM32 MCU上。开发人员甚至可以使用I2C或SPI接口实现,这为他们提供了更大的灵活性。此外,STM32H73x、STM32H7Bx、STM32L5、STM32U5和STM32H5系列还支持外部安全固件安装 (SFIx),让OEM厂商可将加密后的二进制文件烧录至MCU外部的存储模块中。

X-CUBE-RSSE(根安全系统扩展二进制文件)

为便于更新RSSE(Root Security System binaries extensions,根安全系统二进制扩展)固件、STM32HSM-V2硬件安全模块个性化配置文件以及选项字节模板,这些组件现已通过X-CUBE-RSSE扩展包单独分发,并由STM32CubeProgrammer和STM32Trusted PackageCreater工具共同支持。因此,这些组件不再包含在CubeProgrammer的最新版本中,需单独下载。

安全管理器

自STM32CubeProgrammer 2.14和STM32CubeMX1.13版本起,安全管理器(Secure Manager)功能正式获官方支持。目前,该功能仅适用于全新的高性能MCU STM32H573v,该产品支持安全ST固件安装(SSFI),且无需额外配置硬件安全模块(HSM)。通过提供二进制文件、库文件、代码实现和文档等资源,安全管理器为STM32 MCU提供了一套完整的安全生态系统管理方案。开发人员可在STM32CubeMX中获得交钥匙型解决方案,并通过STM32CubeProgrammer完成固件烧录和调试。这充分体现了STM32H5硬件与安全管理器软件的协同效应,实现了“1+1>2”的系统价值。

STM32H5带来更多安全功能

STM32CubeProgrammer为STM32H5带来了更多安全功能。例如,该MCU支持在内部存储器(SFI)和外部存储模块(SFIx)上进行安全固件安装,使OEM能够借助HSM烧录加密固件。同样,在使用STM32Trusted PackageCreaterHSM时,该工具支持在新款MCU上生成证书。该工具还为配备2MB和4MB闪存的STM32U5系列增加了SFI和SFIx支持。

大幅优化SFI功能

STM32CubeProgrammer

2.11版本起,STM32CubeProgrammerSFI功能进行了大幅优化。例如,2.15版本新增了对STM32WBA5的支持。此外,我们还引入了图形用户界面,可直观显示地址和HSM信息。STM32Trusted PackageCreater的图形界面也在SFI和SFIx选项卡下采用了全新布局,便于用户在设置安全固件安装时查看所需信息。STM32Trusted PackageCreater还提供了各类选项字节的图形化展示,进一步简化了配置流程。

简化STM32MPx的安全秘密配置

2.12版本开始,STM32CubeProgrammer新增了图形用户界面,帮助开发人员为STM32MPx微处理器的安全秘密配置功能设置参数。该机制与STM32微控制器的安全固件安装功能有相似之处,它使用硬件安全模块存储加密密钥,并在烧录工具与设备之间进行安全通信。不过,鉴于STM32MPx微处理器的特性,需要配置的参数更多。STM32CubeProgrammer的图形界面现在能够将此前只在工具命令行版本中可用的设置选项直观呈现出来,加快了工作流程。

支持双重身份验证

STM32CubeProgrammer2.9版本开始支持双重身份验证系统,通过JTAG或引导加载程序为STM32WB上的蓝牙协议栈配置OEM的密钥。该功能使制造商能够保护其蓝牙协议栈防止最终用户随意更改协议栈。多数情况下,如果开发人员知道自己在做什么,他们就可以使用ST的安全固件更新机制升级新的蓝牙协议栈。但制造商可能会提供一个特定的环境,并希望对其进行保护。因此,双重身份验证系统会防止最终用户随意使用更新机制。ST已发布了AN5185应用笔记以提供更多详细信息。

支持PKCS#11

STM32CubeProgrammer从2.9版本开始为STM32MP1加密固件时支持PKCS#11。公钥加密标准 (PKCS)11,也称为Cryptoki,是一种在低级别管理加密过程的标准。PCKS#11标准化的API方便嵌入式系统开发人员使用相关机制,因而越来越流行。STM32MP1上,PKCS#11让工程师能够将私钥的存储和安全秘密配置(SSP)的加密过程进行分离。

SSP相当于MPU的安全固件安装机制。开发人员在将代码发送给OEM之前,会使用STM32CubeProgrammer通过公、私钥系统对机密OTP数据进行加密,确保第三方无法读取IP。在组装过程中,OEM使用包含受保护加密密钥的硬件安全模块(HSM)加载MPU机密数据,MPU会在内部对其进行解密。但此前,加密MPU机密数据的开发人员可直接访问私钥,而某些组织对这类关键信息的访问需要予以限制。借助新版STM32CubeProgrammerPKCS#11,即使开发人员在执行加密过程时,私钥也会始终隐藏在HSM中。

支持新系列MCU

STM32MP21支持

遵循惯例,新版STM32CubeProgrammer必然伴随对新STM32器件的支持。2.20版本新增对STM32MP21的完整支持。这款集成1.5 GHz Cortex-A35单核与Cortex-M33的MPU,配备摄像头接口,可在无需GPU支持复杂GUI的高性价比系统中实现计算机视觉应用。具体支持包括:STM32MP21一次性可编程分区烧录、PKCS#11加密固件支持,与意法半导体电源管理IC无缝兼容。简而言之,新版STM32CubeProgrammer使新器件与我们产品系列中的其他MPU保持一致。

STM32N6MCE加密支持

虽然STM32CubeProgrammer 2.18版已支持STM32N6,但2.20版新增对外部存储加密的支持。作为我们性能最强的STM32 MCU,也是首款搭载神经处理单元的产品,STM32N6 MCU虽配备创纪录的嵌入式RAM(4.2 MB),但未集成Flash存储器——因为工程师实际所需的存储空间远超芯片可容纳范围。但这意味着加解密操作变得更为复杂。为此,我们在STM32N6中引入内存加密引擎 (MCE)STM32CubeProgrammer可利用其实现对Flash存储器与SRAM数据的实时加解密。

STM32H5的功能集扩展

最新版STM32CubeProgrammer支持在STM32H573外部Flash存储器上使用安全管理器。STM32H5凭借其最强的Cortex-M33内核实现,已成为新一代主流STM32 MCU代表。STM32CubeProgrammer现已全面支持该系列前代产品。简言之,意法半导体持续在最新器件上提供全系列安全功能及多样化配置,确保工程师能第一时间从中获益。此外,2.20版本还支持STM32H5器件的出厂复位选项字节功能——只需单击几下(详见社区文档)即可将STM32器件恢复到出厂设置,极大简化了MCU在团队间或跨项目共享的流程。

STM32WL3, STM32N6, STM32C0, STM32H7R3/7S3/7R7/7S7

几乎每个版本的STM32CubeProgrammer都增加了针对当前最新MCU系列的支持,而2.18版本新增的器件尤为丰富。用户现在可以使用最近发布的STM32WL3STM32N6,以及配备64KB和256KB闪存的新款STM32C0系列器件。

STM32CubeProgrammer还为STM32H7R3/7S3/7R7/7S7系列、全系列STM32MPU及STM32U5提供了额外的功能支持。例如,STM32H7R/S系列MCU现已支持安全固件安装(SFI);STM32MP25新增图形用户界面功能,用于管理电源管理集成电路(PMIC)寄存器并将配置导出为二进制文件,显著提升了跨项目移植配置的便捷性;对于STM32U5,若开发人员因配置失误导致设备锁定,可通过该工具将选项字节配置恢复为出厂默认状态。

STM32C0, STM32MP25, and STM32WB05/6/7

从2.17版本起,STM32CubeProgrammer支持配备128KB闪存的STM32C0系列芯片。该工具还可识别集成的1.35TOPS NPU的STM32MP25,以及包括STM32WB05、STM32WB05xN、STM32WB06和STM32WB07在内的全系列STM32WB0产品。而对STM32WB0系列的支持在其发布后几周内就实现了,充分体现了STM32CubeProgrammer持续跟进新产品的能力,让开发人员能够尽快在最新的STM32芯片上进行固件烧录和代码调试。

STM32MP13上运行实时操作系统

MCU因资源有限,需要实时操作系统(RTOS),且事件驱动的范式在执行任务时需要高度的确定性。相反,MPU拥有更丰富的资源,能够更好地管理并行任务,因此采用多任务操作系统,例如ST的嵌入式Linux发行版OpenSTLinux然而,许多熟悉STM32 MCU的客户一直期望能在STMPU上运行RTOS作为替代方案。他们希望在享受MPU资源的同时,能够充分利用熟悉的RTOS生态系统,以及运行裸机代码带来的优化效果。

因此,ST发布了STM32CubeMP13套件,为在ST的MPU上运行实时操作系统(RTOS)提供了所需的工具。为确保这一计划落地,ST还对STM32Cube工具集进行了更新,确保开发人员能够对NOR存储器进行固件烧录。STM32CubeProgrammer通过支持一次性可编程(OTP)分区,使STM32MP13能够运行实时操作系统。

一般来说,MPU可以使用U-Boot之类的引导加载程序,安全高效地加载Linux内核。因此,引导过程的第一步是读取一次性可编程(OTP)分区,这是整个引导流程的基础。因此,当开发人员从多任务操作系统转向实时操作系统(RTOS)时,STM32CubeProgrammer必须支持对OTP分区进行编程,以确保能够加载目标操作系统。新版STM32CubeProgrammer充分展示出ST生态系统是如何通过协同工作推出新功能的。

支持STM32WB/STM32WBA

自2.12版本起,STM32CubeProgrammer为STM32WB系列带来了多项优化功能,引入了全新图形工具和更新的无线协议栈。例如,当工具检测到错误时会提供更清晰的指引,比如开发人员在启用防回滚功能的情况下尝试更新无线协议栈,却忘记加载旧版协议栈的场景。同样,新增的提示信息可确保用户了解协议栈版本是否与固件更新不兼容。STM32CubeProgrammer还提供了下载STM32WB补丁的新链接,并集成了实用技巧和操作指南,开发人员无需再费时查找相关资源。

STM32CubeProgrammer还支持全新的STM32WBA——首款基于Cortex-M33的无线MCU。这款MCU支持蓝牙低功耗5. 3和SESIP3级认证。它还配备了更强的射频模块,输出功率最高可达+10dBm,能够生成更稳定的信号。

STM32H5STM32U5

自STM32CubeProgramer 2.13开始支持新的STM32H5系列,包括从128KB闪存到2MB闪存,以及两者之间的所有型号。新版软件还为用户带来了调试身份验证和身份验证密钥供应等重要安全功能,这些功能在使用器件新的生命管理系统时至关重要。该特性还支持密钥和证书生成、固件加密和签名。随后,ST又增加了对512KB和4MB闪存的新款STM32U535和STM32U545的支持。这些MCU具备带密码的读保护(RDP)回归功能,可简化开发流程,并支持安全固件安装(SFI)安全编程。

此外,STM32CubeProgrammerSTM32U5xx系列提供了带密码的读保护(RDP)降级接口。开发人员可定义密码,将保护级别从关闭所有调试功能的2级降至仅保护闪存免受特定读取或转储操作的1级,或无任何保护的0级。这将极大简化原型开发流程。

STLINK-V3PWR

STM32CubeProgrammer 2.13还增加了对新型STLINK-PWR探头的支持,这是STM32器件功能最丰富的功耗测量单元和编程器/调试器。如果用户想查看能量图表并可视化电流消耗,他们必须使用STM32CubeMonitor-Power。而STM32CubeProgrammer将作为所有调试功能的接口,还可以与所有探头的接口一起工作,如SPI、UART、I2C和CAN。

支持文本模式

新软件对其命令行界面(CLI)进行了更新,以支持创建脚本。脚本管理器是应用程序的一部分,它不依赖于操作系统或其外壳环境。因此,脚本是高度可共享的。另一个优点是,脚本管理器可以保持与目标的连接。STM32CubeProgrammer CLI可在整个会话期间保持连接处于活动状态,无需在每条命令后重新连接。它还可以处理局部变量,甚至支持对这些变量的算术或逻辑运算。因此,开发人员可以创建强大的宏更好地实现复杂流程的自动化。为进一步增强STM32CubeProgrammer CLI的功能,脚本管理器还支持循环和条件语句。

统一的用户体验

STM32CubeProgrammer高度重视统一用户体验。STST-LINK UtilityDFU等实用程序的所有功能集成进STM32CubeProgrammer,使其成为嵌入式系统开发人员的一站式解决方案。ST还竭力将它设计为适用于所有主要操作系统,甚至集成了OpenJDK8-Liberica,以方便安装。在体验STM32CubeProgrammer之前,用户无需自己安装Java,也不用为兼容性问题烦恼。

滚动至顶部