关注+星标公众,不错过精彩内容

转自 | McuLover666

一、STM32MP157

1. 系列介绍

STM32MP157 微处理器基于灵活的双 Arm® Cortex®-A7 内核(工作频率 800 MHz)和 Cortex®-M4 内核(工作频率 209 MHz)架构,并配一个专用的 3D 图形处理单元(GPU)、MIPI-DSI 显示接口、以及一个 CAN FD 接口。

STM32MP157 3D OpenGL ES 2.0 图形引擎专为在图形用户界面(GUI)、菜单显示或动画等应用中加速 3D 图形而设计,可以配合面向行业标准 API 优化的软件堆栈,支持 Android™ 和 Linux® 嵌入式开发平台。

除了一个 LCD-TFT 显示控制器,STM32MP157 系列还内嵌多达 37 个通信外设,包括 10/100M 或千兆以太网、3 个 USB 2.0 主机/OTG、29 个定时器和高级模拟器件。

除了真随机数生成器(TRNG)、硬件加密和哈希处理器之外,安全选项还包括安全启动、TrustZone® 外设、以及主动篡改检测功能。

2. STM32MP157 概览

3. 文档

  • 官方介绍[1]

  • 参考手册[2]

  • 规格书[3]

4. STM32MPU wiki

Wiki 地址:https://wiki.stmicroelectronics.cn/stm32mpu[4]

二、ST 提供的工具和软件

1. STM32MPU Embedded Software Package

STM32MPU Embedded Software Package 包括以下三种包:

  • Starter Package:入门包,快速入门 STM32MP 系列微处理器,一般是编译好的固件

  • Developer Package:开发包,包括 SDK、uboot 源码、Linux 源码等,用于我们自己修改

  • Distribution Package:发行包,可以创建我们自己的 Linux 发布包

2. Developer Package

本系列文章中我们主要使用 Developer Package,其中主要内容有:

  • SDK:用于在主机上交叉编译开发(含交叉编译器)

  • 源码:

    • U-Boot

    • Trusted Firmware-A (TF-A)

    • Linux kernel®

    • Open source Trusted Execution Environment (OP-TEE)(可选)

  • The STM32Cube MPU Package

    • 用于 M 核开发

    • 为 OpenSTLinux distribution 生成设备树

    • 为 STM32CubeIDE 生成初始化代码

    • STM32CubeMX

    • STM32CubeIDE

三、A 核开发环境搭建(Develop on Arm® Cortex®-A7)

1. 系统要求

存储空间建议 100G,我安装完 SDK 之后的空间占用情况如下:

本文中我使用 ubuntu 18.04,阿里源。

2. 安装 SDK

(1)安装额外的包:

需要的包:

sudo apt-get update
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 pylint xterm
sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
sudo apt-get install libmpc-dev libgmp-dev

开发包中需要用到的包:

sudo apt-get install libncurses5 libncurses5-dev libncursesw5-dev libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex g++ libyaml-dev libmpc-dev libgmp-dev

安装 repo:

sudo apt-get install repo

一些有用的工具:

sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils

(2)额外的配置

Linux 系统上,默认允许 MMC 上有 8 个分区,修改支持 16 个分区,将以下选项添加到 modprobe 中:

echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf

(3)下载 SDK

下载链接[5]

下载后放到 $HOME/STM32MPU_workspace/tmp 路径下,重命名为.tar.xz 格式,解压:

cd $HOME/STM32MPU_workspace/tmp
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz

(4)安装 SDK

创建 STM32MP15 开发包 SDK 路径:

mkdir -p $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK

给脚本可执行权限:

sudo chmod +x stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh

执行脚本(将命令中的 mculover666 替换为自己的用户名):

./stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh -d /home/mculover666/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK

安装完成后如图:(5)环境变量生效:

cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package
source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

(6)检查 SDK 是否可用

① 检查目标架构(arm):

echo $ARCH

② 检查目标工具的工具链二进制前缀(arm-ostl-linux-gnueabi-):

echo $CROSS_COMPILE

③ 检查交叉编译器:

echo $CC

结果:

arm-ostl-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mculover666/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

④ 检查交叉编译器版本:

$CC --version

结果如下:

arm-ostl-linux-gnueabi-gcc (GCC) 9.3.0
Copyright (C) 2019 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.

⑤ 检查 SDK 版本:

echo $OECORE_SDK_VERSION

结果如下:

3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17

至此,SDK 安装完成,STM32MP157 开发环境搭建完成。

四、M 核开发环境搭建(Develop on Arm® Cortex®-M4)

1. 安装 STM32CubeIDE

下载链接:STM32CubeIDE[6]

下载之后解压:

unzip en.st-stm32cubeide_1.8.0_11526_20211125_0815_amd64.sh_v1.8.0.zip

赋予可执行权限:

sudo chmod -x st-stm32cubeide_1.8.0_11526_20211125_0815_amd64.sh
sduo ./st-stm32cubeide_1.8.0_11526_20211125_0815_amd64.sh

安装完成后如图:启动后界面如下:

2. 安装 STM32Cube MP1 package

下载扩展包到$HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package目录,下载链接:en.STM32Cube_FW_MP1_V1-5-0.zip[7]

解压:

unzip en.STM32Cube_FW_MP1_V1-5-0_v1.5.0.zip

内容说明如下:

STM32Cube_FW_MP1_V1.5.0
├── Drivers
│   ├── BSP                          BSP drivers for the supported STM32MP1 boards
│   │   └── [...]
│   ├── CMSIS
│   │   └── [...]
│   └── STM32MP1xx_HAL_Driver        HAL drivers for the supported STM32MP1 devices
│       └── [...]
├── _htmresc
│   └── [...]
├── License.md
├── Middlewares
│   └── [...]
├── package.xml
├── Projects
│   ├── STM32CubeProjectsList.html   List of examples and applications for STM32CubeMP1 package
│   ├── STM32MP157C-DK2              Set of examples and applications → STM32MP15 Discovery kits
│   │   └── [...]
│   └── STM32MP157C-EV1              Set of examples and applications → STM32MP15 Evaluation boards
│       └── [...]
├── Readme.md
├── Release_Notes.html               Release note for STM32CubeMP1 package
└── Utilities└── [...]

3. 修改、编译、加载新固件

3.1. 打开工程

(1)关闭欢迎界面,进行工作界面:(2)导入示例工程

点击【File】-> 【import】,选择导入已经存在的工程:(3)选择打开 OpenAMP_TTY_echo 示例工程

工程所在位置在$HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/STM32Cube_FW_MP1_V1.5.0/Projects/STM32MP157C-DK2/Applications/OpenAMP/OpenAMP_TTY_echo/STM32CubeIDE,选择工程根路径:点击【Finish】后进入工程界面:

3.2. 编译工程

编译完成:

3. 检查与开发板的连接

必须保证开发板网络和开发机连通。

软件会下载会检测开发板 ip 核状态:点击建立串口终端:建立成功后如图:

4. 开启调试会话

选择 OpenAMP_TTY_echo_CM4 工程,右键单击,选择 【Debug As】 -> 【Debug configurations... 】,打开调试配置窗口:配置好后点击【Debug】进入调试:在串口终端查看 CM4 核的两个串口:测试 CM4 核的串口是否回传:M4 核正常运行,LED7 正常闪烁,测试完毕。

参考资料

官方介绍: 

https://www.st.com/zh/microcontrollers-microprocessors/stm32mp157.html

参考手册: 

https://www.st.com/zh/microcontrollers-microprocessors/stm32mp157.html

规格书: 

https://www.st.com/zh/microcontrollers-microprocessors/stm32mp157.html

https://wiki.stmicroelectronics.cn/stm32mpu: https://wiki.stmicroelectronics.cn/stm32mpu

下载链接: [https://st.com/content/ccc/resource/technical/software/sw_development_suite/group0/63/94/71/38/24/c4/4f/7f/stm32mp1dev_yocto_sdk/files/SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz/_jcr_content/translations/en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz

STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html

en.STM32Cube_FW_MP1_V1-5-0.zip: https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-mcu-mpu-packages/stm32cubemp1.html

------------ END ------------

后台回复『STM32』『ST工具』相关文章。

欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

欢迎关注我的视频号:

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

手把手教你搭建STM32MP1开发环境相关推荐

  1. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹

    刚刚装好了Ubuntu,安装VMware Tools会让我们有更好的体验,那么为什么要安装VMware Tools?该如何安装呢?本篇博客将手把手教你安装VMware Tools,并设置共享文件夹. ...

  2. python numpy安装教程_手把手教你搭建机器学习开发环境—Python与NumPy的超简安装教程...

    手把手教你搭建机器学习开发环境Python语言是机器学习的基础,所以,想要入门机器学习,配置好Python的开发环境是第一步.本文就手把手的教你配置好基于Python的机器学习开发环境.超简单!第一步 ...

  3. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(一)——安装VMware虚拟机和Ubuntu

    前言 近期好多小伙伴都开始学习Linux内核了,那么如何搭建一个Linux运行环境,变成Linux内核初学者的拦路虎,今天我就一步步详细解说一下,如何使用虚拟机VMware安装Ubuntu,跟我一起开 ...

  4. 手把手教你搭建AI开发环境 !(附代码、下载地址)

    来源:虎贲智能机器 本文长度为1000字,建议阅读5分钟 本文为你介绍基于ubuntu16 Python3 tensorflow的人工智能开发环境的搭建. 人最大的长处就是有厉害的大脑.电脑.手机等都 ...

  5. 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 1]

    Keil MDK.IAR等工具是各类STM32单片机使用的主要IDE,不过都是收费的,在使用中很可能牵扯到一定的版权问题.GCC(GNU Compiler Collection)作为GNU计划的一部分 ...

  6. dubbo源码深度解析_Spring源码深度解析:手把手教你搭建Spring开发环境

    Spring环境搭建流程,如果是第一次接触spring源码的环境搭建,确实还是比较麻烦的. 作者使用的编译器为目前流行的lntelliJ IDEA,版本为2018旗舰版.Eclipse用户还需要自己揣 ...

  7. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(四)——gcc编译器的安装和使用

    上回,我们已经把vim的安装.配置和使用说完了,今天我们就来谈谈Linux下gcc编译器的安装和使用. PS:还不会vim的同学,建议移步: Ubuntu下vim编辑器的安装.配置和使用 1.查看gc ...

  8. 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 2]

    4 make工具安装 前面通过 STM32CubeMX 生成 Makefile 工程,那么就需要一个工具来识别Makefile文件,也就是make工具,在Linux中已经自带make了,在Window ...

  9. 手把手教你搭建Scala开发环境 步骤详细

  10. 手把手教你搭建JS开发环境

    首先明确需要浏览器端和服务器端各一个. 1.浏览器端 浏览器可以下载--谷歌/火狐/Safari/Edge/欧朋等 浏览器端可以自行下载最新版本. 2.服务器端 Node.js 下载地址:www.no ...

最新文章

  1. java代码讲解_Java基础系列-代码块详解
  2. 如何在Java中编写正确的微基准测试?
  3. AI替你接电话、老电影变4k画质、基于自研芯片服务器,百度智能云一口气发了20款产品...
  4. java中jtansforms,Java3D中的viewplatform的旋转
  5. 【web安全】Web应用隔离防护之Web弱口令爆破
  6. python在建筑施工方面的应用_有哪些关于 Python 在建筑中的应用和教程?
  7. 用jQuery插件实现“小图点击预览大图”功能1
  8. java corsa_JAVA CORSA休闲车,缔造“城市 生活 元素”
  9. Python包管理工具pip的基本使用
  10. Facebook 游戏开发更新文档 API 参考文档 v5.0
  11. 机器人教练走进驾校_“机器人教练”走进镇江驾校
  12. 微信公众平台开发教程新手解惑40则
  13. 连接/映射网络位置/共享磁盘
  14. LaTeX:使用bib插入文献
  15. Ubuntu 20.04 LTS (Focal Fossa) OVF 模板下载 百度网盘
  16. android释放内存只有1GB,手机内存不够用?教你5秒删掉1G垃圾,提升速度!
  17. 有没有一款好的在线报表编辑器?详解:FastReport Online Designer
  18. 书籍推荐——一本老书,吴军老师《数学之美》
  19. vuex基础语法、state代码示例、mutations代码示例
  20. python打印国际象棋棋盘_python输出国际象棋棋盘的实例分享

热门文章

  1. Cannot resolve MVC View
  2. component lists rendered with v-for should have explicit keys.
  3. 谷歌中国3月28日发年终奖 不少员工将选择离职【转载】
  4. win8计算机管理员权限删除文件,如何解决 win8系统管理员权限删除文件夹访问被拒绝(3页)-原创力文档...
  5. java-net-php-python-java西藏文库计算机毕业设计程序
  6. 【Unity】小地图制作
  7. Niushop开源商城:618电商大趴开始预热啦!你的开源商城系统呢?
  8. android添加adb命令行,Android—adb命令
  9. 怎么隐藏服务器的ip地址
  10. mac下使用自带的bash或Cyberduck软件链接服务器