当前位置:文档之家› 嵌入式系统实验内容(全)

嵌入式系统实验内容(全)

实验一熟悉Linux开发环境一、实验目的1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom串口终端的使用。

2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。

3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。

4.初步掌握嵌入式Linux开发的基本过程。

二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。

创建一个新目录,并在其中编写hello.c和Makefile文件。

学习在Linux 下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。

下载已经编译好的文件到目标开发板上运行。

三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。

四、实验设备及工具(包括软件调试工具)硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。

软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境五、实验步骤1、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。

Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。

实际的hello.c源代码较简单,如下:#include <stdio.h>main(){printf(“hello world \n”);}我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。

这样我们便在当前目录下建立了一个名为hello.c的文件。

3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。

使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用Makefile的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。

下面我们介绍本次实验用到的Makefile文件。

CC= armv4l-unknown-linux-gccEXEC = helloOBJS = hello.oCFLAGS +=LDFLAGS+= –staticall: $(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文件并将代码录入其中[root@zxt hello]# vi Makefile4、编译应用程序在上面的步骤完成后,我们就可以在hello目录下运行“make”来编译我们的程序了。

如果进行了修改,重新编译则运行:[root@zxt hello]# make clean[root@zxt hello]# make注意:编译、修改程序都是在宿主机(本地PC机)上进行,不能在MINICOM下进行。

5、下载调试在宿主PC计算机上启动NFS服务,并设置好共享的目录,具体配置请参照前面第一章第四节中关于嵌入式Linux环境开发环境的建立。

在建立好NFS共享目录以后,我们就可以进入MINICOM中建立开发板与宿主PC机之间的通讯了。

[root@zxt hello]# minicom[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/arm2410s /host 注意:IP地址需要根据宿主PC机的实际情况修改成功挂接宿主机的arm2410s目录后,在开发板上进入/host目录便相应进入宿主机的/arm2410s目录,我们已经给出了编辑好的hello.c 和Makefile文件,它们在/arm2410s/exp/basic/01_hello目录下。

用户可以直接在宿主PC上编译生成可执行文件,并通过上面的命令挂载到开发板上,运行程序察看结果。

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

如/root/share,我们把我们自己编译生成的可执行文件复制到该文件夹下,并通过MINICOM挂载到开发板上。

[root@zxt hello]# cp hello /root/share[root@zxt hello]# minicom[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/root/share /host再进入/host目录运行刚刚编译好的hello程序,查看运行结果。

[/mnt/yaffs] cd /host[/host] ./hellohello world注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。

这样可以反复修改、编译、调试,不需要下载到开发板。

六、思考题1.Makefile是如何工作的?其中的宏定义分别是什么意思?实验二驱动程序的加载与Demo程序的执行一、实验目的1.进一步熟悉Linux开发环境,数练掌握Minicom串口终端的使用。

2.进一步熟悉UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。

3.学习在目标板上执行程序和加载驱动程序的方法。

二、实验设备及工具1.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。

2.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux 开发环境。

三、实验内容及要求1.运行实验箱ARM2410平台上不需要驱动程序就能执行的Demo演示程序,观察嵌入式平台上程序执行的结果。

(5)exp/hello, exp/pthread, ad, minigui/mgdemo, sound/madplay,sound/mplayer2, web/httpd2.运行实验箱ARM2410平台上需要加载驱动程序的Demo演示程序,学习驱动模块的加载、卸载、查看方法。

要求加载新的驱动程序前卸载不再使用的驱动程序。

(3)Motor/DC/., motor/STEP/., led/.3.编写一个Shell脚本程序,通过执行此Shell程序自动逐个运行上述所有的演示程序,对于需驱动程序支持的程序要能自动加载、卸载其驱动程序。

(2)实验三多线程应用程序设计一、实验目的1.了解多线程程序设计的基本原理2.学习pthread函数的使用。

二、实验设备及工具3.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。

4.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux 开发环境。

三、实验内容1.将/arm2410s/exp/basic/02_pthread/目录中的文件拷贝到/home/name/中。

详细阅读phread.c程序。

Name是指自己姓名拼音或缩写。

2.编译pthread.c程序并采用NFS服务与共享目录挂载的方式在开发平台上运行该程序,研究其输出结果,体会多线程程序的运行特点。

(3) 3.修改程序,若生产产品编号的个位数字为4,则视为不合格产品,不生产到缓冲区也不消费输出。

将原来的输出格式改为:993>>>>>>>>>>>>>>>made completed!993>>>>>>>>>>>>>been consumed!其中993是产品编号的样例,其值在1-999之间。

(4)4.改变缓冲区的大小,观察其对生产与消费的影响。

5.增加键盘输入线程,在生产消费线程运行的过程中随时能够输出按下的键值,若按下ESC键,能立即退出进程。

若无任何按键,则生产线程结束时自动结束整个进程。

(3)四、注意事项1.注意拷贝操作,不能出错。

2.注意要修改拷贝过来的文件属性的修改,chmod 777 filename3.注意共享目录的挂载。

实验四串行端口程序设计一、实验目的1.进一步掌握多线程程序的设计方法。

2.了解在Linux环境下串行端口程序设计的基本方法。

3.掌握终端的主要属性及设置方法,熟悉终端I/O函数的调用二、实验设备及工具1.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。

2.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux 开发环境。

三、实验内容1.阅读源代码,理解串行端口参数设置的含义,编译并在2410s平台上运行该程序。

(2)2.修改原程序,使2410s平台通过串口逐字发送“***Welcome to 2008 BeiJing Olympic Game***!”字样的内容。

(3)3.若上述内容保存在一文本文件中,在程序中打开此文件,将文件中的全部内容通过串口逐字发送到开发主机的显示器。

发送完成后,程序自动退出。

(1)4.通过线程数据共享的方式,将键盘上的按键内容发送到串口,ESC键停止发送并退出进程。

相关主题