请选择 进入手机版 | 继续访问电脑版

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

STM32MP135F-DK 开箱&开发环境搭建&硬件设计分析

[复制链接]
短笛君 发布时间:2024-1-30 15:39

STM32MP135芯片简介

STM32MP135微处理器是ST基于单Arm® Cortex®-A7内核设计的新一代MPU,运行频率可达1GHz。该产品系列具有一个专用的LCD-TFT并行显示接口,一个16位并行摄像头接口和双以太网端口。STM32MP13 MPU专门面向入门级Linux、裸机或RTOS系统设计,并已预先集成Microsoft Azure RTOS。STM32MP135系列提供3种不同的封装,支持实现高性价比PCB架构。

STM32MP135FDK开发板

最近收到了与非网寄来的STM32MP135FDK开发板,刚好最近也在学习嵌入式Linux开发,

做几期测评和大家一起学习

e5753ab8bd9c5952f52bbb675b659fd.jpg

f4e36b2aab6b384d10d964e47f2dca1.jpg

套件内共包含开发板本体,一张16G闪迪SD卡,一个摄像头模块和排线

开发板正面十分简洁,分别是用户按键,BOOT设置开关,两个用户按键和拓展口

拓展口定义会在后面分析

开发板背面为一组USB2.0接口*4,两个网口,还有电源接口和一个摄像头接口

主板上还预留有一个TypeC的OTG接口,

SD卡中已经提前烧录好了系统镜像,通过BOOT引脚设置为SD卡启动即可启动

板载的STLINKV3可以进行裸机开发,不过在实际应用中还是通过USB进行固件升级比较常用

通过查阅手册 MP135支持以下几种启动方式

BOOT0 BOOT1 BOOT2 MODE
0 0 0 USB BOOT
0 0 1 Res
1 0 1 SD CARD MMC1

手册中并未给出NANDflash的启动方式,只给出了SD卡启动

通过设置拨码开关 我们可以进入到预先烧写的系统中

fd30cc2314311931348ad7809c33755.jpg621cac63475563f7df0ebdf712dc07e.jpg

开发环境搭建

开发均在Ubuntu22.04中进行,关于22.04的虚拟机安装配置再次不进行过多阐述,请读者自行百度Vmware安装配置与Ubuntu安装

ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,

但是 Ubuntu 自带的GCC 编译器是针对 X86 架构的!而我们现在 要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架 构代码的 GCC 编译器

ST 推荐了两款通用交叉编译器,一个是 ARM 官方出品的:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf,一个是 linaro 出品的:gcc-linaro-7.2.1-2017.11- x86_64_arm-linux-gnueabi.tar.xz,本教程我们使用 ARM 官方出品的交叉编译器。

下载好编译器后首先进行依赖库安装

 sudo apt-get update
 sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib  chrpath socat cpio python3 python3-pip python3-pexpect 

 sudo apt-get install libssl-dev libgmp-dev libmpc-dev lz4 zstd
 sudo apt-get install build-essential libncurses-dev libyaml-dev libssl-dev 
 sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html libxml2-utils

安装好依赖库之后下载官方的SDK进行工具设置

https://www.st.com/zh/embedded-software/stm32mp1starter.html

cd $HOME/STM32MPU_workspace/tmp
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz

将SDK解压至工作目录下 设置权限 执行脚本

 chmod +x stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.2.1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.sh

 ./stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.2.1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.sh -d <working directory absolute path>/Developer-Package/SDK

最后别忘了source一下环境

cd $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v5.0.0/Developer-Package 
 source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

到这步交叉编译环境就设置好了

如果有条件的话建议在实体机中部署Ubuntu

验证交叉编译环境

首先查看一下交叉编译工具的版本号,输入如下命令:

arm-none-linux-gnueabihf-gcc -v

我们用的是命令“gcc”。要使 用刚刚安装的交叉编译器的时候使用的命令是“arm-none-linux-gnueabihf-gcc”,“arm-none-linuxgnueabihf-gcc”的含义如下:

1、arm 表示这是编译 arm 架构代码的编译器。

2、none 表示厂商,一般半导体厂商会修改通用的交叉编译器,此处就是半导体厂商的名 字,ARM 自己做的交叉编译这里为 none,表示没有厂商。

3、linux 表示运行在 linux 环境下。

4、gnueabihf 表示嵌入式二进制接口,后面的 hf 是 hard float 的缩写,也就是硬件浮点,说 明此交叉编译工具链支持硬件浮点。

5、gcc 表示是 gcc 工具。

检查目标体系结构

 echo $ARCH
arm

检查目标工具的工具链二进制前缀

 echo $CROSS_COMPILE
arm-ostl-linux-gnueabi-

检查 C 编译器版本

$CC --version
arm-ostl-linux-gnueabi-gcc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

完成以上步骤就完成了交叉编译环境搭建,

下一期会讲解如何创建一个Hello Word程序并在开发板上运行起来

收藏 评论0 发布时间:2024-1-30 15:39

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版