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

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

举报
开通vip

嵌入式系统实验内容(全)实验一 熟悉Linux开发环境 一、实验目的 1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom串口终端的使用。 2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。 3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。 4.初步掌握嵌入式Linux开发的基本过程。 二、实验内容 本次实验使用Redhat Linux 9.0操作系统环境,安装A...

嵌入式系统实验内容(全)
实验一 熟悉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 hello 2、编写程序源代码 在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。 Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。 实际的hello.c源代码较简单,如下: #include 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-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文件并将代码录入其中 [root@zxt hello]# vi Makefile 4、编译应用程序 在上面的步骤完成后,我们就可以在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] ./hello hello world 注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。这样可以反复修改、编译、调试,不需要下载到开发板。 六、思考题 1.Makefile是如何工作的?其中的宏定义分别是什么意思? 实验二 驱动程序的加载与Demo程序的执行 一、实验目的 1.进一步熟悉Linux开发环境,数练掌握Minicom串口终端的使用。 2.进一步熟悉UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。 3.学习在目标板上执行程序和加载驱动程序的方法。 实验设备及工具 硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。 软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux开发环境。 实验内容及要求 运行实验箱ARM2410平台上不需要驱动程序就能执行的Demo演示程序,观察嵌入式平台上程序执行的结果。(5) exp/hello, exp/pthread, ad, minigui/mgdemo, sound/madplay, sound/mplayer2, web/httpd 运行实验箱ARM2410平台上需要加载驱动程序的Demo演示程序,学习驱动模块的加载、卸载、查看方法。要求加载新的驱动程序前卸载不再使用的驱动程序。(3) Motor/DC/., motor/STEP/., led/. 编写一个Shell脚本程序,通过执行此Shell程序自动逐个运行上述所有的演示程序,对于需驱动程序支持的程序要能自动加载、卸载其驱动程序。(2) 实验三 多线程应用程序设计 实验目的 了解多线程程序设计的基本原理 学习pthread函数的使用。 实验设备及工具 硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。 软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux开发环境。 实验内容 将/arm2410s/exp/basic/02_pthread/目录中的文件拷贝到/home/name/中。详细阅读phread.c程序。Name是指自己姓名拼音或缩写。 编译pthread.c程序并采用NFS服务与共享目录挂载的方式在开发平台上运行该程序,研究其输出结果,体会多线程程序的运行特点。(3) 修改程序,若生产产品编号的个位数字为4,则视为不合格产品,不生产到缓冲区也不消费输出。将原来的输出格式改为: 993>>>>>>>>>>>>>>>made completed! 993>>>>>>>>>>>>>been consumed! 其中993是产品编号的样例,其值在1-999之间。(4) 改变缓冲区的大小,观察其对生产与消费的影响。 增加键盘输入线程,在生产消费线程运行的过程中随时能够输出按下的键值,若按下ESC键,能立即退出进程。若无任何按键,则生产线程结束时自动结束整个进程。(3) 四、注意事项 注意拷贝操作,不能出错。 注意要修改拷贝过来的文件属性的修改,chmod 777 filename 注意共享目录的挂载。 实验四 串行端口程序设计 一、实验目的 进一步掌握多线程程序的设计方法。 了解在Linux环境下串行端口程序设计的基本方法。 掌握终端的主要属性及设置方法,熟悉终端I/O函数的调用 二、实验设备及工具 1.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。 2.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux开发环境。 三、实验内容 阅读源代码,理解串行端口参数设置的含义,编译并在2410s平台上运行该程序。(2) 修改原程序,使2410s平台通过串口逐字发送“***Welcome to 2008 BeiJing Olympic Game***!”字样的内容。(3) 若上述内容保存在一文本文件中,在程序中打开此文件,将文件中的全部内容通过串口逐字发送到开发主机的显示器。发送完成后,程序自动退出。(1) 通过线程数据共享的方式,将键盘上的按键内容发送到串口,ESC键停止发送并退出进程。(4) 编写一个简单文件收发程序,实现串口文件的下载。(3) 实验五 A/D接口的设置与程序设计 一、实验目的 了解AD转换的原理与主要技术参数,了解与ARM内部转变换器相关的寄存器及参数设置方法。 学习在Linux环境下对s3c2410芯片中AD转换器的操作与控制。 学习Linux+ARM系统中数据采集的后期处理方法以及C语言的具体实现。 二、实验设备及工具 1.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。 2.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux开发环境。 三、实验内容 1.阅读源代码,学习AD接口的设置和初始化方法。 2.利用交叉编译方法在自建目录中编译运行原程序。(2) 3.修改程序,使用滑动平均滤波算法对3个通道的转换结果进行处理,调整队列长度使响应速度和数据稳定度达到一个最佳效果。(4) 附加:如果V_CH1(通道1的值)在V_CH0与V_CH2之间,则在数据之后显示“Normal”字样,否则分别显示“Low”或“High”字样(2)。 在上述数据滤波基础之上,增加线程键盘控制功能,若输入数字0、1、2则选择响应的通道采集数据、刷新显示,若按“Esc”键,则退出进程。(2) 将内容3的屏幕输出结果逐行 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 到一个文本文件中,记录行数不要超过1000行。(2) 实验六 直流电机驱动实验 一、实验目的 1.了解ARM微处理器的PWM端口,掌握相应寄存器的配置方法。 2.学习Linux内核驱动模块配置、编译、加载的步骤与方法。 3.在Linux环境下编程实现ARM系统PWM输出的基本方法,以及实现直流电机调速与控制的程序设计方法。 二、实验设备及工具 1.硬件:UP-NETARM2410-S嵌入式实验平台,PIV2.4G/512M/120G开发主机。 2.软件:WindowsXP+VMware5.0+RedHatLinux9.0,Minicom, vi, ARM-Linux开发环境。 三、实验内容 1.阅读源代码,了解定时器寄存器的配置方法。 2.配置、编译直流电机驱动程序模块。在/kernel2410s/kernel-2410s目录中运行make menuconfig,完成配置、编译过程。(3) 3.使用insmode命令加载刚才重新编译的直流电机驱动模块,交叉编译并运行直流电机调速控制程序。(3) 4.修改源程序,当在键盘上按“上”光标键时,电机速度逐渐增加;若按“下”光标键,则电机速度逐渐减小。若按下空格键,则电机停止转动,并切换一次转动方向。(4) 5.使用AD转换外接的电位器作为输入,编程设计一个通过电位器旋钮实现直流电机调速的系统。(3) 递推平均滤波法(又称滑动平均滤波法sliding average filter) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果 N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 程序: /* */ #define N 12 char b[N]; int j=0; char filter() { char count; int sum=0; For (j=0;j
本文档为【嵌入式系统实验内容(全)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_232858
暂无简介~
格式:doc
大小:46KB
软件:Word
页数:7
分类:工学
上传时间:2012-02-09
浏览量:49