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

【分享】STM32MP1开发板入门

[复制链接]
STMCU-管管 发布时间:2021-6-4 13:23
STM32MP1系列微处理器(ARM dual Cortex-A7 650Mhz + Cortex-M4)
8 a9 T9 M  J5 G% s( h6 v
1.png
1 \1 |9 ?, q1 }9 G/ D% Q* D3 y/ J
2.png
5 t0 N: `7 T' `8 |% m6 o
开发软件安装,STM32CubeMX
, V% K; ~* b2 u3 I- _STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。stm32mp1中使用协处理器M4需要安装stm32cubemx:# q3 F0 m$ m' _& k& V6 e# o( D
stm32cubemx运行环境搭建,包含两个部分,首先是安装java运行环境(版本必须为v1.7以上),然后是安装stm32cubemx开发软件。
) S  y/ e: _8 b2 }3 j* |简单使用:
) ^0 h& X; K; f5 N/ N, d新建工程第一步,选择mcu型号) Q! \4 [% U. U/ \$ ~! _5 ~
3.png
& @" A; ~3 A. \3 a+ z
由于pangu开发板选用的是stm32mp157AAA3芯片,故选择stm32mp157AAAX5 E  f4 A! t7 ?
4.png

6 `( J" Q/ G, W9 g* C接下来配置时钟源,如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;. k% u1 v& i+ r  D* Y0 [

$ ?6 @0 c! |  @6 n$ r& `

2 D8 M! ?; q8 V9 K如果使用默认内部时钟(HSI),这一步可以略过;这里使用外部时钟,HSE,LSE3 h# l9 \2 u7 |5 {( @8 l  Z
pangu开发板上的外部时钟
0 f3 ^! v: s) ~7 r
5.png
' |9 s5 r* j! n0 P' n- _. x
下拉框中选择crystal/Ceramic Resonator晶体/陶瓷晶振
( K1 n/ ~  Z, S* ~& H) a& g
6.png

  P7 L- g$ l2 u; H8 a" S" Z; t设置开发板上D17灯对应的PH6引脚为输出. ?5 p* T+ F& u5 W; a+ L$ E
7.png
- R; w8 P: @" {# _! ~
生成工程设置3 W) C* {# B  e1 [4 l5 w- ?1 E
10.png
8 h( y( ]9 }5 z7 a5 C2 D9 c0 h
然后点击Generate code就可生成MDK工程代码。
0 X. D- P( B* w  y1 ]' a. k时钟树配置,配置主要是外部晶振大小,分频系数,倍频系统以及选择器。) C5 G+ f. m, M
11.png

( y( R( V: I( O! j; _* D$ _' g, f最后用MDK打开生成的MDK-ARM工程文件,build编译。0error。
5 k4 N+ ^  e4 C3 B* T" Q
12.png
% c, [( N) x8 h  f% E$ |- q" X. C
之前使用的STM32F407开发板用的是标准外设库(STD库), HAL库是硬件抽象层,更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。方便移植。近两年新出的STM32芯片,ST只提供HAL库,可用STM32Cube程序生成开发工具+HAL库9 p: m; j9 S) P
stm32cube目前几乎支持STM32全系列,我们需要到ST官网下载对应的STM32Cube包& C+ ~' R/ {4 A# j: l2 {
13.png
  [4 [7 c3 [6 H9 H
包中大致有(1)Drivers文件夹,Drivers 文件夹包含BSP, CMSIS 和 STM32MP1xx_HAL_Driver 三个子文件夹。BSP是板级支持包,提供直接与硬件打交道的API。# Y) I$ T1 R; i2 J5 }
CMSIS 文件夹是符合 CMSIS 标准的软件抽象层组件相关文件。主要包括 DSP库(DSP_LIB 文件夹), Cortex-M 内核及其设备文件(Include 文件夹), 微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。# I5 b. n, R! I" _# {) ^
STM32MP1xx_HAL_Driver文件夹中包含所有的 STM32MP1xx系列 HAL 库头文件和源文件,也就是所有底层硬件抽象层 API 声明和定义。 它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。 该文件夹包含 Src 和 Inc 两个子文件夹,其中 Src 子文件夹存放的是.c 源文件, Inc 子文件夹存放的是与之对应的.h 头文件。每个.c 源文件对应一个.h 头文件。
9 y2 p. y- m0 J% ?Middlewares文件夹下有Third_Party文件夹(是第三方中间件)里面有FreeRTOS实时系统支持包和OpenAMP(?)6 Z  o& Z% M  O  d+ r: u7 L6 s6 X* N
Projects文件夹存放的是一些可以直接编译的实例工程,每个文件夹对应一个ST官方的Demo板,暂时只有SW4STM32的工程,没有MDK的。) r; I0 b  U! `! F) J% l6 n1 B
5 _2 }9 ~+ @9 R( L

! d# ]  Z, b" b3 V' V2 G7 w; \0 @一般来说,stm32mp1处理器可以在M4上做电机控制,A7上做人机交互界面。: a* d4 c  g2 B! f* q7 c6 k

; H) ~  E1 e4 v! z# I& K, ?$ A
7 Q) l( w0 X4 B+ f+ x3 W$ _
应用开发环境搭建
1 a& k9 v# m1 Z# N2 l: d4 E9 u! `linux开发需要在ubuntu下进行,主要是交叉编译器的安装。
" p/ `: d) g8 ?' u) ?: M' @/ M
0 \7 k# Q* u! `. [1 e$ Q
3 E0 v0 i& f! L2 f
linux进行C语言开发用的是GCC编译器进行代码编译,但ubuntu自带的GCC编译器是针对X86架构的。我们现在要编译的是ARM架构的代码,需要一个在X86架构的PC机上运行,可以编译ARM架构代码的GCC编译器,这个编译器就叫做交叉编译器。(就是在一个架构上编译另外一个架构的代码)1 D) a! T1 r: G
" g' _$ f3 a# v6 L. G% ?7 M

1 a  f# v- f# K0 q- A7 A1 bpangu开发板的开发环境基于Ubuntu16.04 64bit,在虚拟机上安装ubuntu16.04操作系统, z( z3 P2 N+ |7 j6 e
1 X2 k; Z0 o8 }/ _

  I3 A! K1 S4 PPanGu开发板的应用开发,需要先安装应用开发工具包(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。  F, ^! m& |" ^1 J' @
由于板载的flash预装的是weston系统,在此我选择在ubuntu系统中安装weston系统镜像的应用开发工具链。
& n2 R! F# t9 g' r" b$ t# i下面开始安装i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh工具包+ c! [4 H/ a# {* {" v% q
3 Y% o9 F0 j/ H

3 ~1 n) b. i" x$ ~; b7 G$ d1 \" M首先运行chmod a+x命令,给所有人加上可执行权限,用ls –lh命令查询文件的大小、权限等详细信息,权限都为rwx(读取、写入、执行)3 K6 X/ `; F+ A- J+ ?1 Y
14.png

# z! c- l2 `/ u; r) w$ K接着在路径下运行安装命令:./i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh
8 u6 e% m( u  M
15.png
6 }+ g% F/ \0 Z
安装路径输入 /opt/st/pangu-i2som-image-weston/2.6-snapshot4 r. A( [8 G  _/ G- z( J
16.png

# W' g, O% e* d$ [5 n) Q: J# H接着会让你输入管理员密码,之后就等待安装了。
' }+ S" C* `% x4 C0 h+ B当出现SDK has been successfully时证明安装完成了。0 d& V1 j& U- i+ o  y$ p
3 Z& E) ]; S4 j6 i; O! P: N

& P( u) p6 _: d5 y  _7 U! a" v然后运行如下命令:
' d- p! \2 ~! G) a1 w. /opt/st/pangu-i2som-image-weston/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
+ W+ P8 {, m, o0 U9 v
17.png

" r/ @4 q1 D- F8 G0 o通过$CC –version验证开发工具是否正确安装,如图显示了版本信息表示工具链安装完成。' U" p) X5 f: p( \# ]' r& W3 {' X

, J3 T$ P) c3 h4 j

3 r1 C3 z  c. Y2 y/ h编写测试文件test.c内容如下7 D( m" t& H" B8 |6 N# X. N  |
18.png
9 w5 e1 T% T& T7 t
编译test应用
5 O/ i3 }+ \( U) w- t% j* R) O
19.png

  T$ |' j1 E4 z5 t8 Y4 n然后将输出的 复制到pangu开发板后直接运行! C5 a1 B' i: y
0 W+ _- w: G4 F  i. \% ?

( R4 J  o! c" ~0 I) f) I( e$ B通过MobaXtern配置ssh登录pangu开发板,可通过sftp服务进行文件的复制拷贝。' v* K6 a" y: F" v- |, C( x
20.png
# W  t; Q. z# z; B% }+ Y
上图是pangu开发板的home目录
6 \9 L0 b$ R& L现在将编译输出的test从虚拟机的ubuntu系统复制到home目录下( o' e) P; S% _/ C: K
21.png

. E7 Z! @7 A3 n+ {7 W' t可以看到此时多了个test文件。
, S6 A7 u0 t6 [$ `9 g8 l" j! y' U. S/ }+ e% ~* p
$ I0 a+ \. d6 g" q) t$ p0 h
直接运行发现permission denied8 c: N/ X$ k' y; f4 v) Y
通过chmod a+x命令修改下权限,紧接着再输入./test
$ W9 D& A; _- S2 \
22.png
6 H2 _/ B! i* U4 }) k9 G6 D" Y8 g- x
输出是hello,I am wangrongyao!
( O3 _- y$ ?1 g" h# J; @, t. e/ x* \4 e$ y! g8 w
! {/ X) u; n6 p5 m& B/ E
pangu开发板的Micro usb接口可以作为从设备,默认是作为usb以太网设备,可以实现将开发板的usb otg接口作为从设备模式,模拟成为一个网口,通过PC的usb接口连接到开发板。使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.2/ Q5 ?. S( q3 c3 t6 a3 b5 O
23.png
2 T  _$ S+ M" U$ h# u9 ?
PC通过usb连接开发板后,PC上会出现一个usb虚拟的网络设备,自行手动配置ip地址为192.168.7.10,之后就可以通过ssh登录pangu开发板了。* \8 H8 {  k7 V( o* f
24.png

: q6 u8 u' P  x7 Y
收藏 评论0 发布时间:2021-6-4 13:23

举报

0个回答

所属标签

相似分享

官网相关资源

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