STM32MP157学习笔记(三) ---- A7开发环境搭建
Development Platform:STM32MP157A-DK1 (官方 demo 板)
Host PC:Ubuntu20.04
Source Code:OpenStLinux (官方源码)
一、安装 SDK
1、下载
en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz
2、安装
# 解压缩
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz# 赋予权限
cd stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sdk/
chmod +x st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.10-dunfell-mp1-21-03-31.sh# 运行安装 -d 表示安装路径 (可更改)
./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 <working directory absolute path>/Developer-Package/SDK
3、安装成功
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 3.1-openstlinux-5.10-dunfell-mp1-21-03-31
===========================================================================================
You are about to install the SDK to "<working directory absolute path>/Developer-Package/SDK". Proceed [Y/n]?
Extracting SDK................................................................................................................................................................................................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.$> . <working directory absolute path>/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
4、SDK 目录
<SDK installation directory> SDK for OpenSTLinux distribution: details in Standard SDK directory structure article
├── environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi Environment setup script for Developer Package
├── site-config-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
├── sysroots
│ ├── cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi Target sysroot (libraries, headers, and symbols)
│ │ └── [...]
│ └── x86_64-ostl_sdk-linux Native sysroot (libraries, headers, and symbols)
│ └── [...]
└── version-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
二、启动 SDK
1、配置环境脚本,每次编译前都需要运行一次
source <SDK installation directory>/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
2、检查环境配置
# 编译架构
PC $> echo $ARCH
arm# 交叉编译工具 (可在配置环境脚本中更改)
PC $> echo $CROSS_COMPILE
arm-ostl-linux-gnueabi-# 编译器版本
PC $> $CC --version 或者 arm-ostl-linux-gnueabi-gcc -v
arm-ostl-linux-gnueabi-gcc (GCC) <GCC version>
[...]# SDK 版本
PC $> echo $OECORE_SDK_VERSION
<expected SDK version>
三、安装内核
前提:确保 SDK 已经安装完成。
1、下载
en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz
2、进入 SDK 目录
cd <working directory path>/Developer-Package
3、安装
# 解压缩
tar xvf en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xzcd stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.10.10-r0tar xvf linux-5.10.10.tar.xz
4、内核目录
linux-stm32mp-5.10.10-r0 Linux kernel installation directory
├── [*].patch ST patches to apply during the Linux kernel preparation (see next chapter)
├── fragment-[*].config ST configuration fragments to apply during the Linux kernel configuration (see next chapter)
├── linux-5.10.10 Linux kernel source code directory
├── linux-5.10.10.tar.xz Tarball file of the Linux kernel source code
├── README.HOW_TO.txt Helper file for Linux kernel management: reference for Linux kernel build
└── series List of all ST patches to apply
5、编译内核
# 安装依赖包
sudo apt-get install libncurses5-dev libncursesw5-dev libyaml-dev
sudo apt-get install u-boot-tools
sudo apt-get install libyaml-dev# 运行配置环境脚本 (仅当前终端有效)
source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi# 检查编译器
set | grep CROSS
CROSS_COMPILE=arm-ostl-linux-gnueabi-# 打包补丁
cd linux-5.10.10
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done# 在源码外部新建一个文件夹,用于存放编译文件
mkdir -p ../build# 内核配置
make ARCH=arm O="$PWD/../build" multi_v7_defconfig fragment*.config# 如果有配置片段,也一个一个加载进去
scripts/kconfig/merge_config.sh -m -r -O $PWD/../build $PWD/../build/.config ../fragment-01-xxx.config
scripts/kconfig/merge_config.sh -m -r -O $PWD/../build $PWD/../build/.config ../fragment-02-xxx.config...yes '' | make ARCH=arm oldconfig O="$PWD/../build"# 编译
make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="$PWD/../build"make ARCH=arm modules O="$PWD/../build"make ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_artifact" modules_install O="$PWD/../build"mkdir -p $PWD/../build/install_artifact/boot/cp $PWD/../build/arch/arm/boot/uImage $PWD/../build/install_artifact/boot/cp $PWD/../build/arch/arm/boot/dts/st*.dtb $PWD/../build/install_artifact/boot/或者
make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040make ARCH=arm modulesmake ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_artifact" modules_installmkdir -p $PWD/../build/install_artifact/boot/cp $PWD/../build/arch/arm/boot/uImage $PWD/../build/install_artifact/boot/cp $PWD/../build/arch/arm/boot/dts/st*.dtb $PWD/../build/install_artifact/boot/# 编译后文件存放在$PWD/install_artifact/boot/uImage$PWD/install_artifact/boot/<stm32-boards>.dtb
四、安装 U-boot
1、下载
en.SOURCES-u-boot-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz
2、
STM32MP157学习笔记(三) ---- A7开发环境搭建相关推荐
- 迪文屏幕T5L平台学习笔记一:开发环境搭建注意事项
前面一直用T5UID3平台的屏幕开发,但是吐槽下<DWIN C Compiler 1>编译器bug太多,项目能不能做好,全靠运气:售后说T5L平台支持keil开发,我感觉挺好,于是从新学习 ...
- Python学习笔记:Day1-2 开发环境搭建
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 lin ...
- [学习笔记] BearPi-HM Nano - 开发环境搭建HelloWorld
声明: 1. 该系列学习笔记整理自BearPi社区以及网络资源 2. 阅读本系列笔记需要部分单片机.电子技术和C语言基础 3. 才疏学浅,若有谬误,敬请指正 目录 一.简述 二.代码开 ...
- 【海思AI芯片Hi3559A】学习笔记(1):开发环境搭建、安装SDK
芯片资料见Hi3559A的资料包 主要参考文档:ReleaseDoc\zh\01.software\board\Hi3559A╱C V100 SDK 安装及升级使用说明.pdf 注意所有解压操作均要在 ...
- [官方Flink入门笔记 ] 三、开发环境搭建和应用的配置、部署及运行
一.Flink 开发环境部署和配置 Flink 是一个以 Java 及 Scala 作为开发语言的开源大数据项目,代码开源在 GitHub 上,并使用 Maven 来编译和构建项目.对于大部分使用 F ...
- 华芯微特SWM181学习笔记--GPIO应用与环境搭建
华芯微特SWM181 系列 32 位 MCU(以下简称 SWM181)内嵌 ARM® CortexTM-M0 内核, SWM181 支持片上包含精度为 1%以内的 24MHz.48MHz 时钟,并提供 ...
- nginx学习笔记-01nginx入门,环境搭建,常见命令
nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...
- Polyworks脚本开发学习笔记(一)-脚本开发环境
Polyworks脚本开发学习笔记(一)-脚本开发环境 背景 Polyworks的扫描尺寸测量分析模块是我工作中经常用到的一个模块,我不是做测量的,但是利用Polyworks对扫描获得的点云来进行尺寸 ...
- Beaglebone Back学习三(开发环境搭建)
开发环境搭建 1 Ubuntu环境搭建 2 Window环境搭建 3 开发板环境搭建 1 Ubuntu环境搭建 (1)安装必要的网络工具 samba nfs tftp vmware-tools sam ...
最新文章
- ABAP help click F1
- 得意而忘乎形:谈葛水平的水墨画
- java 用户控件_C#自定义控件VS用户控件
- 第一节:ASP.NET开发环境配置
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
- 软件oem要注意什么_英语配音学习要注意什么?配音的注意事项有什么?
- 46多项式01——一元多项式和运算
- OSPFv3中LSA详解(三)——Network LSA变化
- PADS 设置挖空区域,为板子做固定孔,再设置禁止区域,铺铜之前必做的一步...
- 关系型数据库一致性的理解
- 【优化求解】基于matlab遗传算法求解资源配置优化问题【含Matlab源码 436期】
- Hadoop学习之hdfs集群搭建详解
- Android学习资料网站搜集
- Java 软件安装流程详解
- 【预测模型】Gompertz 曲线方程预测
- html图片下载链接怎么弄_html 导入图片
- 无法访问 您可能没有权限使用网络资源
- 密码管理方案之SafeInCloud+坚果云同步
- 关于ABAP中锁参数SCOPE的使用bug一粒
- redis服务之主从复制、哨兵模式、群集模式