你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32Cube工具,覆盖开发全过程

[复制链接]
STMCU 发布时间:2020-5-27 10:19
STM32Cube 家族的软件工具,从选型到开发/调试,到代码二进制烧录,选项字节操作,到运行监测,覆盖了全部的开发过程。它们各自有功能侧重,也有功能重叠,但是合在一起,就提供给STM32开发者,一个无缝的开发平台。

11.jpg

前面三个,STM32CubeMX,STM32CubeIDE、STM32CubeProgrammer,更加偏向开发的通用性。即,无论你的应用使用哪颗STM32系列,用于什么开发,都会用上的工具。

其中STM32CubeMX年岁最久,也是被最广泛使用的。它集成了芯片选型、引脚分配和功能配置,中间件配置,时钟配置,初始代码和项目的功能。
STM32CubeIDE,是今年4月份最新推出的,ST原厂开发和支持的IDE。一方面它继承了以前Truestudio的那一套基于Eclipse CDT 开源框架的开发、调试环境,支持众多Eclipse插件、拥有更高级的代码检阅、调试功能;一方面,把STM32CubeMX给集成了进来,作为和其他厂家IDE最大的一个区别亮点。
虽然CubeIDE可以在开发过程中,把代码烧写到STM32中进行调试,但是对STM32的片上闪存、片外闪存,选项字节的各种读、写、擦除操作,支持最到位的还是属STM32CubeProgrammer。

其中STM32CubeMX和STM32Cubeprogrammer,出来对所有STM32芯片系列,和所有应用的通用支持之外,还有一些对特定应用的支持,比如STM32Cube.AI就是基于STM32CubeMX的插件功能,来把训练好的模型部署到STM32上;还比如在安全固件升级和安全固件安装,即SBSFU和SFI操作里,STM32CubeProgrammer就启动了代码加密,HSM实例化等功能。

因此,前三个工具,除了它们的通用性外,还有应用相关的特性。

后面三个STM32CubeMonitor的变种,一个是RF,专门支持STM32的无线系列,现在是STM32WB产品。包括做用户应用、RF stack,FUS本身的OTA,测试两个WB板子之间数据收发误帧率,对BLE和OpenThread设备,收发ACI命令,进行快速的应用原型开发。

第二个,UCPD是专用于配置、监测、和分析TypeC和Power delivery应用

第三个,Power,用于低功耗测量的,需要搭配ST的PowerShield板工作。显然后面三种PC工具,都是和具有应用相关。
我们在第一期的介绍中,不会具体来讲某个工具如何使用,而是给大家一个总的picture,让大家知道我们的STM32Cube 工具有哪些,分别是做什么。具体工具的使用,我们会结合具体芯片上的某个主推应用来在后续几期来讲解。

通用功能

一、STM32CubeMX通用功能:从选型到初始工程建立

我们先来回顾一下STM32CubeMX的通用功能。以2019年7月,刚刚推出的STM32CubeMX版本5.3为例。

22.jpg

STM32CubeMX集成了STM32Finder,因此可以在此进行芯片的选型或者评估板的选择。在MCU/MPU选型的页面,除了经年常用的根据内核、产品线、外设、flash/ram存储空间大小,筛选目标芯片之外,随着STM32对GUI和AI的支持,根据所用AI模型,压缩比;根据GUI应用中要支持屏幕的像素尺寸、所采用的存储功能拓扑结构,都可以作为目标芯片筛选的输入参数。MCU交叉选型,是最近新添加的功能。     当要把手中存量的非STM32项目切换到STM32平台,这个功能可以帮助你选择合适的STM32芯片来替换当前芯片。
GUI和AI选型,我们会在对应的GUI和AI应用中,结合STM32CubeMX的使用来具体讲解。  
芯片选好后,要进行开发的下一步就是对芯片引脚的功能进行配置。由于STM32的每个GPIO都被多个外设功能复用,并且同一个外设功能还可以映射到不同GPIO,因此当引脚资源比较紧张,这里的引脚分配工具可以帮助用户在多个选择中进行分配。某个引脚用于什么功能分配好了,比如PD9用于UART3的接收引脚 ,那么UART3的具体配置,比如波特率、采用同步模式还是异步模式,以及相关中断、DMA都以在此以图形界面的方式进行配置。
STM32支持丰富的开源和ST自主知识产权中间件,比如来自开源社区的FreeRTOS,FatFS,mbedTLS;ST自己的USB主机和设备协议栈,TouchGFX等。
因此除了对外设各种功能的工作模式和参数进行配置, 当我现在的应用需用用到FreeRTOS,我不仅可以勾选并使能上该组件,还可以对FreeRTOS进行配置,比如内核配置可以设置是否支持抢占、系统嘀嗒的间隔;可以在这里以图形化界面的方式创建信号量、互斥量、创建任务等。所有这里的配置,都会影响到最后产生的初始化代码。
(如何使用和配置FreeRTOS、USB协议栈这样的中间件,根据大家的需求反馈,后续会考虑推出具体讲解课程)
STM32Cube不仅是一个包罗万象的配置工具,它也是一个开放的工具。在目前最新的5.3版本,我们可以看到它已经支持若干来自ST的功能插件,比如X-Cube-AI,X-Cube-MEMS。关于AI这个插件的使用,会在十月份推出相关技术视频,请大家留意。如何使用MEMS插件,在我们的STM32 IoT课程系列的第三部分:节点端项目开发,有详细介绍。
最后一切配置完成,就可以在用户指定的路径生成出初始化代码和项目工程。这就是胶片中左面部分的整个配置流程,从选型,到最后的初始化项目生成。
在进行芯片选型时,对应的数据手册、应用文档随着显示,可以一键下载到固定目录。同样,各STM32系列对应STM32Cube MCU固件包,ST自己的功能插件,甚至STM32CubeMX工具本身,它们的新版本,都可以在STM32CubeMX里设置来自动联网检查,并且提供给用户一键下载。这是非常便利用户的一个小功能。

CubeIDE

二、STM32CubeIDE : 包罗万象 + 开放

STM32CubeIDE,是ST今年,2019,4月份,推出的STM32Cube工具家族的最新成员。是ST开发、维护并支持的原厂IDE。一方面,它基于Eclipse的CDT框架,集成了GCC、GDB等免费的编译器、链接器;一方面它通过Eclipse插件接口,开放对众多第三方功能插件的支持。

33.jpg

STM32CubeIDE的前身来自被ST收购的TrueStudio,它在代码浏览、查看,高级调试、诊断分析上有很多好用的小功能。我们后续会结合具体的芯片,比如G0和L4上的具体应用案例来展开。
STM32CubeIDE目前集成了STM32CubeMX,未来还将把STM32CubeProgrammer集成进去。目前的STM32CubeIDE作为一个完整独立的集成开发环境,是可以烧录应用二级制到目标STM32芯片中的;未来STM32CubeProgrammer的加入,会从对STM32的选型字节、片内、片外闪存的便利读、写访问来进一步加强。因此我们说它是个包罗万象、all-in-open的原厂支持的开发环境。同时Eclipse插件接口又体现了它的开放性,即:胶片里从插件接口出来的三条示意性的箭头。
举个例子,现在我安装了IAR的插件管理器,然后由此再导入IAR的编译和链接功能。这样我就可以在项目开发的时候,一方面使用STM32CubeIDE更加好用的代码浏览、查看功能;一方面使用IAR专业的高效编译、链接服务。Eclipse生态圈里还有很多好用的功能,我们鼓励大家把自己喜欢的插件集成进来,并分享使用心得给到大家。

软件下载
• STM32CubeMX
• STM32CubeIDE
• STM32CubeProgrammer
• STM32CubeMonitor-PWR
• STM32CubeMonitor-RF
• STM32CubeMoitor-UCPD

CubeProgrammer

三、STM32CubeProgrammer通用特性:不仅仅是四合一

44.jpg

STM32CubeProgrammer在STM32Cube工具家族里,资历比不上STM32CubeMX这个老大,但是也推出了快两年时间。它的推出是为了一站式解决STM32烧片需求。首先要澄清一下,这里说的“烧片”,不是专业的一拖几的量产烧录工具,另外这里的烧片,也不仅仅是烧写STM32的片上闪存。

首先,它集合了以前若干年他们用到的几个分散工具:STVP,STLINK-Utility,Flash Loader,DFUSE Demonstrator。也就是说,它可以通过目标STM32的JTAG/SWD等调试接口,也可以通过UART、USB通信接口来烧录目标芯片。通过调试接口,可以烧写空片;通过通信接口烧写,需要目标STM32里面有对应的bootloader,可以是来自系统闪存里的出厂固化好的bootloader,也可以是来自用户闪存上自己编写的bootloader。 选项字节的设置、修改,也可以在这里通过图形化界面,直观地操作。片外flash的烧写,STM32CubeProgrammer支持ST原厂评估板上的各种板载存储器,也通过开发的接口,可以让用户自己编写flashloader来控制自己定制版上的各种闪存。

STM32出厂就固化在系统闪存里的bootloader,除了刚才提到的uart和usb,还支持i2c、spi、can等通信接口。但是之前除了AN2606文档里列出了通信API,没有支持I2C、SPI的上位机,需要客户自己根据通信API来开发。现在的STM32CubeProgrammer就集成了支持i2c、spi、can通信的上位机功能。STM32CubeProgrammer是运行在PC机上,PC机器并没与i2c、spi、uart这些端口啊,如何和目标STM32通信?这就要请出我们下一个工具,STLINKV3。在此之前,关于STM32CubeProgrammer再多说一句,除了在这里列出的以图形界面提供给用户的通用烧片功能,它的命令行提供更多的功能,比如对STM32WB的FUS、RF stack的烧写、更新;对STM32WB中特殊功能CKS的秘钥安装。在后续专门的蓝牙应用中,我们会来具体介绍。

STLINKV3

四、STLINKV3:STLINK家族新生代

STLINK大家已经很熟悉了,从最早的stlink,到增加了SWV和带隔离功能的v2,然后是v2-1,-A,-B等变种。它们出现的形式,一个是单独模具的小白盒子,更多的是集成在ST原厂出品的各个STM32评估板上。

55.jpg

去年推出的STLINKV3是V2的升级版,是前者的一个超集。v2有的功能它都有,v2没有的功能,它也有。
首先是下载速度更快。stlink和PC是通过usb连接,以前stlinkv1、v2都是使用F103实现,采用的是F103的全速USB模块;现在stlinkv2使用STM32F7实现,采用的是高速USB模块,从而实现了更快速度的传输。

另外,以前的stlinkv1/v2,逻辑上除了调试功能外,还兼具USB转串口的uart bridge功能,stlinkv3在uart bridge的基础上,增加了i2c/spi/can bridge,这样搭配STM32CubeProgrammer,就是一个现成的i2c/spi/can/uart/上位机,和出厂固化在STM32系统闪存里的i2c/spi/can/uart/usb bootloader可以无缝完美对接。

当然,用户还可以实现自己的上位机,不一定使用ST的STM32CubeProgrammer。因此,我们也提供了操作STLINK v3上各种bridge的C++源文件,以及相应例程;方便用户集成到自己开发的上位机中。

最后,stlinkv3也有多种物理形式出现,一个是胶片中这种单独磨具的小盒子,一种是直接集成在开发板上的F7芯片形式;还有一种是带1.27毫米间距14引脚规格连接器的STLINKv3-mini。

五、STLINKV3 + STM32CubeProgrammer

这里是把STLINKV3和STM32CubeProgrammer搭配起来使用,作为i2c接口上位机的例子。
稍微说明一下,bridge功能在STLINK-v3的扩展板上实现,把对应跳线和nucleo-L452板子上L452 I2C接口连接;STM32CubeProgrammer上选择I2C连接,就可以和L452上的i2c bootloader通信了。

66.jpg

CubeMonitors

六、STM32CubeMonitors:应用开发和分析的好帮手

作为应用在STM32里面运行时的监测工具,STM32CubeMonitor家族,目前有三个,Pwr是用来测量低功耗应用下功耗的,动态测量范围可以低至100nA到50mA;RF是用于带无线模块的STM32应用调试的,现在支持的是STM32WB 套件板,可以用作STM32WB设备的OTA,作为上位机发送BLE、thread命令,做快速原型开发;UCPD是用于typeC上PD应用的配置和监测。
这三个PC端工具,和STM32CubeProgrammer一样,除了用户图形界面外,还支持命令行,并且它们都搭配ST的硬件板来使用。由于它们都偏向于特定应用,我们会后续根据大家的反馈和要求,做详细介绍。

77.jpg

软件下载
• STM32CubeMX
• STM32CubeIDE
• STM32CubeProgrammer
• STM32CubeMonitor-PWR
• STM32CubeMonitor-RF
• STM32CubeMoitor-UCPD


收藏 9 评论10 发布时间:2020-5-27 10:19

举报

10个回答
mikecai 回答时间:2020-5-27 10:49:02
值得收藏
jason-366967 回答时间:2020-5-27 18:24:28
不错不错
dbg# 回答时间:2020-5-30 10:11:00
很好!再改进点更好。
jys201801 回答时间:2020-5-30 13:44:25
非常不错  
hujjj 回答时间:2020-5-30 18:31:59
好资料,收藏备用。
likang1202 回答时间:2020-5-30 19:37:25
赞一个
数码小叶 回答时间:2020-6-2 13:54:01
这一篇讲清了几个开发工具之间的联系,很详细
lenghanbing444 回答时间:2020-6-8 11:17:13
好资料,收藏备用。
ldptest 回答时间:2020-6-8 14:33:12
前面三大件还是比较清晰的。
后续众多的插件介绍得少多了。
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版