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

【分享】STM32MP1开发板入门

[复制链接]
STMCU-管管 发布时间:2021-6-4 13:23
STM32MP1系列微处理器(ARM dual Cortex-A7 650Mhz + Cortex-M4)
! Y: q5 d6 q( ^  D
1.png

" q2 Y) d7 J9 U- E- h& ?
2.png
7 T4 b* _% b" O& K6 T8 e  g9 @+ S
开发软件安装,STM32CubeMX5 a9 s9 y7 P; I7 y6 V2 w
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。stm32mp1中使用协处理器M4需要安装stm32cubemx:7 \4 A& @9 r+ G, j4 }) \
stm32cubemx运行环境搭建,包含两个部分,首先是安装java运行环境(版本必须为v1.7以上),然后是安装stm32cubemx开发软件。
9 Z" X9 y; H4 l: `% A' U简单使用:% W9 s; `0 o' w
新建工程第一步,选择mcu型号' ^% Y2 Z: s( Q1 N) r+ F! P
3.png
# s0 J8 j- ^( u0 `5 o4 m
由于pangu开发板选用的是stm32mp157AAA3芯片,故选择stm32mp157AAAX
3 Y4 E- \( _' x
4.png

' v- {! q8 `! K接下来配置时钟源,如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
9 {3 t: ^1 d% }2 u1 O$ A" C4 l4 L0 O0 n* |6 ?
5 R! i6 e/ I8 ]1 W5 M
如果使用默认内部时钟(HSI),这一步可以略过;这里使用外部时钟,HSE,LSE
  y. s) X7 A$ \& g. q9 hpangu开发板上的外部时钟0 `) P* Y2 Q( S% i& W: E
5.png
  X9 w" X5 N: }* x) \& k4 t; X0 K4 C
下拉框中选择crystal/Ceramic Resonator晶体/陶瓷晶振5 i5 h1 b1 X( i! P* E! O6 ^
6.png
! Y+ N& Y1 t' ^( s
设置开发板上D17灯对应的PH6引脚为输出; G$ g- v8 G. [4 K5 f: h
7.png

( B' w9 s' O4 {: p; y& z9 O生成工程设置* |% U( V+ i# a+ D2 Y
10.png
( `8 h9 D, f4 ~& c
然后点击Generate code就可生成MDK工程代码。
+ z0 Q0 t7 u) Z1 t4 H# c时钟树配置,配置主要是外部晶振大小,分频系数,倍频系统以及选择器。' V% v1 r* G; E; p+ ]% J0 `
11.png
$ q6 o8 U1 A7 v) z+ z
最后用MDK打开生成的MDK-ARM工程文件,build编译。0error。( C5 p; |2 ~3 e$ t% m
12.png
3 b" K( K# e; S; N; K
之前使用的STM32F407开发板用的是标准外设库(STD库), HAL库是硬件抽象层,更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。方便移植。近两年新出的STM32芯片,ST只提供HAL库,可用STM32Cube程序生成开发工具+HAL库" }1 c# |0 o: A+ p
stm32cube目前几乎支持STM32全系列,我们需要到ST官网下载对应的STM32Cube包
8 c5 D) \5 P3 Y* Z# V3 u
13.png

( X: L9 w  ]1 l包中大致有(1)Drivers文件夹,Drivers 文件夹包含BSP, CMSIS 和 STM32MP1xx_HAL_Driver 三个子文件夹。BSP是板级支持包,提供直接与硬件打交道的API。
" f1 S, S1 \& |( s+ ?CMSIS 文件夹是符合 CMSIS 标准的软件抽象层组件相关文件。主要包括 DSP库(DSP_LIB 文件夹), Cortex-M 内核及其设备文件(Include 文件夹), 微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。
4 D# D9 x1 Y/ Y% g6 h5 b5 LSTM32MP1xx_HAL_Driver文件夹中包含所有的 STM32MP1xx系列 HAL 库头文件和源文件,也就是所有底层硬件抽象层 API 声明和定义。 它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。 该文件夹包含 Src 和 Inc 两个子文件夹,其中 Src 子文件夹存放的是.c 源文件, Inc 子文件夹存放的是与之对应的.h 头文件。每个.c 源文件对应一个.h 头文件。
$ B+ |& F' P" y4 ]$ d7 N/ E; j, OMiddlewares文件夹下有Third_Party文件夹(是第三方中间件)里面有FreeRTOS实时系统支持包和OpenAMP(?)0 D$ s9 _7 T2 A2 [' B8 P; I1 {/ ^
Projects文件夹存放的是一些可以直接编译的实例工程,每个文件夹对应一个ST官方的Demo板,暂时只有SW4STM32的工程,没有MDK的。9 o  u2 o! ]5 b7 v9 W( `5 o

. I5 G/ D0 s6 U6 ~0 Z! n% d$ }% H

0 H; e" N7 S/ ~: T一般来说,stm32mp1处理器可以在M4上做电机控制,A7上做人机交互界面。
$ ]9 \' Z2 k2 Y# r) C& P- |) ?! I+ b- U0 \
$ D/ i& n$ Q% ]1 [9 Y! {4 `
应用开发环境搭建; S9 Z( h# p& N; H$ r- M4 a; `
linux开发需要在ubuntu下进行,主要是交叉编译器的安装。
# f7 |8 z5 v6 f; C
! f7 b) A( \  P$ a  ]

( g/ {' G7 Y0 l) E1 Tlinux进行C语言开发用的是GCC编译器进行代码编译,但ubuntu自带的GCC编译器是针对X86架构的。我们现在要编译的是ARM架构的代码,需要一个在X86架构的PC机上运行,可以编译ARM架构代码的GCC编译器,这个编译器就叫做交叉编译器。(就是在一个架构上编译另外一个架构的代码)& u2 L( T! _0 w% s
  X. }! \' t9 T! L) [8 `: ~8 P
8 S; W0 a/ a2 G' P$ w  k  C
pangu开发板的开发环境基于Ubuntu16.04 64bit,在虚拟机上安装ubuntu16.04操作系统# v- Z5 n3 c) ]

1 @; D# s7 [- ^0 l5 x
/ e, V& O, b4 O3 @! P
PanGu开发板的应用开发,需要先安装应用开发工具包(SDK)。PanGu开发板提供了两种SDK工具包:i2som-image-qt-openstlinux-eglfs-pangu-x86_64-toolchain-2.6-snapshot.sh和i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh。
4 D: i3 {  \  l  }( I5 g由于板载的flash预装的是weston系统,在此我选择在ubuntu系统中安装weston系统镜像的应用开发工具链。
: W. L! v6 q6 @7 P' e3 X下面开始安装i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh工具包! c) M5 y9 B  b! J; k
# y' m0 V3 R6 `! `. B5 A; r( |
' e1 q2 u: ]9 l, Q6 r
首先运行chmod a+x命令,给所有人加上可执行权限,用ls –lh命令查询文件的大小、权限等详细信息,权限都为rwx(读取、写入、执行)2 e8 U/ m$ |# G( Q
14.png
* \: I! P0 q/ _0 P% L0 D3 R' R# h+ \
接着在路径下运行安装命令:./i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh5 j+ _9 z  M2 m5 a" w8 z1 V7 s0 p* L
15.png
0 g% Q: M3 R6 K) J& H
安装路径输入 /opt/st/pangu-i2som-image-weston/2.6-snapshot
- M8 c; `# J& Z% o  E
16.png

+ X8 e. J9 v/ j! O) v接着会让你输入管理员密码,之后就等待安装了。
: {$ d2 L# s6 p' L: i8 w4 t当出现SDK has been successfully时证明安装完成了。
/ E6 r- L+ S# W, S* S% q* G5 i- L# N' P5 {2 p) q; Y

% h* c1 k& _! E$ L5 z然后运行如下命令:. H% \6 M; M: B
. /opt/st/pangu-i2som-image-weston/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
: \9 i8 x# i1 z2 C6 N( x9 [
17.png
" \$ s" X' |0 W
通过$CC –version验证开发工具是否正确安装,如图显示了版本信息表示工具链安装完成。
% w9 ]% b+ C6 C* |8 i  Z$ _1 i, @* h) B

% e! ~3 R9 m0 H编写测试文件test.c内容如下
2 `7 s/ v( J; A9 K9 P: C( c
18.png

" {, F1 _2 M* c" M8 M: y编译test应用
- y& B  L% j8 z4 p! U( X! L* ?
19.png

# P7 t- S; W0 h/ |+ |$ J2 g1 Y然后将输出的 复制到pangu开发板后直接运行
( k/ \% P5 z9 O! V! C' O9 p7 y' Q; q/ x+ H
2 W- S3 `% G7 w# C. W
通过MobaXtern配置ssh登录pangu开发板,可通过sftp服务进行文件的复制拷贝。* K' q$ S; y. X8 i6 K* I
20.png

* q6 ^' m2 x- L$ I% G上图是pangu开发板的home目录
7 |! M: a! g% m- Z9 L8 o现在将编译输出的test从虚拟机的ubuntu系统复制到home目录下& O5 t0 j% L; i" B
21.png
1 J4 J( Y, p9 a3 F9 L
可以看到此时多了个test文件。
# e0 ]; E% Y9 T5 g4 e/ F2 t6 G% T7 J3 z$ \' O- F6 C3 L

  _4 p) z- H$ f; C$ m直接运行发现permission denied
2 C7 z" h# Y8 q2 u" _通过chmod a+x命令修改下权限,紧接着再输入./test
0 d- g$ P& q3 E& e
22.png
8 B% E9 A; U4 U2 X; B( ]& B2 t3 m
输出是hello,I am wangrongyao!  K" H% S; {0 |2 S; B
% V; J4 b9 b& O. k0 n  ]4 n
# F9 t* o  Q% j" k* Z
pangu开发板的Micro usb接口可以作为从设备,默认是作为usb以太网设备,可以实现将开发板的usb otg接口作为从设备模式,模拟成为一个网口,通过PC的usb接口连接到开发板。使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.23 f5 d. y& e7 k8 E* F: F
23.png
5 H- S) t# i* B0 k6 u7 T- s! c
PC通过usb连接开发板后,PC上会出现一个usb虚拟的网络设备,自行手动配置ip地址为192.168.7.10,之后就可以通过ssh登录pangu开发板了。
# i" ^' F5 [  ~" c3 \* K
24.png

/ _+ p, E. p, o- ?; ~! }1 I/ r0 [( W, N1 u
收藏 评论0 发布时间:2021-6-4 13:23

举报

0个回答

所属标签

相似分享

官网相关资源

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