嵌入式Linux系统开发教程实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式实验报告

学号:

学院:

日期:

实验一熟悉嵌入式系统开发环境

一、实验目的

熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。

二、实验容

本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写hello.c 和Makefile 文件。学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。

三、实验设备及工具

硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。

四、实验步骤

1、建立工作目录

[rootlocalhost root]# mkdir hello

[rootlocalhost root]# cd hello

2、编写程序源代码

我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:

[rootlocalhost hello]# vi hello.c

按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。

hello.c源程序:

#include

int main() {

char name[20];

scanf(“%s”,name);

printf(“hello %s”,name);

return 0;

}

3、编写Makefile

要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。Makefile源程序:

CC= armv4l-unknown-linux-gcc

EXEC = hello

OBJS = hello.o

CFLAGS +=

LDFLAGS+= –static

all: $(EXEC)

$(EXEC): $(OBJS)

$(CC) $(LDFLAGS) -o $ $(OBJS)

clean:

-rm -f $(EXEC) *.elf *.gdb *.o

下面我们来简单介绍这个Makefile 文件的几个主要部分:

CC 指明编译器

EXEC 表示编译后生成的执行文件名称

OBJS 目标文件列表

CFLAGS 编译参数

LDFLAGS 连接参数

all: 编译主入口

clean:清除编译结果

注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一个Tab 制表符生成,不能单纯由空格来代替。

与上面编写hello.c的过程类似,用vi来创建一个Makefile文件并将代码录入其中。

[rootlocalhost hello]# vi Makefile

4、编译应用程序

在上面的步骤完成后,我们就可以在hello 目录下运行“make”来编译我们的程序了。如果进行了修改,重新编译则运行:

[rootlocalhost hello]# make clean//编译应用程序

[rootlocalhost hello]# make//下载调试

注意:编译、修改程序都是在宿主机(本地PC 机)上进行,不能在超级终端下进行。

5、下载调试

在宿主PC计算机上启动NFS服务,并设置好共享的目录,(这里将刚生成的根目录/arm2410cl作为共享目录,以下实验同理)具体配置请参照前面第一章第四节中关于嵌入式Linux 环境开发环境的建立。在建立好NFS共享目录以后,我们就可以进入超级终端中建立开发板与宿主PC机之间的通讯了。

[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/arm2410cl /host //超级终端中执行

如果不想使用我们提供的源码的话,可以再建立一个NFS 共享文件夹。如/root/share,

我们把我们自己编译生成的可执行文件复制到该文件夹下,并通过超级终端挂载到开发板上。

[rootlocalhost hello]# cp hello /root/share //虚拟机中

[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/root/share /host //超级终端中再进入/host目录运行刚刚编译好的hello程序,查看运行结果。

[/mnt/yaffs] cd /host //超级终端中

[/host] ./hello

hello world

(1)在PC计算机上启动NFS 服务,并设置好共享的目录。

相关文档
最新文档