(一)STM32MP

1、什么是 STM32MPU

STM32MPU是 ST 推出的 Cortex-A7 + Cortex-M4 多核异构处理器

  • STM32MPU151 是单核 A7+M4,、STM32MPU153、STM32MPU157是双核A7+M4。
  • A7核最高可以跑到650MHZ,M4核最高可以达到209MHZ,

2、开发资源(ST官方)

1.硬件

目前为止(20190618),能够在官网找到的开发板有4款,分两类:

2.软件

  1. M4核方面,ST提供了Enhanced STM32Cube一整套开发工具,
  1. A核方面,有 Linux 跟 android:

(二)Linux 开发环境

1、安装ubuntu

ST官方推荐使用ubuntu 64bit,可以直接安装到PC里也可以是虚拟机(参考PC_prerequisites)。

安装完系统后,还需要安装一些依赖和软件:

sudo apt-get update

sudo apt-get install sed wget curl cvs subversion git-core coreutils unzip
texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man
make gcc build-essential g++ desktop-file-utils chrpath libxml2-utils xmlto
docbook bsdmainutils iputils-ping cpio python-wand python-pycryptopp
python-crypto sudo apt-get install libsdl1.2-dev xterm corkscrew nfs-common nfs-kernelserver device-tree-compiler mercurial u-boot-tools libarchive-zip-perl sudo apt-get install ncurses-dev bc linux-headers-generic gcc-multilib
libncurses5-dev libncursesw5-dev lrzsz dos2unix lib32ncurses5 repo libssldev sudo apt-get install default-jre
2、安装编译器

参考Install_the_SDK

下载:

wget https://www.st.com/content/ccc/resource/technical/software/sw_development_suite/group0/51/24/58/51/93/19/4f/3f/stm32mp1dev_yocto_sdk/files/SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz/jcr:content/translations/en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz

解压:

tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz

修改权限:

chmod +x stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.10-dunfell-mp1-21-03-31.sh

新建个目录用做该编译器的安装目录:

mkdir STM32MP
cd STM32MP
mkdir SDK

安装:

$HOME/stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.10-dunfell-mp1-21-03-31.sh -d $HOME/STM32MP/SDK
3、使用SDK

SDK的安装目录提供一个脚本文件用来设置环境变量,该脚本文件是:

$HOME/STM32MP/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi

看下该脚本文件中有什么内容:

该文件主要就是设置一些环境变量,比如,如果你要用arm-openstlinux_weston-linux-gnueabi-gcc的话,可以使用变量CC

首先使能环境变量

source $HOME/STM32MP/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi

查看下CC是什么内容:

hl@hl-ub:~$ echo $CC
arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/ub/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi

可以看到CC指定了编译器,设置了编译选项,还指定了sysroot路劲

创建一个简单的C程序,保存为helloworld.c:

#include <stdio.h>

int main(int argc,char **argv)
{
printf(“Hello STM32MP1\n”);
return 0
}

编译:

$CC -o helloworld helloworld.c

然后看下文件helloword信息:

编译环境安装完成

(三) 获取、编译uboot

  • 下载uboot

wget https://www.st.com/content/ccc/resource/technical/sw-updater/firmware2/group0/6c/b7/e5/68/0b/d5/49/13/stm32cube_Standard_A7_BSP_components_u-boot/files/SOURCES-u-boot-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz/jcr:content/translations/en.SOURCES-u-boot-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz

  • 然后解压:

tar xvf en.SOURCES-u-boot-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz

  • 进入u-boot所在目录:

cd stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/sources/arm-openstlinux_weston-linux-gnueabi/u-boot-stm32mp-2018.11-r0

该目录所包含的文件如下:

里面有一些补丁文件(*.path),有个说明文件,还有uboot源码:

解压uboot源码并打补丁:

tar xvf v2018.11.tar.gz
cd u-boot-2018.11
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
  • 编译

编译之前需要设置下环境变量

(1):编译STM32MP157C-DK2

basic boot:

make stm32mp15_basic_defconfig
make DEVICE_TREE=stm32mp157c-dk2 all

trusted boot:

make stm32mp15_basic_defconfig
make DEVICE_TREE=stm32mp157c-dk2 all

(2):编译STM32MP157C-EV1

basic boot:

make stm32mp15_trusted_defconfig
make DEVICE_TREE=stm32mp157c-ev1 all

trusted boot:

make stm32mp15_trusted_defconfig
make DEVICE_TREE=stm32mp157c-ev1 all

参考

(四) 获取、编译内核

tar xvf en.SOURCES-kernel-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz
  • 打补丁
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

make multi_v7_defconfig fragment*.config
for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
yes '' | make oldconfig
  • 编译内核
make uImage vmlinux dtbs LOADADDR=0xC2000040

参考

玩转STM32MP157-开发环境搭建的更多相关文章

  1. android 5.0开发环境搭建

    Android 5.0 是 Google 于 2014 年 10 月 15 日发布的全新 Android 操作系统.本文将就最新的Android 5.0 开发环境搭建做详细介绍. 工具/原料 jdk- ...

  2. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  3. GTK+开发环境搭建

    GTK+开发环境搭建 "工欲善其事,必先利其器"首先介绍一下GTK+开发环境的搭建,网上很多所谓的GTK的开发环境的搭建基本都是抄来抄去,也不知道有没有人使用他们介绍的方法搭建并编 ...

  4. HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)

    步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, ...

  5. android高速上手(二)android开发环境搭建及hello world

    基本了解了java语法,下一步.我们一起开启hello world的神奇之旅. (一)android开发环境搭建 之前搭建android开发环境是件很费力的事情,下载Eclipse.安装ADT等,现在 ...

  6. 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板环境搭建与点灯. 腾讯 TencentOS 团队于2021年1 ...

  7. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  8. IntelliJ IDEA安装及jsp开发环境搭建

    一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...

  9. Qt for Android开发环境搭建及测试过程记录

    最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...

  10. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

随机推荐

  1. 最新.NET Core面试题汇总

    这几天给.neter们整理了26道.NET Core面试题,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间.对于没有跳槽打算的也可以复习一下相关知识点,就当是查缺补漏! 对 ...

  2. Unity shader 护盾shield的简单实现

    先上效果图 shader所用的贴图资源 扰动 直接对uv进行变换就可以了,记得首先把六边形格子地图的Tilling调高点 先预先调成合适大小的六边形,然后repeat铺满整个护盾 // Tiles a ...

  3. OCR-Form-Tools项目试玩记录(二)产品评测

    这是一篇软工课程作业博客 项目 内容 这个作业属于哪个课程 北航2020春软件工程 006班(罗杰.任健 周五) 这个作业的要求在哪里 个人博客作业-软件案例分析 个人课程目标 系统地学习软件工程理论 ...

  4. commit信息修改

    场景:向社区提交commit信息,code reviewer给你回复说,请添加TrivialFix并且完善commit信息.好吧,虽然这对代码的运行无关紧要,但是对于日后的代码管理是很有必要的. 解决 ...

  5. IT菜鸟之虚拟机VMware的使用

    虚拟机安装完成了,以下是虚拟机的使用. 双击快捷方式,打开vmware虚拟机. 点击创建新虚拟机,这里可以选择创建方式,可以点击典型并一路下一步创建,我们这里讲自定义创建. 这里选择兼容版本,大家可以 ...

  6. 054.Python之Ubuntu安装Pycharm

    在学习Django的时候,开始使用的是centos,但是在做的时候,有一个错误,换一个ubuntu环境,安装一个pycharm进行学习开发 1. 下载PyCharm安装包 进入官网下载包 下载后 2. ...

  7. 关于步进电机驱动板,tb6560

    参考的,淘宝上买来的步进电机S曲线驱动方法,发现 他程序输出的PWM波形全是方波,  占空比为50% 而且他 修改这两个数来输出波形,所以 我打算参考这个来写一个驱动 TIMX_CNT中放置的是当前计 ...

  8. centos更换损坏硬盘uuid改变导致系统不能正常启动处理

    1.因为挂载磁盘uuid错误导致,而系统在启动的时候,会读取fstab文件.来加载预设的硬盘到指定的分区目录,但读取到需要挂载的UUID的磁盘不存在,中断文件的读取,然后提示文件系统错误,不能解析UU ...

  9. java面试一日一题:java中的垃圾回收器

    问题:请讲下java中垃圾回收器有哪些? 分析:该问题主要考察hotspot虚拟机下实现的垃圾回收器 回答要点: 主要从以下几点去考虑, 1.垃圾回收器的种类 2.每种垃圾回收器的着重点是什么 前边的 ...

  10. Docker学习(5) 在docker中部署静态网站

    在容器中部署静态网站 设置容器的端口映射 在容器中部署静态网站  -  Nginx部署流程 1 创建映射80端口的交互式容器 2 安装Nginx 3 安装文本编辑器vim 4 创建静态页面 5 修改N ...