您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 嵌入式Linux系统开发教程实验报告
1嵌入式实验报告姓名:学号:学院:日期:2实验一熟悉嵌入式系统开发环境一、实验目的熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。二、实验内容本次实验使用RedhatLinux9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello.c和Makefile文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。三、实验设备及工具硬件::UP-TECHS2410/P270DVP嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。软件:PC机操作系统REDHATLINUX9.0+超级终端(或X-shell)+AMR-LINUX开发环境。四、实验步骤1、建立工作目录[root@localhostroot]#mkdirhello[root@localhostroot]#cdhello2、编写程序源代码我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@localhosthello]#vihello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。hello.c源程序:#includestdio.hintmain(){charname[20];scanf(“%s”,name);printf(“hello%s”,name);return0;}3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。3Makefile源程序: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@localhosthello]#viMakefile4、编译应用程序在上面的步骤完成后,我们就可以在hello目录下运行“make”来编译我们的程序了。如果进行了修改,重新编译则运行:[root@localhosthello]#makeclean//编译应用程序[root@localhosthello]#make//下载调试注意:编译、修改程序都是在宿主机(本地PC机)上进行,不能在超级终端下进行。5、下载调试在宿主PC计算机上启动NFS服务,并设置好共享的目录,(这里将刚生成的根目录/arm2410cl作为共享目录,以下实验同理)具体配置请参照前面第一章第四节中关于嵌入式Linux环境开发环境的建立。在建立好NFS共享目录以后,我们就可以进入超级终端中建立开发板与宿主PC机之间的通讯了。[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:/arm2410cl/host//超级终端中执行如果不想使用我们提供的源码的话,可以再建立一个NFS共享文件夹。如/root/share,我们把我们自己编译生成的可执行文件复制到该文件夹下,并通过超级终端挂载到开发板上。[root@localhosthello]#cphello/root/share//虚拟机中[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:/root/share/host//超级终端中再进入/host目录运行刚刚编译好的hello程序,查看运行结果。4[/mnt/yaffs]cd/host//超级终端中[/host]./hellohelloworld(1)在PC计算机上启动NFS服务,并设置好共享的目录。启动RedHatLinux–点击“主菜单”-选择“系统设置”-“服务器设置”-“NFS服务器”-“增加”-“基本”下:点击“浏览”选择“/”下的“arm2410cl/”;“确定”;“主机:192.168.0.*”;“基本权限”选择“读/写”;“确定”。-“常规选项”下:选择:“允许来自高于1024的端口的连接”,其他不选;确定。(2)在建立好NFS共享目录以后,进入minicom中建立开发板与宿主PC机之间的通讯新建终端[root@localhostroot]#minicom//服务器新建终端[root@localhostroot]#ifconfigeth0192.168.0.10//设置主机地址[root@localhostroot]#ifconfig//查看地址在服务器下:[/mnt/yaffs]mount-tnfs–onolock192.168.0.56:/arm2410cl/var注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。这样可以反复修改、编译、调试,不需要下载到开发板。6、实验截图57、测试结果测试挂载成功,用mplayerxyz.avi命令播放视频[root@localhost/]#cd/mnt/yaffs/mm[root@localhost/]#mplayerxyz.avi五、实验心得本次实验比较简单,旨在让我们熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。实验中我们创建了一个新目录,并在其中编写hello.c和Makefile文件。我们学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置,下载已经编译好的文件到目标开发板上运行。学会使用Linux的armv4l-unknown-linux-gcc编译和基于NFS方式的下载调试,了解嵌入式开发的基本过程。6实验二S3C2410处理器A/D模块硬件设计一、实验目的1.熟悉硬件电路设计2.掌握简单的S3c2410处理器的电路设计。3.掌握protel软件的使用。二、实验内容使用protel99se做s3c2410处理器最小系统电路设计,A/D数据采集模块电路设计。三、实验设备及工具硬件:UP-TECHS2410/P270DVP嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。软件:PC机操作系统REDHATLINUX9.0、超级终端(或X-shell)、ARM-LINUX开发环境五、实验原理1、A/D转换器A/D转换器是模拟信号源和CPU之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/D转换是不可缺少的。A/D转换器有以下类型:逐位比较型、积分型、计数型、并行比较型、电压-频率型,主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何种类型。常用的有以下两种:(1)双积分型的A/D转换器;(2)逐次逼近型的A/D转换器。2、A/D转换的重要指标(1)分辨率(Resolution)(2)精度(Accuracy)(3)ARM自带的十位A/D转换器(4)A/D转换器在扩展板的连接(A/D转换器在扩展板的接法如图2.4.2所示,前三路通过电位器接到3.3v电源上。)图2.4.2A/D转换器在扩展板上的接法7六、实验步骤1、阅读理解源码进入/arm2410cl/exp/basic/04_ad目录,使用vi编辑器或其他编辑器阅读理解源代码。2、编译应用程序运行make产生ad可执行文件[root@localhost/]#cd/arm2410cl/exp/basic/04_ad/[root@localhost04_ad]#makearmv4l-unknown-linux-gcc-c-omain.omain.carmv4l-unknown-linux-gcc-o../bin/admain.o-lpthreadarmv4l-unknown-linux-gcc-oadmain.o-lpthread[root@localhost04_ad]#lsadhardware.hmain.oMakefile.baks3c2410-adc.hbinmain.cMakefilereadme.txtsrc3、下载调试到超级终端窗口,使用NFSmount开发主机的/arm2410cl到/host目录。[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:/arm2410cl/host[/mnt/yaffs]insmodad/s3c2410-adc.o[/mnt/yaffs]cd/host/exp/basic/04_ad[/host/exp/basic/04_ad]./adPressEnterkeyexit!a0=0.0032a1=3.2968a2=3.2968我们可以通过调节开发板上的三个黄色的电位器,来查看a0、a1、a2的变化。4、原理图85、实验截图七、实验心得通过本次试验,我学会了A/D接口原理,了解实现A/D系统对于硬件要求。阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口,还了解在Linux环境下对S3C2410芯片的8通道10位A/D模块的硬件设计。9实验三Kernel与root的设计和烧写一、实验目的1.掌握Linux内核配置与裁剪的方法2.理解根文件系统配置。3.掌握嵌入式系统内核和根文件系统的烧写的过程。二、实验内容对嵌入式Linux系统进行裁剪、配置和编译,生成自己需要的操作系统映像文件,并将其烧写到flash中。三、实验设备及工具硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。软件:PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境.四、实验步骤1、设计过程:10112、烧写过程:(一)、超级终端设置1、运行Windows系统下开始→所有程序→附件→通讯→超级终端(HyperTerminal),新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入,出现如图1.5.1所示对话框时,为所建超级终端取名为arm,可以为其选一个图标。单击“确定”按钮。122、在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如COM1),按确定后出现如图1.5.2所示的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按确定完成设置。3、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的另存为,把设置好的超级终端保存在桌面上,以备后用。用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息了。(二)、串口下载烧写在Windowsxp平台下通过超级终端烧写vivi(bootloader)、内核(Kernel)、根文件系统(roo
本文标题:嵌入式Linux系统开发教程实验报告
链接地址:https://www.777doc.com/doc-7900404 .html