《嵌入式系统开发》实验指导书.doc
《《嵌入式系统开发》实验指导书.doc》由会员分享,可在线阅读,更多相关《《嵌入式系统开发》实验指导书.doc(53页珍藏版)》请在三一办公上搜索。
1、嵌入式系统开发编撰闽江学院计算机实验教学中心印制目 录实验一 Linux 常用工具实验 1实验二 Makefile 实验 9实验三 Cross-gdb实验 18实验四 嵌入式GUI 应用程序实验 22实验五 驱动程序结构实验 31实验六 QT/E 移植实验 37实验七 串口通讯实验 42实验八 Webserver 的移植与网络通讯实验 48实验一 实验目的1、了解minicom 配置串口通信参数的过程,掌握利用minicom 进行传输文件方法2、了解网络文件系统nfs 的配置,掌握利用nfs 进行文件的传输和异地运行目标板程序3、掌握ftp 的使用方法实验环境1、装有Linux 操作系统的PC
2、 机一台;2、XSBase270 或XSBase255 ARM 实验开发平台一套实验内容阅读相关知识,完成以下实验:一、minicom 的使用实验内容1、将目标机与PC 机相连,利用minicom s 正确设置串口的参数,启动目标机,记录PC机显示的内容2、关闭目标板,利用minicom s 重新设置串口参数,启动目标机,记录PC 机显示的现象3、利用串口通信向目标机下载光盘中example 目录下的hello 应用程序,同时运行该应用程序。记录文件下载在目标板目录和下载文件的基本步骤。二、网络文件系统nfs 的配置及应用实验内容1、通过网络文件系统的配置将主机的其他目录(如/root/Emd
3、oor 目录),并挂载到目标机上,记录设置的步骤。2、将主机example 目录下的ARM 程序hello 复制到主机的网络文件系统目录上,在目标机的挂载目录运行该程序,记录运行结果并写出你的结论3、将目标机其他目录上的文件复制到网络文件系统挂载的目录上,然后到主机上查看文件是否完成传输。4、将主机上其他目录上的文件复制到网络文件系统挂载的目录上,然后到目标机挂载网络文件系统的目录中将该文件复制到目标机其他目录上,重新启动目标机系统查看文件是否复制成功。最后写出你的结论。三、ftp 实验内容1、将example 目录下的文件cxcore.lib 文件通过ftp 直接传输到目标板的/usr/li
4、b 目录下,记录通过ftp 传输文件的基本步骤,并与通过串口传输文件进行比较,写下你的结论。2、将目标板中/usr/lib 目录下的一个文件传输到主机上,记录传输的基本步骤和文件传输所在的目录。相关练习1、一目标平台通过串口与PC 机连接后,用户启动目标平台时发现串口终端出现乱码,请分析串口终端产生乱码的原因。2、某同学想利用ftp 进行文件传输,他已经设定主机平台的IP 地址为192.168.0.100,可在串口终端输入ftp 192.168.0.100 时,出现ftp:connect:Connection refused 错误,请分析产生错误的原因。3、参考ftp 适应文档,分析在ftp
5、方式下如何使用linux 下如mkdir 等常用命令。相关知识一、minicom 的使用1、串口通信参数的设置首先运行minicom,由于minicom 是通过串口来工作的,所以要通过minicom 程序来对串口通信参数进行设置。启动minicom 的设置窗口:在linux 的终端中输入“minicom s”,然后,按下回车键。rootlocalhost root# minicom s“-s”选项调出配置信息。下面显示的就是配置的菜单。有关串口通信选项的含义:Filenames and paths:选择需要传输的文件和路径File transfer protocols:选择传输文件的通信协议S
6、erial port setup:设置串口通信参数Save setup as dfl:将设置好的各项参数保存为dflSave setup as:将设置好的各项参数保存为自定义的文件名Exit:退出返回到minicom 设置好后的终端Exit from Minicom:从minicom 命令中退出返回Linux 终端将光标移到Serial port setup,按回车键会弹出串口通信参数的配置菜单。(1)、串口通信口的选择:(A - Serial Device)接A键把光标移动到Serial Device。如果串口线连在PC 机的串口1 上,则把Serialdevice 设置为/dev/ttyS
7、0。如果连在串口2 上,则把Serial device 设置为/dev/ttyS1,然后按下回车键。(2)、串口参数的设置(E - Bps/Par/Bits)按E键来设置通信波特率、数据位、奇偶校验位和停止位。可以通过按下不同的键来设置通信参数。例如XSBase270 平台需要把波特率设为115200,数据位设为8,奇偶校验位设为无,停止位设为1。可以分别通过按I、V、L、W键设置波特率、数据位、奇偶校验位和停止位。设置完后按Esc返回。(3)、数据流的控制选择(F - Hardware Flow Control、G - Software Flow Control)按F键可以完成硬件流控制切换
8、,即完成Yes与No之间的切换。按G键完成软件流控制切换,即完成Yes与No之间的切换。下图显示的是串口配置好的后完整信息。(4)、设置参数的保存与退出配置完成后,按下“Esc”键,将会出现下图的配置菜单。选择“Save setup as dfl”按ENTER 键来保存,当配置保存后,按下“Esc”键完成设置。当minicom 窗口出现后,重起XSBase270 将会看到启动信息。如果没有出现启动信息,请检查mincom 的设置和线缆连接是否有错。2、利用串口通信文件传输在与目标板连接后,可以通过串口下传一些文件到目标板,具体操作步骤如下:(1)、在与目标正确连接后,进入root51board
9、,按下CTRLA 键后,再按Z 键,系统调出minicom 的命令选项菜单;其中Send files 和Receive files 两项负责文件数据的传输,所用命令使用热键进行激活。如上传文件只需按S 键。(2)、当向目标板上传文件时,按S 键,系统弹出串口通信协议选项,利用方向键选中zmodem传输协议,按回车键,进入文件选择菜单。(3)、文件传输文件选择菜单弹出后,利用空格键选中需要上传的文件,一次可以选择多个文件,选好需要传输的文件后按回车键,便可以进行文件数据传输。当数据传输完毕,系统会弹出传输完毕提示菜单(如下图所示)。二、网络文件系统nfs 的配置网络文件系统nfs 可以将PC 机
10、上的一部分文件系统作为目标机的资源,这样可以弥补目标机存储空间的不足。在使用网络文件之时,应对网络文件配置进行一定的设置。1、主机(host)的设置:在主机/mnt 目录下创建nfs 目录,并利用文本编辑器编辑修改/etc/exports 文件,增加如下内容:/mnt/nfs (rw,no_root_squash)将主机的/mnt/nfs 目录设置为能够通过网络文件系统访问可读写的目标,2、重新启动nfsrootlocal$ /etc/rc.d/init.d/nfs stoprootlocal$ /etc/rc.d/init.d/nfs start3、目标机设置(假设主机的IP 地址为192.
11、168.1.12)root51Board$ portmaproot51Board$ mount t nfs 192.168.1.12:/mnt/nfs /mnt上述设置实现将主机上的/mnt/nfs 目录挂载到目标机的/mnt 目录下,并作为目标机文件系统的一部分。这时,可以将需要传输的文件或需要运行的程序保存在主机的/mnt/nfs 目录下,然后在目标机对主机/mnt/nfs 上的文件进行运行或复制等相应的处理。三、ftp 文件传输文件传输协议ftp(File Transimit Protocol)利用以太网实现文件的传输。ftp 相对于串口传输文件来说,传输速度快,所以上传比较大的文件一般
12、采用ftp 来实现,需要上传的文件应保存到主机的/var/ftp/pub 目录下。下面具体介绍ftp 文件传输过程(假设主机的IP 地址为192.168.0.100)。(ftp 的具体其他用法可以在linux 终端提示符输入man ftp 查看)1、在目标板的调试终端输入ftp 命令root51Board$ ftp 192.168.0.1002、输入用户名和密码:用户采用匿名登陆网络(anonymous),无需输入密码。如果用户需要采用其他的用户名登陆,必须修改(脚本)3、当用户名和密码都正确后,在调试终端显示登陆成功信息和ftp 提示符,如图所示。4、文件传输:ftp 提示符下利用cd 命令
13、转到主机的pub 目录下,利用get 命令上传需要传输的文件。假设需要上传的文件为facedect(确保文件保存在主机的/var/ftp/pub 目录下)ftpget facedect文件传输完毕后,ftp 输出成功信息和被传输文件的字节数。(如图所示)实验二 Makefile 实验 实验目的1、了解Makefile 的基本概念和基本结构2、初步掌握编写简单Makefile 的方法3、了解递归Make 的编译过程4、初步掌握利用GNU Make 编译应用程序的方法实验环境1、装有Linux 操作系统的PC 机一台;2、XSBase270 或XSBase255 ARM 实验开发平台一套实验内容阅
14、读相关知识,完成以下实验:一、使用命令行的方式手动编译程序方法1、利用文本编辑器创建hello.c 文件/hello.c/written by Emdoor#include int main()printf(Welcome Emdoor!n);return 1;2、手动编译hello 应用程序在hello.c 的目录的终端下输入:rootlocal$ arm-linux-gcc c hello.crootlocal$ arm-linux-gcc hello.o o hello通过ls 命令查看当前目录下是否生成源代码hello.c 的object 文件hello.o 和可执行文件hello,运
15、行可执行文件hello。查看一下运行结果。root51Board $./hello3、修改hello.c 文件,重新手动编译应用程序。4、删除hello.o 和hello 文件rootlocal$rm f hello.orootlocal$rm f hello二、利用GNU make 自动编译应用程序方法1、利用文本编辑器创建一个makefile 文件,并将其保存到与hello.c 相同的目录下。# makefile test for hello program#written by EmdoorCC= arm-linux-gccCFLAGS=all: hellohello: hello.o$
16、(CC) $(CFLAGS) hello.o o hellohello.o: hello.c$(CC) $(CFLAGS) c hello.c o hello.oclean:rm rf hello *.o2、先后执行如下命令rootlocal$makerootlocal$lsroot51Board $./hello查看并记录所生成的文件和运行的结果。3、执行make clean 命令:rootlocal$make clean4、修改hello.c 文件,重复第2、3 步操作,查看并记录所生成的文件和运行结果,并与手动编译进行比较,写出你的结论。5、重新编辑makefile 文件(斜黑体表示修改
17、部分)# makefile test for hello program#written by EmdoorCC= arm-linux-gccCFLAGS=OBJS=hello.oall: hellohello: $(OBJS)$(CC) $(CFLAGS) $ -o $hello.o: hello.c$(CC) $(CFLAGS) c $ -o $clean:rm rf hello *.o6、重复第2,3 步操作,查看并记录所生成的文件和运行的结果。比较这两种操作,写出你的结论。同时指出$ 、$、$在上述Makefile 中的含义。三、多个.c 文件的编译1、创建文件hello1.c、hel
18、lo2.c、hello.h 和makefile/hello1.c/written by Emdoor#include int main()printf(Welcome Emdoor!n);test2();return 1;/hello2.c/written by Emdoorinclude hello2.h#include void test2(void)printf(Welcome Emdoor! hello2n);/hello2.h/written by Emdoorvoid test2(void);# makefile test for multi files program#writt
19、en by EmdoorCC= arm-linux-gccCFLAGS=OBJS=hello1.o hello2.oall: hellohello: $(OBJS)$(CC) $(CFLAGS) $ -o $hello1.o: hello1.c$(CC) $(CFLAGS) c $ -o $hello2.o: hello2.c$(CC) $(CFLAGS) c $ -o $clean:rm rf hello *.o2、先后执行如下命令 rootlocal$makerootlocal$lsroot51Board $./hello查看并记录所生成的文件和运行的结果, 写出你的结论。3、修改make
20、file 文件(斜黑体表示修改部分)# makefile test for multi files program#written by EmdoorCC= arm-linux-gccCFLAGS=CFILES=$(wildcard *.c)OBJS=$(CFILES:%.c=%.o)all: hellohello: $(OBJS)$(CC) $(CFLAGS) o hello $(OBJS).c.o:$(CC) c $clean:rm rf hello *.o4、重复第2 步操作,查看并记录所生成的文件和运行的结果, 写出你的结论。并指出wildcard、.c.o 的含义和变量CFILES
21、代表的内容。*四、利用autoconf和automake工具包,将作业2的程序代码交叉编译后下载或用NFS在开发系统中运行。相关练习1、根据提供的Linux 操作系统源码中得Makefile 结构,分析在工程中多级目录中存在着多个makefile 时,编译的顺序如何?2、根据Makefile 中变量定义规则,如果实验中的hello.c 文件编译到目标平台中运行,应该怎样修改Makefile 中变量参数?相关知识在Linux 或Unix 环境下,对于只含有几个源代码文件的小程序(如hello.c)的编译,可以手工键入gcc 命令对源代码文件逐个进行编译;然而在大型的项目开发中,可能涉及几十到几百
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统开发 嵌入式 系统 开发 实验 指导书

链接地址:https://www.31ppt.com/p-2392517.html