实验一、嵌入式系统开发环境熟悉
一、实验目的
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地址,然后进行共享文件夹的挂载。
1、Ifconfig:查看两主机ip地址
2、在实验箱中挂载/opt/work文件夹:mount -t nfs -o nolock 10.10.58.89:/opt/work /mnt/nfs
2. 使用VIM编写计算n=1+2+3+…+100的和。常见vim编辑器命令模式下的命令有
虚拟机中使用gedit创建lab1.c文件编程保存
3. 在虚拟机Ubuntu中编译并执行该程序,查看结果。
gcc -o lab1 lab1.c 显示编译正常
4. 在虚拟机Ubuntu中使用交叉编译器编译该程序,然后在实验箱上运行。
Arm-linux-gcc -o lab1 lab1.c
5. 编写makefile文件进行编译该程序,然后在对应平台下运行。
Makefile文件内容如下:
CC=gcc
CROSS_COMPILE=arm-linux-
OBJ=lab1
$(OBJ):lab1.o
$(CROSS_COMPILE)$(CC) -o S(OBJ) lab1.o
sum.o:sum.c
$(CROSS_COMPILE)$(CC) -c lab1.c
clean:
rm-f *.o
五、实验结果及分析:
1. 请叙述几种不同Ubuntu的IP设置方法。
1、在VMware设置中设置桥接或者NAT
2、使用命令设置
3、直接修改配置文件
2. 请叙述实验箱系统挂载Ubuntu NFS 共享文件夹的步骤。
在试验箱/mnt下新创建nfs文件
然后使用mount -t nfs -o nolock 10.10.58.89:/opt/work /mnt/nfs命令挂载虚拟机的work文件夹
3. 请总结VIM 的工作模式类型及常用命令。
3.1、正常模式
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作。
3.2、插入模式
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中, 输入内容会插入到文本中
3.3、命令模式
在正常模式中,按下:(英文冒号)键,会进入命令模式。 在命令模式中可以设置vim一些格式,也可以进行内容查等操作。
3.4、可视模式
常用命令:
o 光标下方新建一行并进入Insert模式
x 删除光标下的字符
p 粘贴到光标之后
u (小写) 撤销
:wq 保存并退出
4. 若想编写一个程序,并且在实验箱里运行。完成该工作,主要分为以下几个步骤?
4.1、vim创建文件进行编程
4.2、使用gcc进行编译查看是否正常运行
4.3、编写makefile文件
CC=gcc
CROSS_COMPILE=arm-linux-
OBJ=lab1
$(OBJ):lab1.o
$(CROSS_COMPILE)$(CC) -o S(OBJ) lab1.o
sum.o:sum.c
$(CROSS_COMPILE)$(CC) -c lab1.c
clean:
rm-f *.o
4.4、第二行不注释,就是交叉编译 make进行交叉编译
4.5、在实验箱操作界面上./lab1 实现交叉编译运行程序
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论