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

【分享】STM32MP1开发板入门

[复制链接]
STMCU-管管 发布时间:2021-6-4 13:23
STM32MP1系列微处理器(ARM dual Cortex-A7 650Mhz + Cortex-M4)4 ?7 f3 C* O: X
1.png
1 R) q$ ?# R7 m1 r. H8 D" C
2.png
, A& c: |; P: a# |
开发软件安装,STM32CubeMX
; d8 Q( ~, y) r; o1 fSTM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。stm32mp1中使用协处理器M4需要安装stm32cubemx:
2 A0 ?- K+ B& E! Z  _stm32cubemx运行环境搭建,包含两个部分,首先是安装java运行环境(版本必须为v1.7以上),然后是安装stm32cubemx开发软件。
3 T9 y9 [" `) T& h; U0 N简单使用:0 C2 K; g( Y8 C- j
新建工程第一步,选择mcu型号
/ J) ^! d; F: E, a0 D
3.png

, C, r/ D# U  s$ j5 B由于pangu开发板选用的是stm32mp157AAA3芯片,故选择stm32mp157AAAX+ _& L  i3 a' ~7 x0 S8 u6 a% U+ E
4.png
) l8 \, a( c& J& ]6 |
接下来配置时钟源,如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
) h# J# p" V( X7 x0 I- L: B. d1 S5 Q/ b+ O* x; c

. S8 u2 J' {) Q2 L, ?& ^5 V如果使用默认内部时钟(HSI),这一步可以略过;这里使用外部时钟,HSE,LSE; E3 A" U" F" t0 ]) X6 a/ C, D( d
pangu开发板上的外部时钟
$ e  Q, d2 j( J3 r6 Y. _/ Z3 E4 n
5.png

" w5 |% z0 @8 M" T7 W# b2 C2 i下拉框中选择crystal/Ceramic Resonator晶体/陶瓷晶振
2 j0 [# a7 x+ `7 L; |- _
6.png

; n2 E% i# w4 h9 J设置开发板上D17灯对应的PH6引脚为输出2 Z: v5 |  }" }7 W' J% B; I
7.png
9 f/ k+ w  h+ D, q1 L4 \4 d2 P
生成工程设置7 @' H7 W" }, V0 a! |
10.png
2 q; u9 q) M1 R
然后点击Generate code就可生成MDK工程代码。6 O$ Y8 ]8 Z4 y4 z9 V
时钟树配置,配置主要是外部晶振大小,分频系数,倍频系统以及选择器。. P, h+ k$ O! P* T6 k3 p" W
11.png

$ C7 x/ |, |$ i6 I9 i! C最后用MDK打开生成的MDK-ARM工程文件,build编译。0error。0 H( `4 c' _; M. p* x
12.png
9 l; H, G: @+ U! q) M0 g/ b6 i5 P
之前使用的STM32F407开发板用的是标准外设库(STD库), HAL库是硬件抽象层,更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。方便移植。近两年新出的STM32芯片,ST只提供HAL库,可用STM32Cube程序生成开发工具+HAL库
$ a' W6 F( K+ ?) e& A, i1 cstm32cube目前几乎支持STM32全系列,我们需要到ST官网下载对应的STM32Cube包0 c1 G" {9 G$ [2 b$ ]
13.png
# m7 I5 w# G' b( h
包中大致有(1)Drivers文件夹,Drivers 文件夹包含BSP, CMSIS 和 STM32MP1xx_HAL_Driver 三个子文件夹。BSP是板级支持包,提供直接与硬件打交道的API。
9 b  m3 ^! a) B4 e  _* i/ T) ZCMSIS 文件夹是符合 CMSIS 标准的软件抽象层组件相关文件。主要包括 DSP库(DSP_LIB 文件夹), Cortex-M 内核及其设备文件(Include 文件夹), 微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。$ A2 q. z% d3 p# S  t( |
STM32MP1xx_HAL_Driver文件夹中包含所有的 STM32MP1xx系列 HAL 库头文件和源文件,也就是所有底层硬件抽象层 API 声明和定义。 它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。 该文件夹包含 Src 和 Inc 两个子文件夹,其中 Src 子文件夹存放的是.c 源文件, Inc 子文件夹存放的是与之对应的.h 头文件。每个.c 源文件对应一个.h 头文件。
; w1 O9 u- s" q+ lMiddlewares文件夹下有Third_Party文件夹(是第三方中间件)里面有FreeRTOS实时系统支持包和OpenAMP(?)
# y3 n5 F  {8 h0 \  mProjects文件夹存放的是一些可以直接编译的实例工程,每个文件夹对应一个ST官方的Demo板,暂时只有SW4STM32的工程,没有MDK的。1 R/ T- I; R, J8 @6 K# G

. M+ u$ O9 j8 }5 X- x2 P4 t9 B
3 N) y' |" p/ Y9 t, w% o
一般来说,stm32mp1处理器可以在M4上做电机控制,A7上做人机交互界面。
( y2 W0 u# F1 E* }4 f' `( K3 O
, y% O3 F1 v; z) Z- m" V, q

3 o5 k) @3 v6 B$ M+ _9 h应用开发环境搭建
3 v$ s3 m( x  T) d; o6 Z  g5 A" elinux开发需要在ubuntu下进行,主要是交叉编译器的安装。3 Y; b9 L" N6 I0 u
: T& k1 m2 j) [! Y3 \0 J4 c+ n+ p$ T5 O

5 ^4 N% j5 Z0 m8 dlinux进行C语言开发用的是GCC编译器进行代码编译,但ubuntu自带的GCC编译器是针对X86架构的。我们现在要编译的是ARM架构的代码,需要一个在X86架构的PC机上运行,可以编译ARM架构代码的GCC编译器,这个编译器就叫做交叉编译器。(就是在一个架构上编译另外一个架构的代码)
6 C( ^7 [" h) R( K% ]- v0 K
1 P* X7 O( \: `
2 {- I: R4 G4 r" r
pangu开发板的开发环境基于Ubuntu16.04 64bit,在虚拟机上安装ubuntu16.04操作系统# V2 _* |( C  R2 E2 h  X+ G5 [# |

, ?  D  S, T* {* M: O. }% T
0 F  ^7 J6 j. E- j; ]
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。
5 a" \8 [* h- [0 ]% C. c0 A. @由于板载的flash预装的是weston系统,在此我选择在ubuntu系统中安装weston系统镜像的应用开发工具链。9 y" c4 Q9 a/ {6 H5 u+ {* X, y
下面开始安装i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh工具包) H+ \$ ^2 O( B" I* Y# t$ m5 d" u
: f0 B9 E4 U9 i+ O4 n
6 p3 E1 w3 |5 z/ C, V# ?% K6 o
首先运行chmod a+x命令,给所有人加上可执行权限,用ls –lh命令查询文件的大小、权限等详细信息,权限都为rwx(读取、写入、执行)
. l" k, q  W  T
14.png

; Q/ C2 M" b/ }3 Z, X接着在路径下运行安装命令:./i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh- u4 j3 j: L$ C% I$ N
15.png
: h5 z% u8 w& _3 F- ]
安装路径输入 /opt/st/pangu-i2som-image-weston/2.6-snapshot1 N+ ?+ R1 y2 C1 k
16.png
" v! H- ~! W* a4 O2 {9 w2 M  g
接着会让你输入管理员密码,之后就等待安装了。
& ?3 C0 ?7 w: L3 l  C6 w当出现SDK has been successfully时证明安装完成了。2 F1 A3 Y$ V+ ^7 Y0 n3 I, x

5 l, \$ F5 ~/ x, U* D( l

9 t  z9 U2 \* Z* H9 ^# }然后运行如下命令:  v) [8 X; W" I& b  J$ q( M" X5 V
. /opt/st/pangu-i2som-image-weston/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi8 c) V  f  [, [( _7 Q2 m2 ?7 w
17.png
) L, q" T/ j% ?- G! i
通过$CC –version验证开发工具是否正确安装,如图显示了版本信息表示工具链安装完成。% u, L. f( L6 r1 o2 h0 u

( |; z* x- J; x, Y

2 H. n# }1 @! K8 ^8 L4 o3 }编写测试文件test.c内容如下
( n- s! D! }$ _
18.png
$ `+ R) S/ B+ X* x: a
编译test应用
% @3 H6 ~0 l) b/ {9 S
19.png
: _. y$ D; z, U0 o% [, I, h
然后将输出的 复制到pangu开发板后直接运行, }- p9 e& K& T( l4 ?" K3 ^

# x4 l7 Y2 Q( {+ j* ^* P
$ S: ~8 Z1 X- l$ h% I: R/ Y& Y
通过MobaXtern配置ssh登录pangu开发板,可通过sftp服务进行文件的复制拷贝。( n. y, x4 q8 O0 k. |! L: o
20.png
  [% P. i0 S! ]+ k* Y. ]
上图是pangu开发板的home目录9 R! o9 s- u% Z# V
现在将编译输出的test从虚拟机的ubuntu系统复制到home目录下6 J1 K/ J( d0 m& {% N
21.png
( P- X, J4 |4 U
可以看到此时多了个test文件。
* Y* ?$ t, `7 q# z8 I7 W7 K+ s- p% P7 g+ l7 O. p
) Z  M* \3 k3 O' ~' `6 R  i+ \
直接运行发现permission denied
; i; {8 T# Y7 Q3 |, j  B通过chmod a+x命令修改下权限,紧接着再输入./test" z0 s  v" T9 K7 {3 L
22.png
1 _" ^  [$ w: G
输出是hello,I am wangrongyao!! ~4 i' H# _1 _* L8 K! f

# G7 t5 P( y5 h( `' e) ~2 _

2 F8 O" e% I' }) s" t" cpangu开发板的Micro usb接口可以作为从设备,默认是作为usb以太网设备,可以实现将开发板的usb otg接口作为从设备模式,模拟成为一个网口,通过PC的usb接口连接到开发板。使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.2! j- K# Z' I+ H" H
23.png
2 s) s- `6 V: e8 R$ q& u- }
PC通过usb连接开发板后,PC上会出现一个usb虚拟的网络设备,自行手动配置ip地址为192.168.7.10,之后就可以通过ssh登录pangu开发板了。3 b) @% X0 T# }  \& w9 s8 n/ ]$ i
24.png

! y, ]6 E+ f$ d# C
赞 收藏 评论0 发布时间:2021-6-4 13:23

举报

0个回答

所属标签

相似技术帖

官网相关资源

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