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

【经验分享】零基础快速入手 STM32MP1

[复制链接]
STMCU小助手 发布时间:2022-3-4 19:49
前言
; M0 Z/ j, Z; P. K3 Z  K6 \STM32MP1 多核微处理器,带有 650Mhz 主频的 cortex-A7 双核以及一个主频为 209Mhz 的 cortex-M4 核,即片内拥有三核。很多 STM32 新老用户对 STM32MP1 表现出浓厚的兴趣,纷纷从 ST 或者其它渠道购买到了STM32MP1 的开发板。当用户拿到开发板之后,如果本身就有丰富的 linux 经验,自然可以按照的指南,先安装运行 linux 操作系统的 PC,再一步一步使用 linux 上的命令行,将STM32MP1 跑起来。
! Q/ H! g$ o3 D0 ?. E然而,很多 STM32 用户,虽然有着非常好的嵌入式开发能力,但并没有 linux 的 PC 环境或者 linux 的相关知识。在这种情况下 ,如果他们想学习 STM32MP1 或者评估是否应该在项目里使用 STM32MP1,该怎么办?. D6 I* M. y/ F5 ]# b
显然,非常重要的第一步,是让 STM32MP1 开发板在用户手上动起来。那么,在不懂 Linux,在没有 Linux PC的情况下,是否有可能借助 STM32 生态系统,让这些用户快速并轻松迈出第一步?" W7 h$ j* [1 Z) r/ ?7 j5 `
答案是肯定的 。STM32 用户可以在 Windows 上借助 STM32CubeProgrammer 图形界面编程工具以及STM32MP1 官方预集成的入门开发包(STM32MP1 Starter kit)轻轻松松将 STM32MP1 开发板点亮。- ], c1 p1 k% x' e2 d
开发板点亮的全过程,不需要记忆命令,也不需要手工输入命令。开发板点亮之后,意味着你拥有了一台运行在STM32 上的微型 PC。用户可以外接鼠标与键盘,外接显示器或者直接使用开发板所带的触摸屏进行STM32MP1 的人工智能,3D GPU 等演示,甚至输入 Linux 命令。+ P% [, W( l( ?; s- G
本文将重点描述用户如何快速入手 STM32MP1 所需要的工具,软件包以及操作,不仅适合 linux 零基础的STM32 用户,也适合其它有一定 linux 基础的用户,基于 Windows PC 独立快速搭建 STM32MP1 平台。! ~+ e% {3 h* b% A8 [5 M  c' S
工具
, ^* P& P9 m5 U5 u我们用来下载固件的工具是 STM32CubeProgrammer。很多 STM32 用户的电脑都装有这款工具。如果还没有安
0 }. K. ~& r$ M: E3 ]' J7 b装的用户。这里使用的版本如下:3 z9 O* A; E5 N8 u; D; s

6 a% x5 y4 [9 C/ V- x, p! o P`N%QEU(UGIPXG77))P20KD.png
" H; Q& I1 y; F  U. e0 |& K
0 U3 s2 e$ i: b$ b7 bSTM32MP157C-DK2 开发板
9 j3 C, t2 d" l- e5 h本文假定用户已经得到 STM32MP157C-DK2 开发板。如果用户得到其它类型开发板,软件与操作会有一些细微的不同。本文会描述这些细微的不同点,供有其它开发板的人参考。, v- D! T% S% f' G6 n
5 c: K2 _- }4 f6 r8 N
7%R9_TCREEORX59WX~1DO22.png
+ j4 ^, r; ~, s; i: E0 Z$ B4 B1 D* W* N/ M1 K3 N: D' k- M3 d
随着开发板一同装箱应该还有 MicroSD 卡。这张存储卡需要插在板子相应的接口上(插座 CN15)。它是用来存储后面将要从 PC 下载的固件。在实际产品中,用户可以使用其它的外接 Flash,不一定需要 MicroSD 卡。但MicroSD 卡用来进行功能演示或者评估无疑是最方便的。+ G. V& e# I: d1 P9 g2 V

% `/ L* \6 |  z2 e$ VSTM32MP157C-DK2 连线+ C$ o; v5 j  S/ c& X
STM32MP157C-DK2 开发板的基本连线主要分三个部分,使用一根 USB Type-C 线缆给板子供电,使用另外一根 USB Type-C 线缆以 DFU 方式给板子下载固件,使用一根 MicroUSB 线缆连接 ST-Link。这里使用两根 TypeC 线缆来供电+DFU 是必须的,因为我们需要使用 STM32 DFU 模式下载固件。而 ST-Link 连接不是必须的。
% N! j* C* x( Z; _( u7 \如果连接了 ST-Link,用户可以在 ST-Link 虚拟串口上得到一个 STM32MP1 的终端。用户可以从该终端观察启动
- u& K: u6 E. q& G日志,输入 Linux 命令(例如配置网口)等操作。4 q% Y% S8 k3 [, l
具体的 连接示意图如下:
* u3 X9 v* ]' Y
8 Y; i' N& G4 x) s. C [Q1D7Z4UR6@O$$B7SJ58MFC.png
9 W( C: l+ }* u; f( X1 q1 b9 w# H- i3 I, [6 K" U6 G
如果你的开发板不是 STM32MP157C-DK2,连线也是这三部分,但可能不是 USB Type-C 供电。例如对于STM32MP157C-EV1,则连接如下。同样,ST-Link 连接对于固件下载不是必需的。
) Q( p$ E4 y- b6 |6 X2 M) w- L- g/ C' V" [3 U% G( ]' d4 k
{IOIE{A(SY$M~C]J(`T{$I0.png
! Q6 G" k- H0 c6 s( T) l! B: b3 }: S% _/ u5 Q6 A) q
预编译的固件包
4 Y! D8 Q: `% q, S, e% }" x0 L0 B( Z固件包是个压缩包,名字为 en.FLASH-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz。 该类型压缩文件在 Linux 上可以直接使用 tar 命令解开。在 windows 上也不用担心,可用 7-zip 解压缩。如果你的电脑使已经安装了 7-zip,则直接使用右键选择 7-zip 打开。
; N4 d, u: U; J/ C- l$ j* ^' C3 D# [8 K
WOO7_O{}0CG4$US[X}4{_1T.png / g- f! e% F- U% P" i
) R" A9 h. W" L7 @# q; @4 H
直接双击后就可以看到文件包" W: D2 j9 h+ ?1 k# d
/ n6 A5 B5 |7 p3 P$ U$ \5 g# D
33Y2EX}Y2$GWOLWN2EDNHC4.png
# }+ @  u- k) ?' B: m$ T
7 b* _9 o9 e$ O8 @这个时候你就可以将该目录固件整体解压到任意目录。可以看到固件包中 images 目录包含了对所有 STM32MP1开发板的支持。如果你的开发板不是 STM32MP157C-DK2 而是 STM32MP157C-EV1,该固件包也只需要下载一次。& \- x5 Q( I2 l5 c( s- p" ^

! ?& v  E# I. _7 F V)GD`40WEG@2~ZS5T3U@KY7.png   d8 a5 ?3 L( k5 f/ o% _

* U2 d/ h0 L# M& P9 O7 d4 a开发板跳线$ B! a+ q: i# {5 `' s: a
使用 DFU 功能,我们需要将 STM32MP157C-DK2 跳线配置为从 DFU 启动。跳线开关位于 STM32MP157CDK2 的背面。我们将其跳线到 OFF,样子如下:1 u8 |8 I" ?7 g. N5 J- Y& E

6 |4 V# @& L% q8 | D(_84C0SX%]4UBSSCFMAJDO.png
  Z/ R- Q' M* B# h. b) X
; L+ G/ y" X3 T- h  b8 A2 W" w3 B对于其他开发板,例如 STM32MP157C-EV1,也是将启动模式跳线至 OFF,样子如下:
. l+ L7 Q9 N7 {  G/ G7 p8 L9 ^! W; e3 v$ c; x; t! m: e, l
8~LU3LXJB_3X1U%6]4PCQ75.png ) `4 l" N# S, ^5 I# t4 S
2 X+ [( S4 J' K0 c( E
下载固件到 STM32MP1. s/ g8 b$ `! Z  `( K5 O. a0 e
如果跳线按照以上的方式调整完毕,重新上电并连上用于 DFU 的 Type-C 线缆,打开STM32CubeProgrammer,可以使用 USB 连接开发板。  n, |' @8 D7 s) F! x/ t  W
" I/ M* u6 s6 ]/ [8 Y) h
VQPPDZI@`O6P]OTYJX032XP.png # ~% {2 K, A# q4 G' b3 J

2 [9 _( C+ q& ~: s. r8 F) C当 USB 连接成功后,用户可使用 STM32CubeProgrammer 菜单选择开发板所对应的 tsv 文件如下。
5 k# Y5 y3 B; f$ t9 O1 R! B! o4 ~* h7 H5 U% [) @% [# _4 K( x8 [6 A) l
" f% m) d8 v0 M: `2 Y: t
C)DCM457{6N1K{82[98DF]O.png
  p; N+ c0 z2 O& X" |/ B/ ?
& u6 l8 q' i8 y我们通常选择 FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv(tsv 在\images\stm32mp1\flashlayout_stimage-weston 目录下binary 则在上一级目录\images\stm32mp1),则画面如下:9 K3 V$ X) ~  X, o3 I/ ~2 F, r
/ M4 \1 v# s( ^9 b# q
+ _. Y$ s2 _* Z. f, Z& s: V; P$ B
SH%VHTDU52I66BA@G_(JO$H.png
5 B) \9 S' e: ]8 C% A* K: {9 k) r1 d5 T+ Q+ R7 f
这个时候我们选择下载 Download,则固件就会被下载至 STM32MP157C-DK2 的 MicroSD 卡。整个固件大约500M 字节,下载时间大约需要 20 分钟。下载成功提示如下:) q; ~% c* W, |! i+ _) R& G

2 }3 W5 E6 q; X
# A) m' P9 Z: M/ U3 v HBQ18}XW[F}{D{ZB_H@EK%D.png ( v5 j9 Q7 b% w4 C

0 V. T; A; e8 U注意:如果使用其它开发板,例如 stm32mp157c-ev1,则应该选择其他 tsv 文件,但是固件所在的目录以及其他操作不变。" I8 k; _4 r) {5 A8 N

5 f  J2 U7 F* j$ D2 c0 Y% i# W, W* L
1 J; Q" y- g8 I" q0 t( E 6`%1[U61T`XB{34]092~Z2P.png
$ W# M; H' o. q7 k, u( p) j: r+ }' _7 _3 Q0 E5 o' E8 P

" G: E$ S3 x" u9 ]9 X+ B启动9 Z6 T1 K4 Z& x  X. H% M; Y
拔掉电源,将背面的启动设置跳线恢复,跳至 ON 位置,如下:6 i7 O+ Q& o& _& \) ?  a4 M
! v( W+ b  g* O5 B# R2 @
9J{@LX857`{OTS9}]WYCD}7.png " ]$ ?5 L9 B2 q* W

3 n2 b  e+ {% P* O如果你使用其它开发板,例如 STM32MP157C-EV1,则将除了 2 之外的 1,3 都跳至 ON。
  d8 V  T0 l$ v- K# L% o, K6 f; ~- }4 q# n
LKNNU)GO)GY}{(1[3Z3W79Q.png 6 G: ]) W3 p- S. O

+ q, I1 ?$ q+ a& j9 |- N5 I( u正常启动后,就可以在屏幕上看到:* h9 l7 e9 W% Q
: _* j" o( u1 K
07~%NKR3}CA${[[F8PL@[5U.png 3 b- C7 l1 {) e
8 K2 t) V3 i9 I) D* z8 F( v
总结) g  [: @, B; O0 N' r( \6 L
本文描述了在 Windows 上使用 STM32CubeProgrammer 将 STM32MP1 Starter Kit 固件烧录进 MicroSD 卡,适合没有 Linux 基础又需要了解评估 STM32MP1 的功能、性能以及功耗的人员。有经验的开发人员也可以利用本文快速搭建 STM32MP1 平台进行功能演示或者进行 Linux 应用开发,例如可以继续使用 STM32CubeMx 生成DeviceTree,从而进行硬件资源的配置修改。. ?4 o  A; F7 V8 R& O- s4 J

+ G- u' z. T: c% G
4 H# f  @8 O* W3 _+ g$ V1 O; Y  V4 T
赞 收藏 评论0 发布时间:2022-3-4 19:49

举报

0个回答

所属标签

相似技术帖

官网相关资源

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