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

【分享】STM32MP1开发板入门

[复制链接]
STMCU-管管 发布时间:2021-6-4 13:23
STM32MP1系列微处理器(ARM dual Cortex-A7 650Mhz + Cortex-M4)
# g$ l2 Y7 ?3 H/ L8 x
1.png
7 M0 n: b! W1 A: X) \
2.png
$ s; W  d  U; Y. ?* C2 D: U
开发软件安装,STM32CubeMX
" j' E& L* L) ?& `STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。stm32mp1中使用协处理器M4需要安装stm32cubemx:4 \$ X( ^' I1 Z( J  P! e! l
stm32cubemx运行环境搭建,包含两个部分,首先是安装java运行环境(版本必须为v1.7以上),然后是安装stm32cubemx开发软件。% q1 {( }2 ?4 @. ]+ H* V9 q
简单使用:
/ R" `2 |- Z. c- S6 G8 D. C+ V新建工程第一步,选择mcu型号
& E+ F9 V- M- E% m3 g: ~1 m6 p. R
3.png
% u; C3 x* v/ j3 r# p
由于pangu开发板选用的是stm32mp157AAA3芯片,故选择stm32mp157AAAX! o3 m6 Z6 Z% j
4.png
, d% z4 b  [+ l. d) @( u
接下来配置时钟源,如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;' K! @/ P3 x7 }: |  [2 ?
5 L" h3 `$ ^5 H! x1 g: u: m) P4 H
+ x) B1 r/ d* i4 s5 f; t
如果使用默认内部时钟(HSI),这一步可以略过;这里使用外部时钟,HSE,LSE# h$ i$ r& ~( g; f, o' g
pangu开发板上的外部时钟0 t* D* k/ Y! `$ G) }
5.png
( W8 I7 s* i( i( K! X$ v
下拉框中选择crystal/Ceramic Resonator晶体/陶瓷晶振
0 g, B, W* |6 \/ [0 W
6.png

$ t8 M; W) K' F$ v! F# x6 Q0 g设置开发板上D17灯对应的PH6引脚为输出
* ]1 U/ w% N& P5 N' S
7.png
% |: D) n3 P7 C" e* D1 z" d
生成工程设置/ U2 k% c: [! ~3 D" E- T
10.png
" T( \5 K3 L( r7 Q
然后点击Generate code就可生成MDK工程代码。. v( D3 K/ N: H+ g
时钟树配置,配置主要是外部晶振大小,分频系数,倍频系统以及选择器。4 n+ h2 f  h& x; x" y2 w' R
11.png

' `6 s( p1 G1 ]3 D8 X最后用MDK打开生成的MDK-ARM工程文件,build编译。0error。* x. _5 @, [; |
12.png

8 P# X% I& ~8 B% v% j6 \之前使用的STM32F407开发板用的是标准外设库(STD库), HAL库是硬件抽象层,更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。方便移植。近两年新出的STM32芯片,ST只提供HAL库,可用STM32Cube程序生成开发工具+HAL库
) [0 L" T4 y3 k. _! `1 \stm32cube目前几乎支持STM32全系列,我们需要到ST官网下载对应的STM32Cube包3 ?0 S8 s) z# e3 I
13.png

8 t4 v8 X  L2 V+ l" z4 @; R# [包中大致有(1)Drivers文件夹,Drivers 文件夹包含BSP, CMSIS 和 STM32MP1xx_HAL_Driver 三个子文件夹。BSP是板级支持包,提供直接与硬件打交道的API。- L  W( I$ e$ I1 ~6 x7 \
CMSIS 文件夹是符合 CMSIS 标准的软件抽象层组件相关文件。主要包括 DSP库(DSP_LIB 文件夹), Cortex-M 内核及其设备文件(Include 文件夹), 微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。
1 X, B0 n, w3 `" b5 b6 U9 XSTM32MP1xx_HAL_Driver文件夹中包含所有的 STM32MP1xx系列 HAL 库头文件和源文件,也就是所有底层硬件抽象层 API 声明和定义。 它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。 该文件夹包含 Src 和 Inc 两个子文件夹,其中 Src 子文件夹存放的是.c 源文件, Inc 子文件夹存放的是与之对应的.h 头文件。每个.c 源文件对应一个.h 头文件。
3 R0 U8 X' v: s9 `+ LMiddlewares文件夹下有Third_Party文件夹(是第三方中间件)里面有FreeRTOS实时系统支持包和OpenAMP(?)
2 c0 r! Y- q! |/ `9 KProjects文件夹存放的是一些可以直接编译的实例工程,每个文件夹对应一个ST官方的Demo板,暂时只有SW4STM32的工程,没有MDK的。
2 u6 H- @; j! G$ ^  z$ |( y: B' F
- ~! `6 C/ e& `. N
一般来说,stm32mp1处理器可以在M4上做电机控制,A7上做人机交互界面。" _: o$ X) R; D! X! G2 i
4 r) S$ t/ N0 |9 \9 H9 d/ x
  S5 L# p' K+ w  c" z& D6 [$ j/ }
应用开发环境搭建
' P5 h$ |( r9 ulinux开发需要在ubuntu下进行,主要是交叉编译器的安装。
9 r1 ?+ X9 h1 f: Y! L8 K
+ v  q5 X7 W  P, ~1 x, q
8 z3 _  l9 s4 W2 `% r: ?
linux进行C语言开发用的是GCC编译器进行代码编译,但ubuntu自带的GCC编译器是针对X86架构的。我们现在要编译的是ARM架构的代码,需要一个在X86架构的PC机上运行,可以编译ARM架构代码的GCC编译器,这个编译器就叫做交叉编译器。(就是在一个架构上编译另外一个架构的代码)
2 E, s0 P9 W  c* _! }. l' r1 ^/ z+ C' D' s

+ c! X# D+ x5 i0 A( ^pangu开发板的开发环境基于Ubuntu16.04 64bit,在虚拟机上安装ubuntu16.04操作系统
6 I$ j! T" _8 b" A# z
* e6 W' `! n! r( q; ?. b4 i

4 S* s3 R; ]; e' D1 GPanGu开发板的应用开发,需要先安装应用开发工具包(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。
) }* n4 W! o% o& F  w" m由于板载的flash预装的是weston系统,在此我选择在ubuntu系统中安装weston系统镜像的应用开发工具链。
8 z+ I5 t/ z. i# T' g; N下面开始安装i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh工具包% K$ b/ w. G, E6 V* r' `

3 T$ j' p( Q6 Y! C8 k+ ?

6 I  {6 X4 B. P3 _6 ^首先运行chmod a+x命令,给所有人加上可执行权限,用ls –lh命令查询文件的大小、权限等详细信息,权限都为rwx(读取、写入、执行)
3 d2 a3 `/ b; V' e
14.png

% {+ m1 D+ @( j3 L" x) g8 v接着在路径下运行安装命令:./i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh- g/ h: f, f( z$ {/ `% o
15.png
: I3 q0 Y3 _% {$ C
安装路径输入 /opt/st/pangu-i2som-image-weston/2.6-snapshot9 Z5 B! k" k- ~( `2 E6 s) W+ d
16.png

: m7 @) u0 X% {' X& R2 _- n6 I( @$ ^接着会让你输入管理员密码,之后就等待安装了。7 {) V/ O% p. X6 }1 m  B/ N
当出现SDK has been successfully时证明安装完成了。0 i8 N. z$ T& w8 }. y0 H
! C7 y  V) c3 V* P0 C& S+ C- S. Z

& ?: }- w6 A% |  G9 i+ U% K& G# z+ X6 m然后运行如下命令:
8 Z5 q0 W. C: ^) l. x5 h2 w. /opt/st/pangu-i2som-image-weston/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
0 _7 R) w: f  M9 Q8 s  \3 A3 u
17.png

. d0 j! Q7 w/ a! c! n' ^5 i8 j通过$CC –version验证开发工具是否正确安装,如图显示了版本信息表示工具链安装完成。
0 S4 s, J& N' W2 W
. N; d3 z$ }; p4 u9 Z3 g! R8 h% ]
; m9 K1 x/ U1 m/ u+ v3 p
编写测试文件test.c内容如下( x: D6 t- s1 g4 ~: |- ~
18.png
( o7 g! d6 M: }7 g! w1 P
编译test应用1 C: @: C6 \+ t( u* g( Z- @
19.png
0 o$ o4 ~2 E" ]* g/ c/ i% f! t: v
然后将输出的 复制到pangu开发板后直接运行: B4 ]3 n: y1 ]( ~; l; d

! B" u0 Z( V' \

/ T0 h, X; P+ F* l. m: r* R通过MobaXtern配置ssh登录pangu开发板,可通过sftp服务进行文件的复制拷贝。* L+ p) E! J1 N1 z' {, |" [& o4 ~
20.png
% j( j) v7 p, d) q$ _
上图是pangu开发板的home目录
" c  J, L: m6 t4 @, g, ?* W现在将编译输出的test从虚拟机的ubuntu系统复制到home目录下! h" f1 |+ v7 p4 I2 r; j
21.png
8 l9 y! L  U( b) B/ o
可以看到此时多了个test文件。
# J" v; R* ?0 y( v$ G8 w* Z" D, p( w9 ?" C) W- x; U% P

4 g9 c& o! H" Y! c. @3 U直接运行发现permission denied
5 U% e3 a4 t# ~$ t! j' U通过chmod a+x命令修改下权限,紧接着再输入./test
, D( e0 c1 x2 L4 w
22.png
9 P" O$ x5 w/ y7 M
输出是hello,I am wangrongyao!- ^' F7 S0 u+ X3 r. I
* }( ]" m- h0 R1 o* H
0 ?. R0 q9 H$ A  o$ e- M; V
pangu开发板的Micro usb接口可以作为从设备,默认是作为usb以太网设备,可以实现将开发板的usb otg接口作为从设备模式,模拟成为一个网口,通过PC的usb接口连接到开发板。使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.2
( O( b' a: r4 s/ _1 K8 ^
23.png
8 F0 Q" f+ @, U! T
PC通过usb连接开发板后,PC上会出现一个usb虚拟的网络设备,自行手动配置ip地址为192.168.7.10,之后就可以通过ssh登录pangu开发板了。
' a7 g: g, y) E+ b) C
24.png
+ m) [* E9 g0 {/ s% x: f  y; E
赞 收藏 评论0 发布时间:2021-6-4 13:23

举报

0个回答

所属标签

相似技术帖

官网相关资源

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