实验一、DYV-1型实验箱开发环境
一、实验目的
1. 熟悉嵌入式开发环境,掌握实验箱结构及连线方法。
2. 熟悉Ubuntu 系统进行嵌入式Linux 开发的基本环境配置方法。 3. 熟悉arm-linux-gcc交叉编译器的使用方法。 4. 熟悉VIM的使用方法。 二、实验基本要求
1. 熟悉实验箱与主机连接的方法,掌握Ubuntu中IP地址的配置方法以及挂载共享文件夹的方法。
2. 学会使用VIM编写程序。
3. 掌握在虚拟机Ubuntu中编译并执行程序的方法。
4. 掌握在虚拟机Ubuntu中使用交叉编译器编译程序并在实验箱上运行的方法。 5. 掌握编写makefile文件进行编译程序并在对应平台下运行的方法。 三、实验原理 1.GCC简介
GNU Compiler Collection,通常简称GCC,是一套由GNU开发的编译器集,为什么是编辑器集而不是编译器呢?那是因为它不仅支持C语言编译,还支持C++,Ada,Objective C等许多语言。另外GCC对硬件平台的支持,可以所无所不在,它不仅支持X86 处理器架构, 还支持ARM, Motorola68000, Motorola8800, AtmelAVR, MIPS等处理器架构。 2. GCC的组成结构
GCC内部结构主要由Binutils、gcc-core、Glibc等软件包组成。Binutils:它是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。关于Binutils的介绍可以参考Binutils简单介绍。这个软件包依赖于不同的目标机的平台。因为不同目标机的指令集是不一样的,比如arm跟x86就不一样。
gcc-core:顾明之意是GCC的核心部分,这部分是只包含c的编译器及公共部分,而对其他语言(C++、Ada等)的支持包需要另外安装,这也是GCC为何如此强大的重要原因。gcc-core依赖于Binutils。
Glibc:包含了主要的c库,这个库提供了基本的例程,用于分配内存,搜索目录,读写文件,字符串处理等等。kernel和bootloader 不需要这个库的支持。 3. 交叉编译
交叉编译(或交叉建立)是这样一种过程,它在一种机器结构下编译的软件将在另一种完全不同的机器结构下执行。一个常见的例子是在PC机上为运行在基于ARM、PowerPC 或MIPS的目标机的编译软件。幸运的是,GCC使得这一过程所面临的困难要比听起来小得多。
GCC中的一般工具通常都是通过在命令行上调用命令(如gcc)来执行的。在使用交叉编译的情况下,这些工具将根据它编译的目标而命名。例如,要使用交叉工具链为ARM 机器编译简单的HelloWorld 程序,你可以运行如下所示的命令:使用如下命令编译并测试这个代码:arm-linux-gcc –o hello hello.c。 4. arm-linux-gcc
arm-linux-gcc是基于ARM目标机的交叉编译软件。x86跟ARM所使用的指令集是不一样的,所以所需要的binutils肯定不一样;上面提到过gcc-core是依赖于binutils的,自然ARM跟x86所使用的gcc-core包也不一样;glibc 一个c 库,最终是以库的形式存在于编译器中,自然ARM所使用的glibc 库跟x86 同样也不一样,其它的依此类推。 四、实验内容
1. 参考《DYV-1 型嵌入式车载多媒体实验箱快速入门手册》,将实验箱与主机连起来,并配置实验箱IP地址,然后进行共享文件夹的挂载。 2. 使用VIM编写计算n=1+2+3+…+100的和。 3. 在虚拟机Ubuntu中编译并执行该程序,查看结果。
4. 在虚拟机Ubuntu中使用交叉编译器编译该程序,然后在实验箱上运行。 5. 编写makefile文件进行编译该程序,然后在对应平台下运行。 五、实验结果及分析:
1. 请叙述几种不同Ubuntu的IP设置方法。
①由于ubantu是在虚拟机上运行的我们可以用主机对虚拟机配置设置 ip ②sudo ifconfig eth0 192.168.0.2 netmask=255.255.255.0 然后执行sudo ifdown eth0
接着sudo ifup eth0来重启网络 ③修改配置文件
2. 请叙述实验箱系统挂载Ubuntu NFS 共享文件夹的步骤。
首先在ubantu上开启nfs服务,创建共享目录,在ubantu上指定开发板通过修改/etc/exports 文件 ,查看ubantu IP地址,重启nfs服务 , 然后在客户机上用mount命令把宿主机共享目录挂载到客户机的指定目录下
3. 请总结VIM 的工作模式类型及常用命令。
命令方式 上下左右键可以进行移动,dd 删除整行
输入方式 :插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r) 底行模式 :wq 保存 :q ! 强制退出
4. 若想编写一个程序,并且在实验箱里运行。完成该工作,主要分为以下几个步骤?
首先在ubantu中安装交叉编译环境,然后ubantu和实验箱通过nfs服务进行数据共享,通过串口连接试验箱和ubantu,通过ssh登录试验箱,在ubantu中编写好程序,用arm-Linux-gcc 进行编译,把编译好的文件通过nfs服务发送到试验箱 然后就可以在试验箱上运行了
实验一 Linux



