前言 我在本文不会去讲解过多的安装步骤,因为所有的软件都不需要破解,只需要选一下安装位置然后再一直下一步就可以了,本文主要介绍STM32有哪些开发方式,我们怎么去选择些开发方式。而且这些软件的安装方法网上一抓一把,自己参考一下就行。- T. Z* w! M$ U# y1 y& `9 m STM32L5开发环境简介" e' L3 C Y* d- K; ^5 C% \ 开发板 本系列笔记采用的STM32型号为STM32L552ZET6,用的开发板是ST官方给的推荐产品,Nucleo-144 for ST32L552,可能很多人疑惑为什么要去看STM32L5系列的板子,目前市面上应用最多实际上STM32低功耗系列芯片更多采用的是L4系列的芯片,L4凭借着价格低廉,功耗极低和M4的内核,成为了不少厂家的首选芯片,虽然大家都喜欢用,但L5相较于L4,具备了PSA2级认证的安全性,我刚看到L5的时候,看到是M33的内核,我其实第一反应是一种接近于M3内核的东西,打心底其实产生了排斥,但是,上次出差去和ST的开发人员聊了以后,才知道M33是一种全新的内核,是为了更高的安全性去做的一种内核,当时他们问我,如果你们的开发人员离职后还能不能轻易破解你们所制作的产品,这一句话把我问住了,我不得不承认熟知所有开发协议和加密协议的开发者未必不能轻易破解我们的产品,这让我对一个产品的代码安全性开始有了新的重视。所以我决定在STM32L5系列中去寻找属于我的答案。7 B; B! }2 b2 c: q- \- p - X$ `5 v2 N4 n/ f3 t' m" E2 F 开发所用IDE STM32的开发方式其实是很多的,本系列文章会采用STM32cubeide+STM32cubemx+vscode的一个开发模式,这种方式的好处在于配置方便,开发环境容易搭建,不需要进行破解,不过stm32cubeide据说并不是官方开发的ide,不过我用了之后感觉还行。就是代码看着不太舒服,编译效率不高,所以修改代码主要在vscode上进行。, {. ?, r: q; W; J 8 w. W; Z& D! ~! N+ O 图形化编程软件! w5 {# s3 D4 k% i, M 常用STM32的人就算没用过也听过的软件,我以前对这个软件其实是很排斥的,主要是我看到网上一群人指出这个软件有这样或者那样的问题,其本身也许是存在一些BUG ,不过先用其生成配置,有问题了再去做一定的修改到是不错的选择。 L5开发与其他系列的区别主要是多了trustzone功能,它能保证安全的代码运行环境,后面我会单独写一篇文章介绍trustzone。 + y5 U" I' n. E+ N5 L; v9 H 编程所用编辑器 vscode嘛,大家懂得,vs的轻量版,好用没话说。+ q9 i4 ?5 P2 o" B& e( y STM32cubeide 下载在ST官网的stm32cubeide下载页面(点我跳转)就可以下载,安装一直往下点就行了,免费的也不需要破解,官网上就能下载,比较烦的是随着ide版本升高,会强制升级你的ST-LINK固件,同样的程序在不同版本下有可能不能运行,所以一旦开始一个工程,不推荐更换ide版本。% }6 q- j. R% C% m6 J+ m' p/ D4 u STM32cubemx 先给下载链接:STM32cubemx官网下载地址(点我跳转)+ U9 M8 }, H$ w+ Q 本来以为是给新手用的神器,后来发现其实如果不能自己吃明白STM32的话,用起来会有诸多问题,有利有弊的软件。里面会附带很多官方例程,因为是以压缩包直接存在本地,所以比那让人头疼的keil网站链接要好办一些。 0 F% _5 X8 j+ ]; @7 G% _ vscode) T3 R( h! s* {* i 下载链接:vscode官网下载地址(点我跳转) stm32cubeide看代码舒适不是很舒服,没有太多的颜色区分,不能帮助用户进行代码格式优化,没有与git的联动,不能进行批量的更换以及局部替换操作,总体来说就是写起来很不舒服,所以修改代码的时候采用vscode进行修改,修改完后进行保存即可同步到stm32cubeide. st-link unity3 s, P4 A' U/ s stm32的烧录软件,一般清除flash的时候用,也可以用来看flash的值。下载资源在我上传的资源里有。不过我现在更青睐program# J9 P3 c1 q% Y) z) `! Z 2 Y& t* w. X$ B2 | stm32cubeprogram8 Q7 X) d, |# c9 w. v! Z STM32cubeprogram下载地址:STM32cubeprogram官网下载地址(点我跳转)) f4 ~( j! J8 {* Z. }- k STM32的烧录用软件,我用的不多,好像比unity高级。所以我想以后用这个。4 \$ a: ^, S% ?+ ~ 4 p) `* D! X, O$ n1 Y" N( [# f8 r 其他STM32开发工具组合' z; ~, B, m% X$ c7 I" A; L keil+stm32cubemx. s' [8 r' Q7 |. d) `" e0 c 十分常用的开发组合,经常使用keil的人推荐使用这种,我是蛮久不用keil了,不过之前用的时候给我的感觉还不错,不过编译效率也不高,不过据说现在有办法优化。 # H+ a! ]* u$ S2 ^$ g vs+gdb+stm32cubemx 我大学一直在用的组合,图像化调试是真的牛皮,变量值随时修改,确实舒服,而且vs嘛,各种插件分析图爽的一批,不过就是gdb破解比较麻烦,而且和stm32cubemx的联动做的不是很好,而且vs太大了,不太喜换。 8 }( r3 E$ R8 Z* \! K7 ? vscode+platform. z( v! B$ o$ O W! m 这个我用的不太多,大家可以尝试一下,我不太清楚是否支持l5系列,以前装过,不过没有正式使用过/ g+ M! F* F8 {2 e + }2 |+ c$ F& x; x& D) ]& U arduino+vs2 J4 Y6 {/ x# v1 V$ M, ~% o; Z3 z vs配合arduino也可以进行开发,不过不推荐,因为arduino对STM32进行了很多层的封装,效率低而且对开发者没有太多好吹。- a1 _: m+ D2 ` T micropython 把STM32主控刷固件后用python进行编程,不适合做大项目,我有时会用来验证方案可行性,验证可行后再用C++完成项目。 ( |0 i+ w6 X7 ]# C3 Y6 f! P, V |
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32L5 系列微控制器和 TrustZone® 开发入门
STM32CubeL5 TFM 应用程序入门
STM32CubeIDE 中基于 STM32L5 系列的项目入门
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32U5对比STM32L5有 哪些更新?
STM32L5 中如何关闭 TrustZone ?
修改STM32L5的存储空间安全属性的设置
使用STM32L5的OTFDEC和ICACHE功能实时高效运行片外Flash中的加密代码
使用STM32L5 TrustZone特性控制调试端口访问,保护片上代码安全