YA157C交叉编译环境搭建
whik 人气:0
@[toc]
### 1.开发板简介
- 开发板型号:MYD-YA157C,512MB DDR3,4GB eMMC
- 主控芯片:STM32MP157AAC
- 光盘资料版本:MYD-YA157C-20191225.iso
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200305214128578.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doaWsxMTk0,size_16,color_FFFFFF,t_70)
MYD-YA157C开发套件由核心板MYC-YA157C和底板MYB-YA157C组成,主控芯片是ST目前最高配置的MPU——STM32MP157AAC3,双核Corte-A7+Cortex-M4,主频最高可达650Mhz。
硬件准备
- 12v电源适配器
- USB-TTL模块:115200/8/1/无
- 网线
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200305214559782.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doaWsxMTk0,size_16,color_FFFFFF,t_70)
开发板和主机配置
- 开发板Linux版本:Linux 4.19.9
- 开发板IP:192.168.1.136
- 主机配置:Ubuntu 16.04
- 主机IP:192.168.1.111
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200305214955466.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doaWsxMTk0,size_16,color_FFFFFF,t_70)
### 3.主机搭建交叉编译环境
所谓交叉编译,其实是相对于本地编译,即在一种平台上编译出来的程序,可以在另外一个平台下运行,即编译的环境和运行的环境不一样,属于交叉的。在进行嵌入式开发时,常常是在PC(x86架构)上使用交叉编译工具编译,编译出来的可执行文件在开发板(ARM)平台下运行。
交叉编译工具包,位于光盘资料的`03-Tools/Complie Toolchain`目录下,是一个压缩包,直接右键提取,或者使用tar解压命令都可以把压缩包解压。解压完成之后有以下几个文件:
```shell
#解压sdk
tar xvf qt-sdk.tar.xz
#进入sdk目录之后可以看到以下文件
meta-toolchain-qt5-openstlinux-eglfs-stm32mp1-x86_64-toolchain-2.6-snapshot.host.manifest
meta-toolchain-qt5-openstlinux-eglfs-stm32mp1-x86_64-toolchain-2.6-snapshot.sh
meta-toolchain-qt5-openstlinux-eglfs-stm32mp1-x86_64-toolchain-2.6-snapshot.target.manifest
meta-toolchain-qt5-openstlinux-eglfs-stm32mp1-x86_64-toolchain-2.6-snapshot.testdata.json
```
因为后面我们会进行Qt应用的开发,所以这里我们选择带Qt图形库支持的交叉编译工具包
安装交叉编译工具包:
```shell
#切换到解压之后的文件夹执行安装脚本
./meta-toolchain-qt5-openstlinux-eglfs-stm32mp1-x86_64-toolchain-2.6-snapshot.sh
#按[ENTER]键选择默认的安装配置,默认安装在/opt目录下
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200305181833931.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doaWsxMTk0,size_16,color_FFFFFF,t_70)
来看一下是否安装成功了:
```shell
#切换到安装目录
cd /opt/st/stm32mp1/2.6-snapshot/
#临时设置环境变量
source ./environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi
#这样会把GCC交叉编译器临时添加到环境变量,退出终端失效
#查看GCC交叉编译器版本
arm-openstlinux_eglfs-linux-gnueabi-gcc --version
#或者使用$CC --version
#输出信息
arm-openstlinux_eglfs-linux-gnueabi-gcc (GCC) 8.2.0
Copyright (C) 2018 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.
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200305183621927.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doaWsxMTk0,size_16,color_FFFFFF,t_70)
如果能输出版本信息,就说明安装成功了。
### 4.编译第一个ARM Linux程序——Hello World
有了交叉编译工具,和PC平台的gcc使用方法一样,就可以直接编译第一个程序了。
```shell
#切换到用户目录
cd ~
#新建一个目录
mkdir hello
#切换到hello目录
cd hello
#新建一个C文件
touch hello.c
#输入Hello World程序
vim hello.c
```
hello.c文件的内容:
```c
#include
加载全部内容