STMCU小助手
发布时间:2022-9-28 19:50
|
开发软件安装,STM32CubeMX5 w! C* ? E- o2 \ STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。stm32mp1中使用协处理器M4需要安装stm32cubemx:9 m: _/ s7 ?$ \- j3 v stm32cubemx运行环境搭建,包含两个部分,首先是安装java运行环境(版本必须为v1.7以上),然后是安装stm32cubemx开发软件。# \- d( G- x* r0 M& G5 ?" ^ 简单使用: 新建工程第一步,选择mcu型号# N: s5 {# u$ s3 x. p6 n " o: K d( G( g3 A
由于pangu开发板选用的是stm32mp157AAA3芯片,故选择stm32mp157AAAX
接下来配置时钟源,如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;4 s9 I0 |, o0 c9 v+ t2 m7 p 如果使用默认内部时钟(HSI),这一步可以略过;这里使用外部时钟,HSE,LSE, Q$ \" l# s6 g+ \* V pangu开发板上的外部时钟) ]6 b, k5 D# C/ F' x
5 ?+ S) i% H/ k 下拉框中选择crystal/Ceramic Resonator晶体/陶瓷晶振 , {" p& `5 q5 I& ~$ d0 L
$ v5 d# l# S4 x3 c+ j/ R 设置开发板上D17灯对应的PH6引脚为输出
生成工程设置/ O! \) l( z# N" M& {
5 n/ b5 {, d# ?: W2 \; K4 m- A, t' | 然后点击Generate code就可生成MDK工程代码。 时钟树配置,配置主要是外部晶振大小,分频系数,倍频系统以及选择器。" J0 s' t& O F4 [ 7 ?; z- v$ [. L3 N, R6 U; e
! @( i6 t! O$ K1 }. U5 r 最后用MDK打开生成的MDK-ARM工程文件,build编译。0error。 ' f( ]# R# F; {8 t
之前使用的STM32F407开发板用的是标准外设库(STD库), HAL库是硬件抽象层,更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。方便移植。近两年新出的STM32芯片,ST只提供HAL库,可用STM32Cube程序生成开发工具+HAL库 stm32cube目前几乎支持STM32全系列,我们需要到ST官网下载对应的STM32Cube包1 w2 J% J' K! }8 H$ [ - K+ c9 W ^+ s8 r
* J% W6 g! k" P+ ~ 包中大致有(1)Drivers文件夹,Drivers 文件夹包含BSP, CMSIS 和 STM32MP1xx_HAL_Driver 三个子文件夹。BSP是板级支持包,提供直接与硬件打交道的API。6 ~7 \8 m- u1 C/ y* n$ ] c @ CMSIS 文件夹是符合 CMSIS 标准的软件抽象层组件相关文件。主要包括 DSP库(DSP_LIB 文件夹), Cortex-M 内核及其设备文件(Include 文件夹), 微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。4 x' X' p5 w; F0 Y: s( ? STM32MP1xx_HAL_Driver文件夹中包含所有的 STM32MP1xx系列 HAL 库头文件和源文件,也就是所有底层硬件抽象层 API 声明和定义。 它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。 该文件夹包含 Src 和 Inc 两个子文件夹,其中 Src 子文件夹存放的是.c 源文件, Inc 子文件夹存放的是与之对应的.h 头文件。每个.c 源文件对应一个.h 头文件。$ V6 I# j1 W8 H; T Middlewares文件夹下有Third_Party文件夹(是第三方中间件)里面有FreeRTOS实时系统支持包和OpenAMP(?) [; {! t8 j u& k* M; h Projects文件夹存放的是一些可以直接编译的实例工程,每个文件夹对应一个ST官方的Demo板,暂时只有SW4STM32的工程,没有MDK的。 一般来说,stm32mp1处理器可以在M4上做电机控制,A7上做人机交互界面。+ P/ a$ q8 {9 M+ S( Z # y7 p* a) O1 b# Y' ] 应用开发环境搭建1 m/ u/ @% j. `; Q* | linux开发需要在ubuntu下进行,主要是交叉编译器的安装。3 Q. J% u7 X9 \ linux进行C语言开发用的是GCC编译器进行代码编译,但ubuntu自带的GCC编译器是针对X86架构的。我们现在要编译的是ARM架构的代码,需要一个在X86架构的PC机上运行,可以编译ARM架构代码的GCC编译器,这个编译器就叫做交叉编译器。(就是在一个架构上编译另外一个架构的代码)- I3 y. G- D. M/ ? | pangu开发板的开发环境基于Ubuntu16.04 64bit,在虚拟机上安装ubuntu16.04操作系统/ G# b" R3 V! a+ v 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。 由于板载的flash预装的是weston系统,在此我选择在ubuntu系统中安装weston系统镜像的应用开发工具链。: m8 M K' o& s! N 下面开始安装i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh工具包: u# i2 r/ b/ @ 9 P* U3 l. C3 J) o8 P9 T9 s5 a% r 首先运行chmod a+x命令,给所有人加上可执行权限,用ls –lh命令查询文件的大小、权限等详细信息,权限都为rwx(读取、写入、执行) # P( H! ~/ X* b F
接着在路径下运行安装命令:./i2som-image-weston-openstlinux-weston-pangu-x86_64-toolchain-2.6-snapshot.sh! m2 \% @1 ` f2 D
安装路径输入 /opt/st/pangu-i2som-image-weston/2.6-snapshot" V/ Q- X$ c3 G - ^5 ~* a4 u9 _, Z' E9 J( B. g
3 C6 `8 K, x X) t 接着会让你输入管理员密码,之后就等待安装了。 当出现SDK has been successfully时证明安装完成了。 # R" p, b d, K/ J) |: V 然后运行如下命令: . /opt/st/pangu-i2som-image-weston/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi0 Q+ p) C: Q1 |; }( R$ X9 i 6 U8 \2 M7 n0 v7 A$ y
0 P c" J7 ~3 L( Y 通过$CC –version验证开发工具是否正确安装,如图显示了版本信息表示工具链安装完成。 编写测试文件test.c内容如下' b# Q/ p# g$ B1 V , ~$ } T1 O" ]5 ]! d
+ t; [; w# e0 t 编译test应用 ) [1 y$ X* p6 t5 \
9 W4 Y% b, X" [) n" I, S4 @3 R 然后将输出的 复制到pangu开发板后直接运行 5 G8 q- P, f4 J( X( c! _ 通过MobaXtern配置ssh登录pangu开发板,可通过sftp服务进行文件的复制拷贝。4 Y( | _3 I3 F& \
上图是pangu开发板的home目录 现在将编译输出的test从虚拟机的ubuntu系统复制到home目录下! O3 c l9 k ^9 g) Z + J% k9 }/ X/ { T; S5 H
可以看到此时多了个test文件。 Z2 Y; Z: }- {% W
直接运行发现permission denied 通过chmod a+x命令修改下权限,紧接着再输入./test: u2 W( T& i9 |! h 输出是hello,I am wangrongyao!8 G9 @ ?& W4 z1 p2 n. U7 t pangu开发板的Micro usb接口可以作为从设备,默认是作为usb以太网设备,可以实现将开发板的usb otg接口作为从设备模式,模拟成为一个网口,通过PC的usb接口连接到开发板。使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.2( t- w3 I8 w7 l6 z8 Y( }2 Z $ c3 B3 O; F% @/ a3 |
PC通过usb连接开发板后,PC上会出现一个usb虚拟的网络设备,自行手动配置ip地址为192.168.7.10,之后就可以通过ssh登录pangu开发板了。 : a# g6 _3 d- G7 c5 [/ D: Z
/ q w1 T3 g% | ————————————————1 U, y$ e% c" Z/ s7 R" i 版权声明:honor、 |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版