嵌入式实验报告.docx
《嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
![嵌入式实验报告.docx](https://file1.bdocx.com/fileroot1/2022-10/28/a5584450-7ad9-4593-b182-be4d138b7c1c/a5584450-7ad9-4593-b182-be4d138b7c1c1.gif)
嵌入式实验报告
武汉大学计算机学院实验报告
课程名称:
《嵌入式系统设计课间实验》
学生姓名:
学号:
年级:
2010级专业:
物联网工程
指导教师:
实验成绩:
2012年6月5日
实验一:
嵌入式开发环境试验(2012年3月23日)
一、实验目的
熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。
使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。
二、实验内容
1、在linux系统下,利用C语言来编写应用程序,并进行交叉编译,生成可在目标实验台上运行的目标文件。
2、建立宿主机与目标实验台仿真终端连接,为目标实验台建立Linux系统终端窗口。
3、建立宿主机与目标实验台的共享连接,以便下载和运行最终可执行文件。
三、预备知识
C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。
四、实验设备及工具
硬件:
UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。
软件:
PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境。
五、主要实验步骤:
1、打开PC宿主机电源,选择进入Linux系统。
在PC宿主机的/arm2410s/exp/Basic目录中创建用户个人工作目录,例如“FK”。
2、单击鼠标右键选择“新建终端”,建立宿主机Linux命令终端窗口,在[root@localhostroot]#命令提示符下进入个人工作目录“FK”中。
即:
[root@localhostroot]#cd/arm2410s/exp/basic/cw
3、利用“vi”编辑hello应用程序,并保存为hello.c文件。
即:
#cd/arm2401s/exp/Basic/FK
#vihello.c
进入vi编辑窗口,编辑hello.c文件……
4、利用“gcc–o”命令对hello.c文件进行编译,生成可在PC宿主机上执行的目标文件hello.pc。
即:
#gcc–ohello.pchello.c,
为了验证结果正确性,可在PC宿主机上执行hello.pc文件。
即:
#./hello.pc
5、为了在实验台上下载运行hello文件,需要对hello源文件进行交叉编译,以便生成能够在实验台上运行的目标文件。
利用“armv4l-unknown–Linux-gcc–o命令”进行交叉编译,生存目标文件hello.o。
即:
#armv4l-unknown-Linux-gcc-ohello.ohello.c
(注意:
这里的“armv4l-unknown–Linux-gcc–o”交叉编译命令输入方法是使用键盘输入armv41后,按“TAB”键来自动输入,“armv41”最后字符为小写英文字母“l”。
)
6、利用“ifconfig”命令检查PC宿主机“网卡1”的IP地址,以保证与实验台处在同一个网段内(本实验台“网卡1”的IP地址已设置为:
“192.168.0.115”;PC宿主机“网卡1”的IP地址已设为:
“192.168.0.11”,也可以重新修改设置)。
即:
#ifconfig(查看PC宿主机“网卡1”的IP地址)
若需修改:
则:
#ifconfigeth0[具体IP地址](重新设置PC宿主机“网卡1”的IP地址)
7、在宿主机上,单击鼠标右键重新再创建一个Linux命令终端窗口,通过“Minicom”和“Mount”命令为PC宿主机与实验台之间建立仿真终端连接和数据共享连接。
(1)建立PC宿主机与实验台的仿真终端连接。
打开实验台电源开关,在宿主机新建的命令终端窗口下输入minicom命令,以建立仿真终端连接。
即:
#minicom
(注意:
键入minicom命令后,一定要再按下实验台的“Rest”复位按钮,再按屏幕提示按下键盘“Enter”键,以使宿主机上的键盘生效。
正常连接后,命令提示符为“[/mnt/yaffs]”,表示仿真连接成功。
)
注意:
开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。
这样可以反复修改、编译、调试,不需要下载到开发板。
(2)建立PC宿主机与实验台的数据共享连接(下载通道)。
若要在实验台(目标机)上运行编译后的实验文件hello,则实验台必须与宿主机建立共享目录连接。
本实验系统已设置好宿主机NFS服务器的共享目录为“/Arm2410s”,要建立的共享连接就是把宿主机上NFS服务器的共享目录“/Arm2410s”加载到实验台的“/host”目录上。
利用“Mount”命令来实现。
即:
[/mut/yatts]Mount–tnfs192.168.0.11:
/arm2410s/host。
(即在实验台上建立了一个“/host”目录,并共享连接到PC宿主机的“/arm2410s”目录上。
(3)在目标实验台上下载运行最终可执行的程序hello.o,观察实验结果。
即:
[/mut/yaffs]cd/host/exp/basic/cao
[/host/exp/basic/cw]./hello.o,
(显示正常的运行结果)
六、试验结果
PC机屏幕上显示“hello……”。
实验二:
串行端口程序设计实验(2012年3月30日)
一、实验目的
1、了解在linux环境下串行程序设计的基本方法。
2、掌握终端的主要属性及设置方法,熟悉终端I/O函数的使用。
3、学习使用多线程来完成串口的收发处理。
二、实验内容
读懂程序源代码,学习终端I/O函数的使用方法,学习将多线程编程应用到串口的接收和发送程序设计中。
三、预备知识
1、有C语言基础。
2、掌握在Linux下常用编辑器的使用。
3、掌握Makefile的编写和使用。
4、掌握Linux下的程序编译与交叉编译过程
四、实验设备及工具
硬件:
UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。
软件:
PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境。
五、实验原理
异步串行I/O方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。
数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。
接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。
为了恢复发送的信息,双方必须协调工作。
在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。
但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。
图2.3.1串行通信字符格式
图2.3.1给出异步串行通信中一个字符的传送格式。
开始前,线路处于空闲状态,送出连续“1”。
传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。
每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。
后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。
也可以约定不要奇偶校验,这样就取消奇偶校验位。
最后是表示停止位的“1”信号,这个停止位可以约定持续1位、1.5位或2位的时间宽度。
至此一个字符传送完毕,线路又进入空闲,持续为“1”。
经过一段随机的时间后,下一个字符开始传送才又发出起始位。
每一个数据位的宽度等于传送波特率的倒数。
微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600等。
接收方按约定的格式接收数据,并进行检查,可以查出以下三种错误:
●奇偶错:
在约定奇偶检查的情况下,接收到的字符奇偶状态和约定不符。
●帧格式错:
一个字符从起始位到停止位的总位数不对。
●溢出错:
若先接收的字符尚未被微机读取,后面的字符又传送过来,则产生溢出错。
每一种错误都会给出相应的出错信息,提示用户处理。
一般串口调试都使用空的MODEM连接电缆,其连接方式如下:
图2.3.2实用RS-232C通讯连线
六、实验要求
原实验现象:
“ABCDEF.......abcdef.......12345.......”
更改为:
七、实验步骤
1、阅读理解源码
进入exp\basic\03_tty目录,复制到自己的工作目录之下,并使用vi编辑器或其他编辑器阅读理解源代码。
2、编译应用程序
运行make产生term可执行文件
[root@zxtroot]#cd/arm2410s/exp/basic/FK/
[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,观察运行结果的正确性。
[root@zxtroot]#minicom
[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:
/arm2410s/host
[/mnt/yaffs]cd/host/exp/basic/FK/
[/host/exp/basic/03_tty]./term
readmodem
senddata
123456789:
;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWX
3、修改程序代码段如下:
void*send(void*data)
{
intc=0;
printf("senddata\n");
while(STOP==FALSE)/*modeminputhandler*/
{
If(c%10==0)
write(fd,\r\n\t,3);/*stdout*/
else
write(fd,’*’,1);/*stdout*/
c++;
usleep(100000);
}
returnNULL;}
4.编译修改后的程序,下载调试,实验结果如下:
实验三:
A/D接口实验(2012年4月6日)
一、实验目的
了解在linux环境下对S3C2410芯片的8通道10位A/D的操作与控制。
二、实验内容
学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。
阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。
利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。
三、预备知识
1、有C语言基础。
2、掌握在Linux下常用编辑器的使用。
3、掌握Makefile的编写和使用。
4、掌握Linux下的程序编译与交叉编译过程。
四、实验设备及工具
硬件:
UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。