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

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

[复制链接]
STMCU小助手 发布时间:2022-12-3 18:00
引言
2 L! o1 q. t1 t& A; ^本应用笔记描述如何在意法半导体的 STM32CubeIDE 集成开发环境中开始基于 STM32L5 Series 微控制器的项目。6 I7 D& e* n' E& C
% C& k9 q! f1 ?6 u" Y
1 概述
4 e- H. D+ I( u' f$ FSTM32CubeIDE 支持基于 Arm® Cortex®处理器的 STM32 32 位产品。; h0 j& R0 K+ ^" p2 Z
提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
1 ?/ B' H& t6 S8 u; C
1.1 先决条件7 N- k: L+ u% K, G% x
以下工具是理解本文档中的教程并开发基于 STM32L5 Series(Arm® TrustZone®已启用)的应用程序的先决条件:( P/ _8 n$ G. w& b
• STM32CubeIDE 1.2.04 f5 [1 h6 o9 Z2 A7 P
• STM32CubeProgrammer (STM32CubeProg) 2.3.0: 选项字节配置
4 A* y3 E" x3 H/ w• STM32Cube_FW_L5_V1.0.0:STM32CubeL5 固件与示例项目
) R5 L( S" V3 F* H' L
8 r9 J/ p( S9 D. n6 R. l. F  |4 P1.2 本文档中的用例& q- D. O1 E$ L6 q
在 STM32CubeIDE 上下文中,用户有许多不同的方法来探索和着手开发基于 STM32L5 Series 的项目:# a: N  `' y2 v# A4 l% k
• 从 STM32CubeL5 MCU 开发包导入一个 STM32CubeIDE 项目,以通过工作示例来学习- z4 d" I) L# [
• 使用 STM32CubeMX 工具创建 STM32CubeMX 项目% M) I5 s1 x* m) U- c+ [5 J9 T
• 在 STM32CubeIDE 中创建一个空项目,编写自己的代码7 e+ a: W( ^+ F" y0 y* Y
• 在 STM32CubeIDE 中创建一个空项目,从 STM32CubeL5 MCU 开发包中复制示例项目代码到创建的项目中建议采用以下方法熟悉和开始基于 STM32L5 Series 的项目开发:
7 ^8 g4 g; I1 R3 P  k) S1. 导入一个 TrustZone®示例项目,该项目是 STM32CubeL5 MCU 开发包的组成部分。这是了解 STM32L5MCU 启动部分代码 CMSIS 和 HAL 驱动程序的最快方法。
4 ^0 a- `( P' i7 I% R* z* s2. 创建一个空项目,并从 STM32CubeL5 MCU 开发包复制代码。在空项目中,用户完全控制源代码和配置文件,STM32CubeMX 则无法触及。这为用户提供了更高的灵活性,但需要稍微陡一些的学习曲线。
4 j! ~# M$ W: m3 E" M3. 创建一个 STM32CubeMX 项目,使用图形界面配置硬件并生成相应的 HAL 驱动程序。这可以作为量产项目或学习项目,以便进行深入探索和学习。
1 g. z" {! r% Q& O/ B+ b9 J一些模板项目以 STM32CubeIDE 项目的格式提供;这些项目是已启用或未启用 TrustZone®的模板项目。例如:; r6 X+ a* W$ Z/ _
• 使用 TZEN = 1:7 S2 a6 N5 f6 h
STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\TrustZoneEnabled\
' l" r; ]( [6 D. f) K* I) e( A+ k• 使用 TZEN = 0:
: j7 E/ f; `; ]( s6 _1 }STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\TrustZoneDisabled\! r- r: p$ Z( m( t! H& B2 X  {
该应用笔记上面提到的参考项目 TrustZone 已启用,TrustZone 是通过置位选项字节的 TZEN 位来使能的。0 A: ?1 V- R) l2 b- v( r
该项目模板的 readme 文件描述如何配置选项字节以匹配代码;它提供了一个很好的模板,可用于学习一些重要的配置用例。' b: i. T( e1 v) x$ V
在首次学习体验之后,用户可以选择创建一个空项目,或者使用 STM32CubeMX 给自己的应用创建一个新项目,也可以两者都尝试一下。
/ V5 C; N" _$ u0 o0 [  g固件 STM32Cube_FW_L5 包含许多面向不同外设的其他示例项目,带有 STM32CubeIDE 项目文件。可以将这些项目导入 STM32CubeIDE 并进行研究,以了解如何使用 STM32L5 外设。( x5 `8 d# B& f: |- z" t& t7 s
. a* i$ o" t( u. f- K' g8 j8 f
1.3 选项字节
: P% H% o# J- w: r# ]/ b若要详细了解选项字节有关信息,请参见 STM32L5 Series(RM0438)中的微控制器参考手册。对于作为此应用笔记基础的特定示例项目模板,示例项目的 readme.txt 文件中列出了正确的选项字节值。用户必须使用! C- w9 r/ l6 @- K5 p' x) }' V
STM32CubeProgrammer (STM32CubeProg)更改选项字节9 q; k1 J' g% U; w
- u& W3 h; |0 o. B* L+ t, l/ Z9 t
1.4 特殊的分层项目结构面向安全多核 MCU* I5 k4 m  F' v/ Q4 K8 v' g
在导入或创建项目之前,考虑一些项目结构概念很重要。创建 STM32L5 项目之后,项目结构自动分层。单核项目的项目结构是扁平的。在多核项目或采用启用了 TrustZone®的 MCU 的项目(如 STM32L5 Series 中所示)中,使用分层项目结构。当用户创建或导入一个项目时,它由一个根项目和被称为 MCU 项目的子项目组成。MCU 项目是真实 CDT 项目;它们可以包含构建和调试配置,而根项目不能。根项目是一个简单的容器,允许在安全和非安全MCU 项目之间共享公共代码(在 STM32L5 Series 的情况下),如图 1 中所示。
  i' M6 ^: ~! Y
/ j4 ]* }  A$ O
+ l* M  H# Y9 G
]THHNF%QV3WSJ7AN6V{0YKV.png   b/ h1 z! K; M' y2 ^
) w9 d* e, Q, P& |
如果设置已更改,或者项目不在分层结构中,则可以进行更改,如图 2 中所示。/ T- X& p- g7 _, p

$ I' s6 M% Q% ]

2 ^$ T, n0 _0 |& a B{[5L1`P3YOM4Y}S[Q09IVL.png ' h& ~4 t" |6 X$ f& g* A! n& p

& {) X3 T! t1 ?; _  i

: ]! s: L+ }3 [在文件系统中,两个 MCU 项目位于根项目中,根项目只包含一个.project 文件。: \0 D6 R/ _+ s! E
! ~: i! p6 N5 I, {6 q$ d, w
]OTW9Z3OZL5_UKR8P01AH5T.png / g4 [9 I* O- P' I: t
完整版请查看:附件. d' }  K3 T4 Z6 ~9 Y
3 o5 O4 O. o0 F9 V1 A  o
收藏 评论0 发布时间:2022-12-3 18:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版