其他分享
首页 > 其他分享> > 嵌入式实验2

嵌入式实验2

作者:互联网

实验2  嵌入式系统开发环境实验

 

实验日期:           

 

实验目的

1.了解交叉编译的概念、交叉编译工具;

2.掌握宿主PC机端的开发环境的建立。

实验仪器

PC机、嵌入式系统实验箱、网线、串口线。

实验原理

1.GCC编译器

GCC编译器能将C、C++语言源程序、汇编语言源程序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,GCC将自动生成一个名为a.out的文件。

2.GCC的执行过程

预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。

实验内容及步骤

实验内容:

在Fedora中下载、配置minicom、用NFS挂载网络文件系统、下载并安装java、valgrind、arm-linux-gcc-4.2.2等交叉编译软件

实验步骤:

1.准备工作

在联网的情况下,在终端输入相应的命令安装gedit插件,利用相应的命令配置minicom

2.安装arm-none-linux-gcc交叉编译器:

(1)打开虚拟机,拖动arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件到虚拟机里面,右键解压到桌面或者打开终端输入解压命令“tar zvxf 压缩包全名”解压,输入 sudo su 切换为超级用户后,通过输入cp -r arm-2014.05 /opt,把解压文件移动到opt/arm-2014.05/目录下,该目录的bin目录下有很多工具,其中就有arm-none-linux-gcc,想要在任何目录下使用这个工具,就得对环境变量进行配置,具体配置方法如下:

修改/etc/profile文件:

# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:

export PATH=$PATH:/opt/arm-2014.05/bin

蓝色部分是你的工具路径,根据各人的情况而定。

接下让修改的环境变量生效而不用重启就的输入以下命令

$ source /etc/profile

检查是否将路径加入到PATH:

# echo $PATH

显示的内容中有/usr/local/FriendlyARM/toolschain/4.4.3/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

测试是否安装成功

# arm-none-linux-gcc -v

出来版本信息代表成功

 (!!注意:如果是64位系统,编译文件时提示出错: No such file object file,输入以下命令:sudo apt-get install lib32stdc++6安装32位的包即可)

3.安装Qt

把Qt的安装文件qt-opensource-linux-x64-5.9.3.run拖到虚拟机的桌面,*.run文件是可以直接在虚拟机中双击安装运行的,双击运行,弹出对话框点击Next。

     

安装都是选择路径一直下一步就完成了,完成后的界面如下:

这个是Qt Creator,包含了Qt库文件,拥有更加人性化的界面,桌面上没有图标,在电脑上的左下角点击搜索按钮输入一个Q就可以出来。

4.交叉编译QT源码

下载好了qt-everywhere-opensource-src-5.7.0.tar.gz拖到虚拟机中的/home/pier/now下,输入tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz解压Qt源码的压缩包文件,然后输入cd qt-everywhere-opensource-src-5.7.0进入该文件夹目录,修改交叉编译架构用到的信息:

输入gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

出来如下的文本信息,修改下方的红色部分文件路径为自己的对应工具路径,其中的o2是字母o而不是数字0

#

# qmake configuration for building with arm-linux-gnueabi-g++

#

MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental

QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linux #eglfs

QMAKE_CFLAGS_RELEASE += -o2 -march=armv7-a

QMAKE_CXXFLAGS_RELEASE += -o2 -march=armv7-a

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

# modifications to g++.conf

QMAKE_CC                = arm-none-linux-gnueabi-gcc

QMAKE_CXX               = arm-none-linux-gnueabi-g++

QMAKE_LINK              = arm-none-linux-gnueabi-g++

QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++

# modifications to linux.conf

QMAKE_AR                = arm-none-linux-gnueabi-ar cqs

QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy

QMAKE_NM                = arm-none-linux-gnueabi-nm -P

QMAKE_STRIP             = arm-none-linux-gnueabi-strip

load(qt_config)

可参考电脑修改后的截图如下:

创建一个脚本文件,用于生成Makefile,执行命令

gedit autoConfigure.sh

内容如下:

#!/bin/sh

./configure \

-v \

-prefix /opt/qt-570 \

-release \

-opensource \

-no-accessibility \

-make libs \

-xplatform linux-arm-gnueabi-g++ \

-optimized-qmake \

-pch \

-qt-sql-sqlite \

-qt-zlib \

-tslib \

-no-opengl \

-no-sse2 \

-no-openssl \

-no-nis \

-no-cups \

-no-glib \

-no-pkg-config \

-no-separate-debug-info \

-I/home/pier/yun/tslib/include -L/home/pier/yun/tslib/lib

相应的路径一定要正确。

执行命令:

chmod 777 autoConfigure.sh

./autoConfigure.sh

弹出如下对话框,输入yes或者y

等待一段时间过后,出来如下窗口,提示你输入make,然后执行make install,这里选择先输入make -j4(表示四线程,速度更快,不到1小时)

然后等待直到完成make命令,接下来输入make install,开始交叉编译qt到/opt/qt-570目录下。

可能会出来如下提示错误,不用担心,其实并不影响,已经交叉编译了触摸屏tslib,虚拟键盘什么的不需要。

进入到/opt目录下看看有没有qt-570目录生成,有的话代表已经成功了。

接下来只需要配置好Qtcreator就可以开发了。打开Qtcreator,点击工具/选项/构建与运行/编译器,配置如下

到此,QT配置完成,可以写程序开发了。

数据处理及结论

 

实验心得体会

通过本次系统开发环境实验,让我知道了交叉编译的概念及相应的交叉编译工具,掌握宿主PC机端的开发环境的建立的流程,同时学会了安装Qt及如何配置QT相关的开发环境。

 

标签:none,qt,gnueabi,QMAKE,嵌入式,实验,linux,arm
来源: https://blog.csdn.net/qq_38639612/article/details/90264935