南京理工大学嵌入式系统实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“嵌入式系统实验报告”。
嵌入式系统实验报告
指导老师:孙瑜 时间:2014年11月
实验一 虚拟机下Linux程序编写和交叉编译
一、实验目的熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用,使用Linux的armv4l-unknown– linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。
二、实验内容
本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello.c文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。
三、预备知识
C 语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。
四、实验设备及工具(包括软件调试工具)
硬件:UP-NETARM2410-S嵌入式实验平台、PC机。
软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境
五、实验步骤
内容一 虚拟机下Linux程序编写
1、实验步骤
(1)建立hello文件夹;(2)用Vi编写hello程序;
(3)编译、输入 gcc hello.c –o hello;
(4)运行hello文件夹下的hello 程序,运行,输入./hello(5)查看运行结果。
2、得到的运行结果如图1所示。
图1 运行结果
内容二 交叉编译
1、实验步骤
(1)进入hello文件夹;
(2)交叉编译 armv4l-unknown-linux-gcc helo.c –o hello;(3)CP hello /arm2410s;
(4)设IP: ifconfig etho 192.168.0.121,登入arm开发板:telnet 192.168.0.115,输入root;(5)挂载:mount –o nolock 192.168.0.121:/arm2410s /mnt;(6)cd/mnt 找到hello(7)./hello 运行,查看结果。
2、得到的运行结果如图2所示。
图2 运行结果
六、实验思考
1.简述如何编写和编译可以在目标板上运行的可执行程序。
答:主要通过先建立hello文件夹,然后用Vi编写hello程序,编译之后,运行hello文件夹下的hello 程序就可以运行了。
实验二 多线程应用程序设计
一、实验目的1.了解多线程程序设计的基本原理。2.学习pthread库函数的使用。
二、实验内容
熟悉几个重要的PTHREAD库函数的使用,掌握共享锁和信号量的使用方法。进入/arm2410s/ exp/ basic/ 02_pthread目录,运行make产生pthread程序,使用NFS方式连接开发主机进行运行实验。
三、实验准备
1.交叉编译器的环境设置
使用vi修改/root/.bash_profile 文件中PATH变量为PATH=$PATH:$HOME/bin:/opt/host/ armv4l/ bin/,存盘后执行: source/root/.bash_profile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入armv,然后按 tab 键,会自动显示armv4l-unknown-linux-。2.NFS共享文件夹
点击主菜单运行系统设置->服务器设置->NFS服务器(英文为:SETUP->SYSTEMSERVICE->NFS),点击增加出现如下在界面,在目录:中填入需要共享的路径,在主机:中填入允许进行 连接的主机IP地址。并选择允许客户对共享目录的操作为只读(Read-only)或读写(Read/write)
下图是对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。
当将远程根用户当作本地根用户时,对于操作比较方便,但是安全性较差。最后退出时则完成NFS 配置。配置好后,界面应显示如下图所示:
四、实验步骤
1.进入02_pthread 文件夹,cd /arm2410s/exp/basic/02_pthread;2.交叉编译:make之后,telnet 192.168.0.115,输入root; 3.mount –o nolock 192.168.0.121/arm2410s /mnt; 4.找到可执行文件:cd /mnt/exp/basic/02_pthread; 5.运行./pthread,查看结果。
五、实验结果
运行结果如图3所示,其中由于原始程序中显示的数据为0-999,我们觉得数据太多,显示不方便。所以,将原程序中的N改为20。
图3 显示结果
实验三 串行端口程序设计
一、实验目的1.了解在linux环境下串行程序设计的基本方法。
2.掌握终端的主要属性及设置方法,熟悉终端I/O函数的使用。3.学习使用多线程来完成串口的收发处理。
二、实验内容
学习终端I/O函数的使用方法,学习将多线程编程应用到串口的接收和发送程序设计中。
三、预备知识
1.有C 语言基础。
2.掌握在Linux下常用编辑器的使用。3.掌握Makefile的编写和使用。
4.掌握Linux下的程序编译与交叉编译过程
四、实验设备及工具
硬件:UP-NETARM2410-S嵌入式实验平台、PC机。
软件:PC机操作系统REDHAT LINUX 9.0+DNW+ARM-LINUX开发环境。
五、实验步骤
1、阅读理解源码
进入expbasic 3_tty目录,使用vi编辑器或其他编辑器阅读理解源代码。
2、编译应用程序
运行make产生term可执行文件
[root@zxt root]# cd /arm2410s/exp/basic/03_tty/ [root@zxt 03_tty]# make armv4l-unknown-linux-gcc-c-o term.o term.c armv4l-unknown-linux-gcc-o../bin/term term.o-lpthread armv4l-unknown-linux-gcc-o term term.o-lpthread [root@zxt 03_tty]# ls Makefile Makefile.bak term term.c term.o tty.c3、下载调试
切换到minicom终端窗口,使用NFS mount开发主机的/arm2410s到/host目录。进入expbasic 3_tty目录,运行term,观察运行结果的正确性。[/mnt/yaffs] cd /dev [/dev] ln –sf /dev/tts/0 ttyS0 [/dev] cd /mnt/yaffs [/mnt/yaffs] mount-t nfs-o nolock 192.168.0.121:/arm2410s /host [/mnt/yaffs]cd /host/exp/basic/03_tty/ [/host/exp/basic/03_tty]./term
六、实验结果
得到的运行结果如图4所示。
图4 运行结果
实验四 A/D接口实验
一、实验目的了解在linux环境下对S3C2410芯片的8通道10位A/D的操作与控制。
二、实验内容
1.学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。
2.阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。3.利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。
三、预备知识
1.有C语言基础。
2.掌握在Linux下常用编辑器的使用。3.掌握Makefile的编写和使用。
4.掌握Linux下的程序编译与交叉编译过程。
四、实验设备及工具
硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上,硬盘10G以上。软件:PC机操作系统REDHAT LINUX 9.0+DNW+ARM-LINUX 开发环境
五、实验步骤
1、阅读理解源码
进入/arm2410s/exp/basic/04_ad目录,使用vi编辑器或其他编辑器阅读理解源代码。
2、编译应用程序
运行make 产生ad 可执行文件
[root@zxt /]# cd /arm2410s/exp/basic/04_ad/ [root@zxt 04_ad]# make armv4l-unknown-linux-gcc-c-o main.o main.c armv4l-unknown-linux-gcc-o../bin/ad main.o-lpthread armv4l-unknown-linux-gcc-o ad main.o-lpthread [root@zxt 04_ad]# ls ad hardware.h main.o Makefile.bak s3c2410-adc.h bin main.c Makefile readme.txt src3、下载调试
换到minicom 终端窗口,使用NFS mount 开发主机的/arm2410s 到/host 目录。[/mnt/yaffs] mount-t nfs-o nolock 192.168.0.56:/arm2410s /host [/mnt/yaffs]cd ad [/mnt/yaffs/ad]insmod s3c2410-adc.o [/mnt/yaffs]cd /host/exp/basic/04_ad/ [/host/exp/basic/04_ad]./ad
六、实验结果
调节开发板上的三个黄色的电位器,观察a0,a1,a2的变化。变化如图5所示。
图5 实验结果
七、实验思考
1.ARM的A/D功能的相关寄存器有哪几个,对应的地址是什么? 答:采样控制寄存器(ADCCON)
0X58000000 ADC触摸屏控制寄存器(ADCTSC)0X58000004
ADC启动延时寄存器(ADCDLY)
0X58000008
A/D转换结果数据寄存器(ADCDAT0)0X580000C
(ADCDAT1)0X58000010
2.如何启动ARM开始转换A/D,有几种方式?转换开始时ARM是如何知道转换哪路通道的?如何判 断转换结束?
答:有两种方式软件和硬件启动。A/D转换可以通过读来启动。当ADCCON[1]时,就可以启动。通过对ADCCON[5:3]是对模拟输入通道进行选择。
实验五 D/A接口实验
一、实验目的1.掌握MAX504 D/A转换芯片的使用方法
2.掌握不带有D/A的CPU扩展D/A功能的主要方法 3.了解D/A驱动程序加入内核的方法
二、实验内容
了解实现D/A系统对于系统的软件和硬件要求。阅读MAX504芯片文档,掌握其使用方法。
三、预备知识 1.有C 语言基础
2.掌握在Linux下常用编辑器的使用 3.掌握Makefile的编写和使用
4.掌握Linux下的程序编译与交叉编译过程
四、实验设备及工具
硬件:UP-NETARM2410-S嵌入式实验平台、PC机。
软件:PC 机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境
五、实验原理
1.阅读理解源码
进入/arm2410s/exp/basic/05_da目录,使用vi编辑器或其他编辑器阅读理解源代码。2.编译应用程序
运行make 产生da 可执行文件da_main [root@zxt /]# cd /arm2410s/exp/basic/05_da/ [root@zxt 05_da]# make armv4l-unknown-linux-gcc-c-o da_main.o da_main.c armv4l-unknown-linux-gcc da_main.o-o da_main [root@zxt 05_da]# ls da_main da_main.c da_main.o doc drivers Makefile s3c44b0-spi.h 3.下载调试
切换到minicom终端窗口,使用NFS mount开发主机的/arm2410s到/host目录,然后进入
/host/exp/05_da/drivers目录,用insmod exio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。[/mnt/yaffs]cd /host/exp/basic/05_da/ [/host/exp/basic/05_da]cd drivers/ [/host/exp/basic/05_da/drivers]insmod exio.o Using exio.o [/host/exp/basic/05_da/drivers]lsmod Module Size Used by Not tainted exio 2384 0(unused)i2c-tops2 14104 0(unused)进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果的正确性。[/host/exp/basic/05_da]./da_main1 1
六、实验结果
运行结果如图6所示。
图6 结果显示
七、实验思考
1.D/A 转换器的分类。
答:电压输出型;电流输出型;乘算型;一位D/A 转换器。2.D/A 转换器的主要技术指标。
答:(1)分辩率:指最小模拟输出量(对应数字量仅最低位为“1”)与最大量(对应数字量所有有效位为“1”)之比。
(2)建立时间:是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。D/A中常用建立时间来描述其速度,而不是A/D中常用的转换速率。一般地,电流输出D/A建立时间较短,电压输出D/A则较长。
(3)线性度;(4)转换精度:
(5)温度系数/漂移。3.MAX504 的特点。
答:特点:它的分辨率是10 Bits,建立时间为16 us,工作电压:-5.5V-5.5V,电压不随温度变化,可变的输出范围:0V~VDD,VSS~VDD,上电复位,串行输出。
实验总结
通过这次嵌入式的实验,我对嵌入式有了入门式的了解,首先在第一个实验的时候,由于是基础实验,所以刚开始只是做了一个仿真练习,但是在接下来,就让我们比较了在与arm板连接后显示的hello与软件仿真之间的不同。另外,这几次的实验让我对交叉编译有了很深的了解,交叉编译就是在宿主机上编译能在目标板上运行的程序,之所以用交叉编译,就是因为很多目标机的功能不是很强大,例如没有足够的内存,CPU也不行。所以,交叉编译可以帮助克服这些缺点。虽然嵌入式系统这门课是选修课,但是这门课也让我学会很多东西。对于以后的学习也会有很多帮助。
广西工学院鹿山学院实 验 报 告课程名称: 嵌入式系统指导教师: 刘瑞琪 班 级: 自动化101 姓 名: 杨杰 学 号: 20102787 成绩评定: 指导教师签字: 2013年5月25日实验一简单的程序......
嵌入式系统实验报告内容第一章:ARM2410CL嵌入式系统基础实验实验一ARM2410CL嵌入式教学实验系统实验报告要求:(1) 简述嵌入式LINUX开发的流程。实验二 嵌入式LINUX开发环境的配......
嵌入式系统设计实验报告班 级:学 号:姓 名:成 绩:指导教师: 20110612 2011061208 李晓虹 武俊鹏、刘书勇 1.实验一1.1 实验名称博创UP-3000实验台基本结构使用方法1.2 实验目......
嵌入式系统实验报告学号:姓名:班级:13电子信息工程指导老师:苏州大学 电子信息学院2016年12月实验一:一个灯的闪烁1、实验要求实现PF6-10端口所连接的任意一个LED灯点亮2、电路......
嵌入式系统设计实验报告班 级: 学 号: 姓 名: 成 绩: 指导教师: 1.实验一1.1 实验名称博创UP-3000实验台基本结构及使用方法1.2 实验目的1.学习嵌入式系统开发流程。2.熟悉UP-net30......