【前言:由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上百度或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】
首先,去QT的官网(https://www.sodocs.net/doc/711833786.html,/downloads)下载文件:直接下载
Qt SDK for Linux/X11 32-bit** (422 MB)(这样比较简便,虽然可能占的空间要大一点)
2,第二步就是安装刚刚下载的二进制文件:
chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin
./qt-sdk-linux-x86-opensource-2010.05.1.bin(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在red hat9的系统里
装完之后,发现red hat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好)
3 下载coss tools包:
https://www.sodocs.net/doc/711833786.html,/crosstool/crosstool-0.43.tar.gz
4。安装cross tools
mkdir ~/downloads 在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会
自动放到这个文件夹下
sudo apt-get install bison
sudo apt-get install flex
以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。sudo apt-get install gcc-3.4
cd /usr/bin
sudo ln -s gcc-3.4 gcc
sudo rm gcc
正式安装
sudo mkdir /opt/crosstool
sudo chown 当前登录的用户名 /opt/crosstool
tar -zxvf crosstool-0.43.tar.gz
cd crosstool-0.43
vi demo-arm.sh
注释掉#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
在其后,加上eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest
注意:cat arm.dat gcc-4.1.1-glibc-2.3.2.dat而不是默认的gcc-4.1.1-glibc-2.3.6-tls.dat
修改linux内核版本,linux内核可以自己选择,我的linux内核是linux-2.6.24(前面下载的那个) lingd@ubuntu:~/downloads/crosstool-0.43$ vi gcc-4.1.1-glibc-2.3.2.dat
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.1
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.28
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5
修改交叉编译工具前缀
vi arm.dat
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux(该名称为目标名称,我是觉得默认(arm-unknow-linux-gnu)的太长所以修改了,修改了后要注意了相关目录的权限)
TARGET_CFLAGS="-O"
执行下一个命令,系统将开始编译,并下载下面的包:
binutils-2.16.1
gcc-3.3.6
gcc-4.1.1
glibc-2.3.2
linux-2.6.24
linux-libc-headers-2.6.12.0
glibc-linuxthreads-2.3.2
gdb-6.5
这个工程很长需要n小时的时间来
可以ls一下看看里面的文件,里面有一些脚本文件,具体功能可以到https://www.sodocs.net/doc/711833786.html,/crosstool 上查看FAQ
./demo-arm.sh (会执行很漫长)
执行完后,最后一行提示:
Done!
执行完毕,修改环境变量
安装完成后,默认的安装目录就是开始创建的那个/opt/crosstools/
1.添加环境变量
vi ~/.bashrc
在最后添加如下
if [ -d /opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux ]; then
PATH=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:$PATH
fi
就是把安装的工具bin目录添加到PATH变量中。
保存
2.source ~/.bashrc,使环境变量生效
$ source ~/.bashrc
3.重启终端。
输入arm后,连续按两下table键,可以看到arm-linux-gcc-4.1.1,说明已经安装成功
$ arm
arm2hpdl arm-linux-gcc arm-linux-objdump
arm-linux-addr2line arm-linux-gcc-4.1.1 arm-linux-ranlib
arm-linux-ar arm-linux-gccbug arm-linux-readelf
arm-linux-as arm-linux-gcov arm-linux-size
arm-linux-c++ arm-linux-gprof arm-linux-strings
arm-linux-c++filt arm-linux-ld arm-linux-strip
arm-linux-cpp arm-linux-nm
arm-linux-g++ arm-linux-objcopy
$ arm
=================================================================
可能出现的问题:
1. crosstool在ubuntu下运行提示 getandpatch.sh: 1: patch: not found
1.执行apt-get update
2.apt-get install patch
2.gcc 版本太低,或者太高都不行,我的ubuntu是10.10,gcc版本4.4.6;需要再安装一个
3.4;执行命令的时候可能找不到软件包,需要到软件中心把所有的软件源(9.04;第三方)都勾选上。
=================================================================
现在开始搭建嵌入式QT环境;
首先从官网下载QT的嵌入式版,注意官网上的嵌入式版和linux版都是199M,其实他们在官网上的位置不一样,
Qt libraries 4.7.0 for embedded Linux (199 MB)
https://www.sodocs.net/doc/711833786.html,/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz
Qt libraries 4.7.0 for Linux/X11(199 MB)
https://www.sodocs.net/doc/711833786.html,/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz
其实下载下来是一样(看他们的下载路径都是一样的)的,。下载下来的文件名为:
qt-everywhere-opensource-src-4.7.0.tar.gz
解压
tar zxvf qt-everywhere-opensource-src-4.7.0.tar.gz
把解压后的文件再复制两份(一共三份),分别取名为pc; x86; arm;然后开始分别编译:
1.编译PC, cd pc
./configure
make
这一步可能出错:1
此完整出错信息是在./configure阶段
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in
/home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++
进config.test/x11/xlib 执行make命令,看出错信息
g++ -Wl,-O1 -o xlib xlib.o -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
可以看到,g++在/usr/X11R6/lib下,找不到libXext.so
其原因就在于需要安装libX11的开发包,根据自己的系统特点,安装
libX11-dev libXext-dev libXtst-dev
问题解决!
可能出错:2
cc1: error: unrecognized command line option "-fvisibility=hidden"
make: *** [sub-corelib-make_default-ordered] 错误 2
出错原因是gcc版本太低,不支持-fvisibility=hidden选项,因为一开始的时候我们把gcc改成了3.4版本,现在要(利用备份)把它改回来。然后,重新编译make.。
可能出错3:
/usr/bin/ld: cannot find -lXrender
说明还少一个包:安装 libxrender-dev
sudo apt-get install cutecom
sudo apt-get install autoconf automake libtool
截至到现在,最后一次make没有出错,但有不错warning,不管它
sudo make install
2. 编译嵌入式x86版:
进入x86目录,设置其以QVFB作为显示输出
# sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# sudo make
# sudo make install
安装过程比较长,没有碰到过错误。
编译安装PC版中的 qvfb:
进入pc/tools/qvfb/目录
#make
#make install
3. 编译arm版:
先安装tslib
下载tslib-1.4. 点击tslib1.4
./autogen.sh 生成配置文件
CC= $ARM_TOOL_PATH/arm-linux-gcc
X= $ARM_TOOL_PATH/arm-linux-g++
./configure --prefix=/usr/local/tslib-1.4 --host=arm-linux
ac_cv_func_malloc_0_nonnull=yes
make
make install
再安装arm
cd arm
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm \ -opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-iconv \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib -I/usr/local/tslib-1.4/include -L/usr/local/tslib-1.4/lib
make
sudo make install
等待安装完成!
=============================================================
测试安装是否正确完成
安装完成后,在 /usr/local/Trolltech 目录中有三个文件夹:Qt-4.7.0、QtEmbedded-4.7.0、QtEmbedded-4.7.0-arm。
1 测试嵌入式 x86 :
$ source ~/.setenv-qt-x86.sh
$ qvfb -width 800 -height 600 &
$ /usr/local/Trolltech/QtEmbedded-4.7.0/demos/books/books -qws
或者:
cd /usr/local/Trolltech/QtEmbedded-4.7.0/demos/books
qvfb -width 640 -height 480 &
./books -qws
执行完qvfb;弹出一个类似终端的窗口,窗口背景为黑色,应该相当与模拟器的屏幕
执行完book;窗口背景不再是黑色,屏幕中弹出一个类似于图书管理系统的界面,这就是我们想要看到的!
这一步可能出错,就是找不到qvfb,提示你安装qt4---*****;和qt3---***;直接apt-get 安装第二个即可。sudo apt-get install qt3-dev-tools-embedded 修复
4、编写环境变量设置文件(方便不同环境切换):
~/.setenv.sh(对应于PC版Qt):
PATH=/usr/local/Trolltech/Qt-4.7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.0/lib:$LD_LIBRARY_PATH
~/.setenv.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0
PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/lib:$LD_LIBRARY_PATH
~/.setenv.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib:$LD_LIBRARY_PATH
后面的步骤:
5、移植
将 PC 机上 /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib 中的库复制到2440的
/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib(对应目录复制)。
将 PC 机上 /usr/local/tslib 中的库复制到2440的 /usr/local 。
如果运行时还缺少其他的库,复制方法相同。
为支持触摸屏,开机自动设置环境变量,在2440的 /etc/profile中追加:
export
LD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH export TSLIB_ROOT=/usr/local/lib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
注:可用$ cat /dev/input/event0 测试触摸屏
取消/usr/local/etc/ts.conf中的第一个注释:
# module_raw input (去掉#,并且该行顶格)
运行 /usr/local/bin/ts_calibrate 校正触摸屏。
6、程序编译:(以下编译方式,是把配置文件放到用户目录下,取了3个不同的名字,也可以把它们分别放到三个安装目录下,编译的时候进到目录里边运行。
使用:
我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:
cd /usr/local/Trolltech/Qt-4.7.0
source setenv.sh
然后就可以用qmake designer等工具了.
)
PC版:
$ make distclean
$ source ~/.setenv-qt-x11.sh
$ qmake
$ make
arm 版:
$ make distclean
$ source ~/.setenv-qt-arm.sh
$ qmake
$ make
===============================================================
应该说到这一步,就基本算是完了,接下来可以再pc机上开发我们的应用程序了。如果之后碰到什么问题,我会不断地往此处添加。
推荐几篇,我配环境时,觉得不错的文章:
https://www.sodocs.net/doc/711833786.html,/PenglueR/archive/2009/12/10/4981753.aspx
https://www.sodocs.net/doc/711833786.html,/#u13572321/d118122274.htm
https://www.sodocs.net/doc/711833786.html,/jesserei/blog/item/861c201e18b1cd04314e1500.html
================================================================
最后说一下源的问题,好的源速度快,不仅可以帮我们加快下载速度,节约下载软件包的时间,而且包含的软件包也多,许多情况下,一个软件包安装不上,主要原因是源选的不好,比如在安装gcc-3.4的时候,如果没有合适的源,可能一直都找不到该软件包,又比如安装w32codecs的时候,更是对源非常挑剔,因为一般的源都不支持它;常用的源又主服务器源,中国服务器源,北京交大的源,我用它的自带测速工具测出来163的源是最快的,但最快不一定最全,而且,注意,最好勾选上所有的源选项,以免带来不必要的麻烦。
为了获得比较快的更新速度,我们可以增加一些台湾的源,同时更新一下g++编译器和x11库(所谓x11就是指 x window),恩这句话是网上的朋友说的,我也觉得台湾的源不错
第一章Ubuntu 8.10的安装和网络配置 1.安装虚拟机软件Vmware 6.0.2 虚拟机安装版本Vmware 6.0.2的版本 在winxp操作系统下用鼠标双击VMware-workstation-6.0.2-59824图标,开始安装虚拟机Vmware,如下图所示: 双击VMware-workstation-6.0.2-59824图标,出现vmware的安装界面,所有的选项都采用默认值,用鼠标点【下一步】,然后出现安装进度条,系统开始安装vmware,等待安装完成后,出现如下安装完成界面: 用鼠标点【Finish】,虚拟机安装完成。系统提示重新启动计算机,选择【是】重新启动计算机,电脑重新启动后,虚拟机安装完成。 2.新建虚拟机 打开Vmware虚拟机软件,选【File】->【New】->【Virtual Machine】,弹出新建虚拟机向导对话框,注意以下几个重要的选项,其他都采用默认选项即可。 选择操作系统和版本,如下图所示:
选择虚拟机名称和存放的路径,如下图所示: 设置虚拟机硬盘大小为20G ,如下图所示:
点击【完成】按钮,这样我们就新建了一个虚拟机,下面我们设置一下虚拟机的内存,步骤如下: 点击虚拟机Vmware的【VM】->【settings】时菜单,弹出虚拟机设置对话框,设置虚拟机使用的内存为512M或1024M,如下图所示:
点击【OK】按钮,这样我们就新建了一个虚拟机,该虚拟机的硬盘为20G, 内存为512M .接着我们就可以在该虚拟机上安装ubuntu操作系统了。 注: 键盘和鼠标控制权在虚拟机和Windows系统之间的切换是通过组合键【Ctrl】+【Alt】来实现的。 3 安装Linux操作系统ubuntu Ubuntu安装版本ubuntu 8.10 点击vmware软件工具栏上的【绿色箭头】启动虚拟机,如下图所示:
实验三搭建嵌入式系统开发环境 一、实验目的: 1.掌握嵌入式开发环境的配置; 2.掌握开发工具链的安装与配置; 3.掌握嵌入式系统内核和根文件系统的烧写的过程。 二、实验内容: 1)安装配置嵌入式开发环境; 2)安装与配置工具链; 3)内核和根文件系统的烧写 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、实验步骤: 1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中 2.进入目录,输入make menuconfig,对内核进行裁剪配置 3.编译内核之前输入make clean清理编译环境 4.输入make dep 编译相关依赖文件 5.输入make zImage 输出最终编译后的镜像文件 6.将镜像文件共享至windows环境下 7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中 五、实验总结: 通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。在实验
过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。 实验四嵌入式驱动程序设计 一、实验目的: 1.学习在LINUX 下进行驱动设计的原理 2.掌握使用模块方式进行驱动开发调试的过程 二、实验内容: 在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、预备知识: 1.有 C 语言基础。 2.掌握在Linux 下常用编辑器的使用。 3.掌握Makefile 的编写和使用。 4.掌握Linux 下的程序编译与交叉编译过程。 5.有驱动开发的基本知识。 五、实验步骤: 1.进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码 2.使用makefile编译驱动模块与测试程序,编译器采用armv4l-unknown-linux-gcc 3.将编译后的驱动模块demo.o和测试程序test_demo挂载到实验箱上 4.插入驱动模块demo.o 执行命令insmod demo.o 5.查看驱动是否插入成功,执行命令lsmod demo.o 6.运行测试程序,查看执行结果
嵌入式开发,通常都是在Linux环境下编译Uboot、Linux和android代码。编译uboot/Linux可以选择任何的Linux发行版,如redhat,suse,ubuntu,fedora,debian等,只要你配置好ARM交叉工具编译工具就可以了。 编译android,搭建环境最容易的就是ubuntu。google的官方网站上,也有搭建编译android的简单介绍,可以搜索下,网络上有相当多这方面的说明。 考虑到我们学习嵌入式的平台是Fast Models,以及自动的Realview EB模型硬件平台。而ARM官方推荐是在Redhat Enterprise(4,5,6)下安装Fast Models。所以,我们采用Redhat Enterprise 6作为开发环境。我们可以直接在电脑上安排RHEL6,也可以先安装vmware,然后在vmware中创建一个虚拟机,在虚拟机上安装RHEL6。在这里,小编是采用后者方式。 搭建Redhat Enterprise 6开发环境,建议做以下配置: 1)设置静态IP。在之前使用vmware的经历,发现如何网站采用dhcp方式,那么rhel6的IP地址有可能会发现改变。而我们需要网络IP最好是固定的,所以需要设置静态IP。RHEL6的静态IP的设置方法,可以搜索到。 2)开启ssh,samba服务 ARM嵌入式开发,基本上都是在命令(shell)方式下进行的,不需要图形界面。所以,在windows上运行vmware,vmware上虚拟机再运行rdel6的情况下,为了不增加windows系统的负荷,可以把vmware放在后台运行,使用ssh服务登陆到rdel6就可 以进行嵌入式开发了。 小编在开发嵌入式时,通常都是使用sourceinsight阅读、修改代码,然后在shell运 行命令进行编译。所以,开通samba服务,然后使用windows已安装的sourceinsight 工具,阅读放在rdel6上的Linux/uboot代码。 在Redhat发行版下,有关服务器的开启或关闭,可以在root用户下,使用setup命 令进入配置选项的“System Services”菜单下进行设置。 samba服务在菜单选项为:“smb”;ssh服务在菜单选项为:“sshd” 需要注意的是:windows下,要使用ssh服务/samba服务登陆vmware虚拟机上的rhel6,必须把rhel6上的防火墙关掉。setup命令--->Firewall Configuration--->去掉Enable。
第一章开发环境搭建 要想进行嵌入式开发,首先,必须搭建一套完整的嵌入式开发环境。本章讲解在windows xp + Vmware虚拟机(安装Ubuntu10.04)环境下嵌入式开发环境的搭建。 1.1 交叉编译工具链的安装 嵌入式开发必须使用交叉编译工具链。你可以使用里仁提供的交叉编译工具(arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2),也可以使用crosstool-0.43或crosstool-ng自己编译交叉编译工具链。如何用工具自己编译交叉编译工具链,请参考其他资料。本节只讲解如何使用里仁提供的交叉编译工具链。 交叉编译工具链的安装步骤主要包括拷贝、解压和设置环境变量三部分。 1)拷贝 在主目录中建立工作目录liren,将交叉编译工具链拷贝到该目录下。 在/opt目录下建立virt.arm目录,将交叉编译工具解压到该目录下。操作时注意权限问题,需要加sudo执行命令。 其中,-C参数是制定解压后的存放目录。若不制定默认为当前目录。 查看/opt/virt.arm目录下的交叉编译工具。 arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2是两个版本的交叉编译器,以备以后使用。其中,arm-linux-gcc-3.4.5将在编译U-boot、文件系统及应用程序时使用;arm-linux-gcc-4.3.2将在编译内核时使用。 2)设置环境变量 把交叉编译工具解压到/opt/virt.arm目录后,编译程序时需要制定交叉编译工具的全路径。例如,在~/liren/test目录下编译“helloworld”。
不能够像gcc那样,直接使用arm-linux-gcc来编译,这是因为还没有设置环境变量。 在~/liren/sh/目录下创建两个脚本文件arm-linux-gcc-3.4.5.sh和arm-linux-gcc-4.3.2.sh。 分别为以下内容: arm-linux-gcc-3.4.5.sh arm-linux-gcc-4.3.2.sh 这两个脚本文件是用来设备环境变量的。 例如,执行source arm-linux-gcc-3.4.5.sh就会把交叉编译器arm-linux-gcc-3.4.5的路径加到PATH环境中。这样,就可以直接使用使用arm-linux-gcc编译程序了。 但是,用这种方法只能临时改变环境变量,退出终端后就失效,因此,在下次使用时需要重新设置。要想让设置长期生效,可以修改/etc/profile文件,在最后一行加上“export PATH=$PATH:/opt/virt.arm/arm-linux-gcc-x.x.x/bin”保存退出即可。不用重启系统,在终端运行“source /etc/profile”设置立即生效。 2.2 网络服务器的安装 在进行嵌入式开发时常常需要目标板和宿主机进行通信。因此,就会用到宿主机的网络服务。常用的网路服务有TFTP和NFS。下面介绍在Ubuntu10.04环境下安装TFTP和NFS 的方法。 2.2.1 安装配置TFTP服务 安装TFTP服务的步骤为: 安装tftp-hpa(客户端)和tftpd-hpa(服务器); 修改配置文件; 根据配置文件的路径,建立tftp目录,并修改目录权限; 重启tftp服务; 本地传输测试。
实验一ARM嵌入式系统开发环境搭建 一、虚拟机安装配置 ARM嵌入式系统开发需要linux环境,为了在windows下使用linux,需要安装虚拟机。虚拟机软件采用Virtualbox,linux操作系统的版本使用lubuntu。lubuntu系统已制成镜像文件,只需导入到virtulbox即可。 1. 安装VirtualBox虚拟机软件。采用默认安装。 2. 运行Virtualbox虚拟机软件,导入lubuntu虚拟机。 在“管理”菜单中,选择“导入虚拟电脑”项,在后续对话框中选择镜像文件,其余参数按照默认。 3. 启动lubuntu虚拟电脑进入linux界面。 二、建立交叉编译环境 1. 查看arm gcc 编译工具 # cd /opt/host/armv4l # ls bin 列出的以“armv4l-unkown –linux-”开头的系列文件就是gcc编译工具软件。 #armv4l-unknown-linux-gcc –v 应该显示以下信息:
如果没有出现该信息,则检查~/.bashrc文件,在其中加入“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/”。 2. 建立桥接网络 当使用tftp下载程序时,为了使开发板能够访问虚拟机中的数据,需要对网络加以设置。开发板的IP为192.168.0.115;虚拟机的IP 设为:192.168.0.100 (1) 在lubuntu虚拟机的网卡配置中,选择“桥接网卡”, (2) 在windows操作系统网络配置界面中,将本地网卡和虚拟机的网卡桥接起来。桥接参数如下: IP设置为:192.168.0.2 掩码:255.255.255.0 网关:192.168.0.2 (3)lubuntu虚拟机的IP设置: 虚拟机IP:192.168.0.100 掩码:255.255.255.0 网关:192.168.0.2 3. 配置minicom参数 minicom程序用于在linux环境下通过串口和开发板通信。串口在烧写boot代码、操作系统内核及文件系统时使用。
实验四嵌入式交叉开发环境的建立 与通用计算机上的软件开发不同,嵌入式的编译过程被称为交叉编译,嵌入式系统的软件开发环境被称为嵌入式交叉开发环境。交叉编译就是把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 宿主机(Host)是用于开发嵌入式系统的计算机。一般为PC机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。目标机(Target)即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的。物理连
接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有串口、以太网接口和OCD(On Chip Debug)三种方式。逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接。在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。 宿主机上用于嵌入式软件开发的工具软件一般包括:文本编辑器、交叉编译器、交叉调试器、仿真器、下载器等。 当我们建立完成了嵌入式交叉开发环境后,我们就可以按照如图1所示,在宿主机上编写程序的源代码,使用交叉编译器编译成各个目标模块,使用交叉链接器链接生成可供下载调试或固化的目标程序,通过目标机和宿主机之间的物理连接(串口或网络接口)
将目标程序下载到目标机。 图1嵌入式软件编译过程 在这里中,我们是在宿主机的虚拟机(VMware Workstaion 6.5)上安装Red Hat Enterprise Linux 5。在Linux环境下,我们一般采用arm-linux-gcc作为交叉编译器,glibc是应用程序编程的函数库文件软件包,binutils用作二进制程序处理工具。这样一些软件构成了Linux下的交叉编译工具链。 通常构建交叉工具链有3种方法: (1)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链;