您好,欢迎访问三七文档
江苏科技大学嵌入式实验报告专业名称:计算机科学与工程班级:学号:姓名:指导教师:小组成员:2017年6月9日实验一搭建嵌入式系统开发环境一、实验目的:熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。二、实验内容:本次实验使用RedhatLinux9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello.c和Makefile文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。四、实验设备及工具硬件:UP-TECHS2410/P270DVP嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。软件:PC机操作系统REDHATLINUX9.0+超级终端(或X-shell)+ARM-LINUX开发环境。五、实验步骤:1、建立工作目录2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vi和Xwindow界面下的gedit等,我们在开发过程中推荐使用vi,用户需要学习vi的操作方法,请参考相关书籍中的关于vi的操作指南。Kdevelope、anjuta软件的界面与vc6.0类似,使用它们对于熟悉windows环境下开发的用户更容易上手。实际的hello.c源代码较简单,如下:我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用Makefile的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。下面我们介绍本次实验用到的Makefile文件。4.编译应用程序vi编辑器,编写代码,并使用armv4l-unknown-linux-gcc编译器进行编译Hello.c源代码为5.下载调试1)主机设置NFS共享选中NFS-设置共享文件夹2)实验箱终端输入:Mount-tnfs192.168.0.3:/lx/mnt/nfs运行编译后程序五、实验心得:通过这次试验配置,让我了解了对这个试验的流程,让我知道怎样配置Linux开发环境,也让我对知识进一步的加深理解,了解嵌入式开发的基本过程,在试验里做这些很有好处。实验二s3c2410处理器A/D模块硬件设计一、实验目的:1.熟悉硬件电路设计2.掌握简单的S3c2410处理器的电路设计。3.掌握protel软件的使用二、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。软件:PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境三、实验内容:使用protel99se做s3c2410处理器最小系统电路设计,A/D数据采集模块电路设计。四、实验原理:1.安装protel99SE软件2.学习使用protel电路原理图设计新建。SCH文件创新芯片封装3.学习使用protel进行PCB设计新建。PCB文件创新芯片封装A/D转换器A/D转换器是模拟信号源和CPU之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/D转换是不可缺少的。S3C2410A的A/D转换器包含一个8通道的模拟输入转换,可以将模拟输入信号转换成10位数字编码。在AD转换时钟为2.5MHz时,其最大转换率为500KSPS,输入电压范围是0~3.3v与A/D转换相关的寄存器:ADC控制寄存器(ADCCON)ADC触摸屏控制寄存器(ADCTSC)ADC启动延时寄存器(ADCDLY)ADC转换数据寄存器(ADCDATn)五、实验步骤1、定义与A/D转换相关的寄存器#definerADCCON(*(volatileunsigned*)0x58000000)#definerADCTSC(*(volatileunsigned*)0x58000004)#definerADCDLY(*(volatileunsigned*)0x58000008)#definerADCDAT0(*(volatileunsigned*)0x5800000c)#defineRadcdat1(*(volatileunsigned*)0x58000010)2、对A/D转换器进行初始化。这里的参数ch表示选择的通道号VoidAD_Init(unsignedcharch){Radcdly=100;Radctsc=0;rADCCON=(114|(496)|(ch3)|(02)|(01)|(0);3.获取A/D的转换值。参数ch为选用的通道号IntGet_AD(unsignedcharch){IntI;Intval=0;If(ch7)return0;For(i=0;i16;i++){rADCCON|=0x1;Radccon=Radccon&0xffc7|(ch3);While(Radccon&0x1);While(!(Radccon&0x8000));Val+=(Radcdat0&0x03ff);Delay(10);}Return(val4);4.原理图五、实验心得:通过本次实验,我学习了A/D接口原理,了解实现A/D系统对于硬件要求。阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。还了解在linux环境下对S3C2410芯片的8通道10位A/D模块的硬件设计。实验三Kernel与root的设计和烧写一、实验目的:1.掌握Linux内核配置与裁剪的方法2.理解根文件系统配置。3.掌握嵌入式系统内核和根文件系统的烧写的过程二、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。软件:PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境三、实验内容:对嵌入式Linux系统进行裁剪、配置和编译,生成自己需要的操作系统映像文件,并将其烧写到flash中。Linux内核移植与编译实验下载Linux内核源码到用户开发目录makemenuconfigmakecleanmakedepmakezImage在arch/arm/boot目录下得到zImage在windows的超级终端中,启动bootloader,根据vivi提供的命令行现在新的kernel和root到实验箱的flash中,从而更新系统。loadflashkernelxloadflashrootx1.串口下载烧写2.烧写vivi3.烧写内核映象zImage四、实验结果五、实验心得:通过本次实验,我初步掌握了Linux内核配置与裁剪的方法,更深的理解了根文件系统配置,也掌握了嵌入式系统内核和根文件系统的烧写的过程。实验四、嵌入式软件设计与交叉编译一、实验目的:1.掌握嵌入式Linux软件设计方法原理2.掌握Makefile文件设计方法。3.熟悉Linux下静态库和共享库的设计二、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。软件:PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境三、实验内容:(1)编写一个带输入、输出的由5个文件组成的嵌入式软件;(2)写好makefile文件,并上机调试;(3)用变量指明两种编译器。四、实验步骤:1.在宿主机(PC)上建立用户开发目录,编写嵌入式程序文件,3个C文件+2个头文件。cd/mkdirshiyaninput.h#defineN10Voidinput(char*s)input.c#includestdio.h#includefcntl.hVoidinput(char*s){Printf(“inputyournameplease:”);Scanf(“%s”,s);}output.h#defineM5Voidoutput(char*s)output.c#includestdio.h#includefcntl.hVoidoutput(char*s){Printf(“hello%s!\n”,s);}main.c#includestdio.h#includefcntl.h#include“input.h”#include“output.h”Intmain(){inti=0;charname[N];input(name);for(i=0;iM;i++)output(name);return0;}2.编写Makefile文件,要求Makefile文件实现这5个文件的编译,有clean和intall选项,用变量选择86和arm编译器指明CC=gcc或CC=armv4l-unknown-linux-gcc。#makefile#cc=arm4vl-unknown-linux-gcccc=gccmain:main.oinput.ooutput.o$(cc)–omainmain.oinput.ooutput.omain.o:main.cinput.houtput.h$(cc)–cmain.cinput.o:input.c$(cc)–cinput.coutput.o:output.c$(cc)–coutput.cClean:rmmainmain.oinput.ooutput.o3.编译程序,并下载到实验箱上执行mount–tnfs主机ip:/开发目录/host。在主机上运行:挂载到目标板上运行:五、实验心得:通过此次实验我认识了嵌入式系统上C语言编程与普通PC机上C语言编程的不同点,掌握了使用交叉编译环境编译嵌入式系统程序的方法。掌握了Makefile文件设计方法。实验五嵌入式驱动程序设计一、实验目的:1.学习在LINUX下进行驱动设计的原理2.掌握使用模块方式进行驱动开发调试的过程二、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。软件:PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境三、实验内容:在PC机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。在PC(宿主机)上编译调试驱动程序。1、阅读和理解源代码进入/arm2410cl/exp/drivers/01_demo,使用vi编辑器或其他编辑器阅读理解源代码。2、编译驱动模块及测试程序上面介绍了在Makefile中有两种编译方法,可以在本机上使用gcc也可以使用交叉编确定#KERNELDIR=/arm2410cl/kernel/linux-2.4.18-2410clKERNELDIR=/usr/src/linux3、测试驱动程序如果使用gcc编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。#mknod/dev/democ2540首先要插入驱动模块demo.o,然后可以用
本文标题:嵌入式实验报告
链接地址:https://www.777doc.com/doc-1799213 .html