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

STM32CubeIDE 中基于 STM32L5 系列的项目入门

[复制链接]
STMCU小助手 发布时间:2022-7-10 17:18
引言
% ^; {$ ~0 Y! j' o+ u- l9 n  `本应用笔记描述如何在意法半导体的 STM32CubeIDE 集成开发环境中开始基于 STM32L5 Series 微控制器的项目。
, o# P) q# L9 g! t% ]! d; I- ~
1 概述8 V' S/ H# U) z! e1 X5 v+ K% U  V5 Z
STM32CubeIDE 支持基于 Arm® Cortex®处理器的 STM32 32 位产品。
2 N4 i- w8 m5 V9 d2 Q, t* n! o2 L, e2 F8 Z$ k+ W

1 k7 V7 g( S" N  `: J: s提示
) y' g0 U( V5 M4 g( x9 U! g/ `Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
( n' z! j" h" b% n% s' c5 H: g& |
9 F. C* A- D6 b, }( N* x

# k; [6 _* O3 D5 P! s1.1 先决条件. G0 F: ?0 d, A& r6 ~9 j
以下工具是理解本文档中的教程并开发基于 STM32L5 Series(Arm® TrustZone®已启用)的应用程序的先决条件:
3 I" l2 M% E/ W/ y, t• STM32CubeIDE 1.2.0, k3 ?" z# z' L' j
• STM32CubeProgrammer (STM32CubeProg) 2.3.0: 选项字节配置8 x6 ]. j$ n) q* g; y
• STM32Cube_FW_L5_V1.0.0:STM32CubeL5 固件与示例项目、以及 HAL 和 CMSIS 驱动程序
5 t' f( i: M1 a/ {) V$ f
, p3 n$ S$ P5 o1.2 本文档中的用例
6 S9 s" g7 l  [0 N: e在 STM32CubeIDE 上下文中,用户有许多不同的方法来探索和着手开发基于 STM32L5 Series 的项目:/ r* U) W0 @9 d5 s( M) r0 x
• 从 STM32CubeL5 MCU 开发包导入一个 STM32CubeIDE 项目,以通过工作示例来学习
4 |* |9 D% M; M2 {& H* G• 使用 STM32CubeMX 工具创建 STM32CubeMX 项目8 X# s+ g, _$ ^& g; Q4 N1 |2 @# X  r
• 在 STM32CubeIDE 中创建一个空项目,编写自己的代码
+ Q4 G( H2 S' C4 v+ E• 在 STM32CubeIDE 中创建一个空项目,从 STM32CubeL5 MCU 开发包中复制示例项目代码到创建的项目中建议采用以下方法熟悉和开始基于 STM32L5 Series 的项目开发:
4 t+ c9 ?# r, X' A$ |4 C1. 导入一个 TrustZone®示例项目,该项目是 STM32CubeL5 MCU 开发包的组成部分。这是了解 STM32L5MCU 启动部分代码 CMSIS 和 HAL 驱动程序的最快方法。8 N6 e6 y6 w# u
2. 创建一个空项目,并从 STM32CubeL5 MCU 开发包复制代码。在空项目中,用户完全控制源代码和配置文件,STM32CubeMX 则无法触及。这为用户提供了更高的灵活性,但需要稍微陡一些的学习曲线。
$ ^- `1 n/ N1 U7 g. a3. 创建一个 STM32CubeMX 项目,使用图形界面配置硬件并生成相应的 HAL 驱动程序。这可以作为量产项目或学习项目,以便进行深入探索和学习。
, {7 L4 D1 X% h' x9 X6 L一些模板项目以 STM32CubeIDE 项目的格式提供;这些项目是已启用或未启用 TrustZone®的模板项目。例如:: Z6 |3 q; G: I5 L" `5 e
• 使用 TZEN = 1:, I8 N/ s& D' c, j  z# n
STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\T! G2 q+ D1 M4 h: S" L/ d2 H
rustZoneEnabled\
3 _6 _; e  ^: ?. b• 使用 TZEN = 0:- T8 b7 l6 v9 P
STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\T( Q) V9 R, |9 R5 o
rustZoneDisabled\
0 B& j4 B* a5 v" t( T, B该应用笔记上面提到的参考项目 TrustZone 已启用,TrustZone 是通过置位选项字节的 TZEN 位来使能的。$ \3 M  T2 {$ v0 s+ O2 P: ~' Y% b
该项目模板的 readme 文件描述如何配置选项字节以匹配代码;它提供了一个很好的模板,可用于学习一些重要的配置用例。  l  @: V+ i- d! S3 T0 L
在首次学习体验之后,用户可以选择创建一个空项目,或者使用 STM32CubeMX 给自己的应用创建一个新项目,也可以两者都尝试一下。
  G; c4 v1 n" W8 [固件 STM32Cube_FW_L5 包含许多面向不同外设的其他示例项目,带有 STM32CubeIDE 项目文件。可以将这些项目导入 STM32CubeIDE 并进行研究,以了解如何使用 STM32L5 外设。3 H  I4 W* \% C& B7 H- B5 L
5 J/ B. d* x; K' R7 S4 U" ?: z4 j

6 D1 X# S6 ~8 @2 |# n- g1.3 选项字节
: f1 R: J& P5 h) K! s若要详细了解选项字节有关信息,请参见 STM32L5 Series(RM0438)中的微控制器参考手册。对于作为此应用笔记基础的特定示例项目模板,示例项目的 readme.txt 文件中列出了正确的选项字节值。用户必须使用STM32CubeProgrammer (STM32CubeProg)更改选项字节
7 d" O9 ]; i. a) Y; d& o
  \* g5 u1 F7 ?- [, Z" g( R
* R; c4 ]. h6 N+ i' k% k1 `
1.4 特殊的分层项目结构面向安全多核 MCU
: o. d' [" G4 q% j# s$ N在导入或创建项目之前,考虑一些项目结构概念很重要。创建 STM32L5 项目之后,项目结构自动分层。单核项目的项目结构是扁平的。在多核项目或采用启用了 TrustZone®的 MCU 的项目(如 STM32L5 Series 中所示)中,使用分层项目结构。当用户创建或导入一个项目时,它由一个根项目和被称为 MCU 项目的子项目组成。MCU 项目是真实 CDT 项目;它们可以包含构建和调试配置,而根项目不能。根项目是一个简单的容器,允许在安全和非安全
( o$ v3 j4 Q" a- aMCU 项目之间共享公共代码(在 STM32L5 Series 的情况下),如图 1 中所示。
7 \# Y& Y1 N+ ?( o
; R0 v7 [/ ~% B, S7 @$ `
4 k! f2 X0 s+ d4 W4 L+ t
3CQH$%LCGG1W{8VNW2H]$WD.png   o. Y8 ?8 T" X- D' _2 c" u; D. L) w
) I( D; m$ Z& R: w
如果设置已更改,或者项目不在分层结构中,则可以进行更改,如图 2 中所示。5 }- k$ v7 u8 R$ j7 p. k
9 B$ A2 V) @! z* T! I
I227P3(`HHMMF92ZUR~~N~7.png 2 y4 j* G! V  k3 W# N

4 N3 A5 w& \' f/ W3 @# {# M+ y在文件系统中,两个 MCU 项目位于根项目中,根项目只包含一个.project 文件。% t# k5 C; M1 G2 U5 @! F
- B, t/ s7 g1 f) R' m

9 Y! x/ Z, s9 o 0B7YYY[}FY$HXX%0OEMSA)F.png
! J( p( r8 Y4 D+ N9 i6 ]7 }, U2 v* Z& g/ X
2 创建和导入项目& d2 H* u& Q, M; H
本章描述如何导入或创建基于 STM32L5 Series 的项目。首先解释如何导入 STM32CubeL5 MCU 开发包中可用的示例项目模板。在导入、构建、调试并向非安全可调用项添加一些函数调用之后,本文将说明如何创建自己的空项目,从示例项目中复制完全相同的资源作为后续应用程序的基础模板。
0 F, i& c# q: A% z/ v6 f提示 不建议在示例项目中继续应用程序开发,主要是因为项目中的所有资源都链接到项目中:, z  t8 q1 S: {4 K
• 这意味着项目不是独立的,这使版本控制更加困难
7 _5 ]# n: x; _) S' r; d• 驱动程序资源与所有其他项目共享& B$ f# ]/ P& f
• ECLIPSE™ CDT 索引器不能总是解析链接的资源,并正确启用所有代码导航和可视化特性使用示例项目作为模板创建新的空项目是后续应用程序开发的更好方法。
2 v1 ^# o+ ?/ g% \; d5 f6 P/ l. ?4 v: Y  E9 @# J+ k2 {7 x) p( F

( B. P% _0 i/ S! m+ w3 @$ ]2.1 导入 TrustZone®项目模板 STM32CubeIDE
7 r' l! i& w# S8 y: w3 ]7 q/ Q" \) I为了将 STM32CubeL5 模板项目导入 STM32CubeIDE 中,首先前往[File]>[Import]并选择 Existing Projects into Workspace,如图 4 中所示。# z8 ^/ F" Z0 G0 O' r

" a1 \3 R$ U6 Y1 N" V
8 L$ e, w: k) Q! ?+ O
TIMGPJLC8HIPBBN$(}SD4P2.png ) ~; F& H9 P7 a$ v; K* W

) R# w/ M3 K; K5 E( i _GU3$O0[Q}5X23HHUAUCL)X.png 4 P8 @1 m- `: I, V) _# L2 F% U; V: }
! N; J: _3 T+ I& I3 ?; y% `7 C- p
, @" r1 W; q' q! C% w1 @
Attention:
2 q$ m9 Q/ Y. `/ t/ \( M* M当从 STM32Cube MCU 开发包导入项目时,不要使用 Copy projects into workspace 设置,因为这样会打破与共享代码(比如 MCU 开发包中的 HAL 和 CMSIS 驱动)的链接。
, J7 n, H* G) A
! J: A. K& g0 H9 E% X
: Z. [! a( Y" U. }2 g% x0 ]& m9 }) R% Y
选择完所有三个项目之后,点击[Finish]以导入模板项目。$ [, L) ?  @2 v7 z8 R
; L& A5 n% M8 |3 ]" j2 Z$ u) \9 a
M9KH3B~JHOUN(IW9NOV94HH.png 5 Y/ d6 H' A! V: g) I+ Q

2 Y' G4 N( [. |" h! C5 E  R! T完整版请查看:附件
5 ]( @  J$ B8 ~3 f
0 A6 ^! R) \; ^# [; l

STM32CubeIDE 中基于 STM32L5 系列的项目入门.pdf

下载

1.51 MB, 下载次数: 2

赞 收藏 评论0 发布时间:2022-7-10 17:18

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版