STM32MP157开发笔记 | 02 - 开发环境搭建(A7核、M4核)
一、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. STM32MP157A概览
3. 文档
- 官方介绍
- 参考手册
- 规格书
4. STM32MPU wiki
Wiki地址:https://wiki.stmicroelectronics.cn/stm32mpu。
二、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
- STM32CubeMX
- 为 OpenSTLinux distribution 生成设备树
- 为STM32CubeIDE生成初始化代码
- STM32CubeIDE
- 用于M核开发
- STM32CubeMX
三、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
下载链接:https://www.st.com/en/embedded-software/stm32mp1dev.html#get-software。
下载后放到 $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
执行脚本:
./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh
(5)环境变量生效:
. /usr/local/oecore-x86_64/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。
下载之后解压:
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。
解压:
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正常闪烁,测试完毕。
STM32MP157开发笔记 | 02 - 开发环境搭建(A7核、M4核)相关推荐
- Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)
0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...
- 微信公众号Java开发-笔记02【开发接入准备、开发接入】
学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...
- Mqtt开发笔记:Mqtt服务器搭建
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- 3D打印软件Cura的二次开发(GUI)--环境搭建
3D打印软件Cura的二次开发(GUI)--环境搭建 软体动物Ai 关注 2016.07.06 12:36* 字数 1639 阅读 1300 评论 8 喜欢 4 本文采用中国大陆版CC协议发布 ...
- Python 网站开发(一)环境搭建
前些天看到小阳买回来的一本 Python 基础教程,于是就产生了使用 Python 来开发一个小博客的想法.这个 Python 网站开发系列文章将不会过多说 Python 基本语法,主要是面向实践的. ...
- 使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建
使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建 2010-04-07 16:53 在Nokia S60 V3下进行J2ME应用程序开发,需要搭建 Noki ...
- 安卓开发(一)环境搭建、基本程序与控件
layout: post title: 安卓开发(一)环境搭建.基本程序与控件 description: 安卓开发(一)环境搭建.基本程序与控件 tag: 安卓 文章目录 Intent:协助应用间的交 ...
- 全志A33开发板vstar编译环境搭建
全志A33开发板vstar编译环境搭建 安装系统 全志提供的vstar的SDK使用内核linux-3.4.39, 在编译过程中,要用到一个文件gen_check_code,位于linux-3.4/ar ...
- 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建
保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...
最新文章
- 怎样操作vue.js使用3DES加密
- 1.MySQL与MongoDB的操作对比,以及区别
- LLBL Gen Pro 设计器使用指南
- JAVA框架Struts2 结果页配置
- WPF 从 .net core 3.1 到 .net 5.0
- linux模拟内存数据落盘,Linux:保证数据安全落盘
- 在xml中自定义属性 app
- 星载计算机西北工业大学,星载计算机SRAM加固可靠性的研究与设计
- Collectors.mapping()
- [模拟][字符串]计算器的改良
- Android 自动接听来电
- C++使用Socks5协议进行代理上网(三)
- VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (3) High Band Encode 模块
- 鸿蒙系统背后的故事,华为“鸿蒙”刷屏背后,这7本书是中国人的终极浪漫
- 什么是网桥,它应该如何搭建
- 《知识产权法》雨课堂期末答案
- wifi情况下使用fiddler_如何对手机http进行抓包?Fiddler工具超好用
- 盒子模型--标准盒模型和怪异盒模型
- 改造WinRE 从隐藏分区安装Win7
- Android 多厂商推送集成