南京理工大学嵌入式系统实验报告.docx

上传人:b****6 文档编号:6865492 上传时间:2023-01-11 格式:DOCX 页数:12 大小:1.85MB
下载 相关 举报
南京理工大学嵌入式系统实验报告.docx_第1页
第1页 / 共12页
南京理工大学嵌入式系统实验报告.docx_第2页
第2页 / 共12页
南京理工大学嵌入式系统实验报告.docx_第3页
第3页 / 共12页
南京理工大学嵌入式系统实验报告.docx_第4页
第4页 / 共12页
南京理工大学嵌入式系统实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

南京理工大学嵌入式系统实验报告.docx

《南京理工大学嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《南京理工大学嵌入式系统实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

南京理工大学嵌入式系统实验报告.docx

南京理工大学嵌入式系统实验报告

 

嵌入式系统实验报告

 

指导老师:

孙瑜

时间:

2014年11月

 

实验一虚拟机下Linux程序编写和交叉编译

一、实验目的

熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用,使用Linux的armv4l-unknown–linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。

二、实验内容

本次实验使用RedhatLinux9.0操作系统环境,安装ARM-Linux的开发库及编译器。

创建一个新目录,并在其中编写hello.c文件。

学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。

下载已经编译好的文件到目标开发板上运行。

三、预备知识

C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。

四、实验设备及工具(包括软件调试工具)

硬件:

UP-NETARM2410-S嵌入式实验平台、PC机。

软件:

PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境

五、实验步骤

内容一虚拟机下Linux程序编写

1、实验步骤

(1)建立hello文件夹;

(2)用Vi编写hello程序;

(3)编译、输入gcchello.c–ohello;

(4)运行hello文件夹下的hello程序,运行,输入./hello

(5)查看运行结果。

2、得到的运行结果如图1所示。

图1运行结果

内容二交叉编译

1、实验步骤

(1)进入hello文件夹;

(2)交叉编译armv4l-unknown-linux-gcchelo.c–ohello;

(3)CPhello/arm2410s;

(4)设IP:

ifconfigetho192.168.0.121,登入arm开发板:

telnet192.168.0.115,输入root;

(5)挂载:

mount–onolock192.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之后,telnet192.168.0.115,输入root;

3.mount–onolock192.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机操作系统REDHATLINUX9.0+DNW+ARM-LINUX开发环境。

五、实验步骤

1、阅读理解源码

进入exp\basic\03_tty目录,使用vi编辑器或其他编辑器阅读理解源代码。

2、编译应用程序

运行make产生term可执行文件

[root@zxtroot]#cd/arm2410s/exp/basic/03_tty/

[root@zxt03_tty]#make

armv4l-unknown-linux-gcc-c-oterm.oterm.c

armv4l-unknown-linux-gcc-o../bin/termterm.o-lpthread

armv4l-unknown-linux-gcc-otermterm.o-lpthread

[root@zxt03_tty]#ls

MakefileMakefile.baktermterm.cterm.otty.c

3、下载调试

切换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录。

进入exp\basic\03_tty目录,运行term,观察运行结果的正确性。

[/mnt/yaffs]cd/dev

[/dev]ln–sf/dev/tts/0ttyS0

[/dev]cd/mnt/yaffs

[/mnt/yaffs]mount-tnfs-onolock192.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机Pentium500以上,硬盘10G以上。

软件:

PC机操作系统REDHATLINUX9.0+DNW+ARM-LINUX开发环境

五、实验步骤

1、阅读理解源码

进入/arm2410s/exp/basic/04_ad目录,使用vi编辑器或其他编辑器阅读理解源代码。

2、编译应用程序

运行make产生ad可执行文件

[root@zxt/]#cd/arm2410s/exp/basic/04_ad/

[root@zxt04_ad]#make

armv4l-unknown-linux-gcc-c-omain.omain.c

armv4l-unknown-linux-gcc-o../bin/admain.o-lpthread

armv4l-unknown-linux-gcc-oadmain.o-lpthread

[root@zxt04_ad]#ls

adhardware.hmain.oMakefile.baks3c2410-adc.hbinmain.cMakefilereadme.txtsrc

3、下载调试

换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录。

[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:

/arm2410s/host

[/mnt/yaffs]cdad

[/mnt/yaffs/ad]insmods3c2410-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.掌握MAX504D/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机操作系统REDHATLINUX9.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@zxt05_da]#make

armv4l-unknown-linux-gcc-c-oda_main.oda_main.c

armv4l-unknown-linux-gccda_main.o-oda_main

[root@zxt05_da]#ls

da_mainda_main.cda_main.odocdriversMakefiles3c44b0-spi.h

3.下载调试

切换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录,然后进入

/host/exp/05_da/drivers目录,用insmodexio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。

[/mnt/yaffs]cd/host/exp/basic/05_da/

[/host/exp/basic/05_da]cddrivers/

[/host/exp/basic/05_da/drivers]insmodexio.o

Usingexio.o

[/host/exp/basic/05_da/drivers]lsmod

ModuleSizeUsedbyNottainted

exio23840(unused)

i2c-tops2141040(unused)

进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果的正确性。

[/host/exp/basic/05_da]./da_main11

六、实验结果

运行结果如图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的特点。

答:

特点:

它的分辨率是10Bits,建立时间为16us,工作电压:

-5.5V-5.5V,电压不随温度变化,可变的输出范围:

0V~VDD,VSS~VDD,上电复位,串行输出。

实验总结

通过这次嵌入式的实验,我对嵌入式有了入门式的了解,首先在第一个实验的时候,由于是基础实验,所以刚开始只是做了一个仿真练习,但是在接下来,就让我们比较了在与arm板连接后显示的hello与软件仿真之间的不同。

另外,这几次的实验让我对交叉编译有了很深的了解,交叉编译就是在宿主机上编译能在目标板上运行的程序,之所以用交叉编译,就是因为很多目标机的功能不是很强大,例如没有足够的内存,CPU也不行。

所以,交叉编译可以帮助克服这些缺点。

虽然嵌入式系统这门课是选修课,但是这门课也让我学会很多东西。

对于以后的学习也会有很多帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1