工作报告之嵌入式系统实验报告.docx
《工作报告之嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《工作报告之嵌入式系统实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
工作报告之嵌入式系统实验报告
嵌入式系统实验报告
【篇一:
2014完整arm嵌入式系统实验报告】
郑州航空工业管理学院
嵌入式系统实验报告
(修订版)
20第
赵成,张克新编著
院姓专学
系:
名:
业:
号:
电子通信工程系
2014年3月制
实验一arm体系结构与编程方法
一、实验目的
了解arm9s3c2410a嵌入式微处理器芯片的体系结构,熟悉arm微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握arm指令系统,能在ads1.2ide中进行arm汇编语言程序设计。
二、实验内容
1.ads1.2ide的安装、环境配置及工程项目的建立;2.arm汇编语言程序设计(参考附录a):
(1)两个寄存器值相加;
(2)ldr、str指令操作;
(3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用bx指令切换处理器状态;(6)微处理器工作模式切换;
三、预备知识
了解arm嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。
四、实验设备1.硬件环境配置
计算机:
intel(r)pentium(r)及以上;内存:
1gb及以上;
实验设备:
up-netarm2410-s嵌入式开发平台,j-linkv8仿真器;2.软件环境配置
操作系统:
microsoftwindowsxpprofessionalservicepack2;集成开发环境:
armdevelopersuite(ads)1.2。
五、实验分析
1.安装的ads1.2ide中包括两个软件组件。
在ads1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式
。
2.写出arm汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
;文件名:
3.列写出使用ldr、str指令的汇编程序,并在关键语句后面给出相应的注释。
4.“使用多寄存器传送指令进行数据复制”汇编程序分析。
ldrr0,=srcdata;执行后,r0的值是
ldrr1,=dstdata;执行后,r1的值是ldmiar0,{r2-r9};ldmia中的指令后缀ia表示;stmiar1,{r2-r9};执行后,程序实现的功能是;5.在“使用查表法实现程序跳转”的汇编程序中,指令ldrpc,[pc,r2]采用的是什么寻址方式?
作为基址的寄存器pc的值是多少?
作为指令指针的pc又指向哪条指令?
这个指令与流水线执行的关系是什么?
(选做)
6.通过运行及观察“使用bx指令切换处理器状态”汇编程序实验,回答arm指令与thumb指令之间是如何实现状态切换的?
axddebugger调试环境中的哪个寄存器指示了arm微处理器当前的指令状态?
同时,在程序中添加从thumb指令切换到arm指令的代码。
(选做)
7.观察“微处理器工作模式切换”程序的运行,按顺序写出arm工作模式切换过程中依次出现的工作模式,同时,通过观察回答arm微处理器是否能从用户模式切换到特权模式?
(选做)
六、遇到的问题及解决方法
实验二vmware虚拟机与linux环境的建立
一、实验目的
熟悉嵌入式系统开发环境的建立,掌握vmware-linux环境的安装步骤;能够配置samba服务、设置vmware虚拟机共享功能,学会windows系统环境与linux系统环境共享资源的基本方法。
二、实验内容
1.在windows系统环境中安装vmware7.0虚拟机软件;2.在vmware7.0虚拟机中安装linuxrhelas4操作系统;3.设置vmware虚拟机提供的共享功能;4.在linux系统中建立samba服务;
三、预备知识
了解vmware、virtualbox、virtualpc等虚拟机软件的相关知识;了解linux操作系统的安装方法及基本操作方法。
四、实验设备
1.硬件环境配置
计算机:
intel(r)pentium(r)及以上内存:
1gb及以上
实验设备:
up-netarm2410-s嵌入式开发平台,j-linkv8仿真器2.软件环境配置
操作系统:
microsoftwindowsxpprofessionalservicepack2虚拟机:
vmwareworkstation7
linux系统:
redhatenterpriselinuxas4(2.6.9-5.el)
五、实验分析
1.查看实验设备中配备的pc机,将下列硬件型号填写正确:
?
cpu型号:
?
内存大小:
?
硬盘空间:
根据实验的实际操作,将下列软件版本号填写正确:
?
vmware:
?
linux系统:
?
windows系统:
2.在vmware软件中安装rhel4虚拟机时,出现网络连接方式的设置界面,如下图,提供了四个选项:
桥接(bridgednetworking)、nat(networkaddresstranslation)、host-only及无需连接。
应该选择哪种方式?
并解释其他方式的特点。
图设置网络连接方式
3.根据在linux系统中的实际操作方法,按实验步骤简要说明samba服务的设置与测试过程。
4.参考教材中的实践指导部分,在linux系统环境中安装vmwaretools软件,观察安装过程中的交互提示。
安装成功后,系统给出了什么提示信息?
怎样从vmware的vm菜单中设置windows-linux共享功能?
六、遇到的问题及解决办法
【篇二:
嵌入式系统各实验实验报告】
嵌入式系统设计实验报告
班级:
学号:
姓名:
成绩:
指导教师:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1.实验一
1.1实验名称
博创up-net3000实验台基本结构及使用方法
1.2实验目的
熟悉up-net3000实验平台的核心硬件电路和外设
通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态
1.3实验环境
硬件:
arm嵌入式开发平台、用于arm7tdmi的jtag仿真器、pc机
pentium100以上。
软件:
pc机操作系统windows、ads1.2集成开发环境、仿真器驱动程序、
超级终端通讯程序。
1.4实验内容及要求
一、内容
①嵌入式系统开发流程概述
②熟悉up-net3000实验平台的核心硬件电路和外设
③armjtag的安装与使用
④通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态
二、要求
通过本次课程对各个外设的了解,为今后各个接口实验打下基础。
1.5实验设计与实验步骤
一、jtag的驱动程序的安装:
执行armjtag目录下armjtagsetup.exe程序,选择安装目录,安装jtag软件。
二、通过通讯软件超级终端来检验外设的工作状态:
①运行windows系统下的超级终端(hyperterminal)应用程序,新建一个通信终端。
为所建超级终端取名为arm,可以为其选择第一个图标。
单击“确定”按钮。
②在接下来的对话框中选择arm开发平台实际连接的pc机串口(如com1),按确定按钮后出现属性对话框,设置通信的格式和协议。
波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。
按确定完成设置。
③完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将
当前设置保存为一个特定超级终端到桌面上,以备后用。
用串口线将pc机串口和平台uart0正确连接后,就可以在超级终端上看到程序输出的信息了。
④启动开发板,按住开发板上键盘的任意按键,使开发板进入bios设置状态。
⑤最后分别在按电脑键盘上的相应按键对各个外设的工作状态进行检验。
1.6实验过程与分析
当在电脑键盘上分别按下相应按键时,试验台有相应反应,说明外设工作正常。
1.7实验结果总结
了解了up-net3000实验平台的核心硬件电路和外设,armjtag驱动程序的安装与使用。
最后通过操作系统自带的通讯软件超级终端,检验了各个外设的工作状态正常与否。
1.8心得体会
通过本次实验,我了解了嵌入式系统开发的基本流程,知道了怎样通过操作系统自带的通讯软件超级终端来检验各个外设的工作状态。
第一次实验没有难度,轻松加愉快地完成了,通过了检验,方便了以后实验可以正常进行。
2.实验二
2.1实验名称
ads1.2软件开发环境使用方法
2.2实验目的
①学习串行通讯原理,了解串行通讯控制器。
②掌握arm的uart相关寄存器的功能,熟悉arm系统硬件的uart相关接口。
2.3实验环境
硬件:
arm嵌入式开发平台、用于arm7tdmi的jtag仿真器、pc机pentium100以上。
软件:
pc机操作系统windows、ads1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
2.4实验内容及要求
学习串行通讯原理,了解串行通讯控制器,阅读arm芯片文档,掌握arm的uart相关寄存器的功能,熟悉arm系统硬件的uart相关接口。
编程实现arm和计算机实现串行通讯:
arm监视串行口,将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按pc键盘通过超级终端发送数据,开发板将接收到的数据再返送给pc,在超级终端上显示。
2.5实验设计与实验步骤
①在新建工程时ads创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。
②选中所有目录拖动到任务栏上的ads任务条上,不要松开鼠标当ads窗口恢复后再拖动到工程文件窗口,松开鼠标。
这样ads将以子目录名建立同名文件组并以此对文件分类。
③双击main.c打开该文件。
④利用上个实验中的通讯软件超级终端来将生成的文件放到嵌入式开发平台中。
2.6实验过程与分析
按pc键盘,发现超级终端上显示的与键盘按下的是一致的,说明arm监视串行口,将接收到的字符再发送给串口。
2.7实验结果总结
本实验首先将lcd显示模式转换为文本显示模式,然后在文本模式下清屏命令,最后向液晶屏和向串口输出。
arm监视串行口;将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的);即按pc键盘通过超级终端发送数据,开发板将接收到的数据再返送给pc,在超级终端上显示。
2.8心得体会
通过本次实验,我掌握了串行通讯原理、并且了解了串行通讯控制器、熟悉arm系统硬件的uart相关接口。
明白了ads1.2软件开发环境的使用方法,到目前为止,实验难度不大,蛮开心的。
3.实验三
3.1实验名称
键盘及led实验up-3000实验台基本结构及使用方法
3.2实验目的
①熟悉zlg7289芯片的内部结构
②掌握用zlg7289驱动键盘和led的方法
③掌握arm汇编语言和c语言的编程方法
④编写出一段程序,要求能在led上显示出小键盘上按下的4位数字
3.3实验环境
硬件:
arm嵌入式开发平台、用于arm7tdmi的jtag仿真器、pc机pentium100以上。
软件:
pc机操作系统windows、ads1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
3.4实验内容及要求
内容:
编写出一段程序,通过zlg7289芯片驱动的键盘和8个共阴极led,将在小键盘上按下的4位数字按键值在led上显示出来。
要求:
从右至左循环显示至少四位数字,基本功能实现之后实现从左至右显示数字。
3.5实验设计与实验步骤
①新建工程,将“exp3键盘及led驱动实验”中的文件添加到工程。
②定义键值读取函数。
编写主函数,将按键值在数码管上显示。
③通讯软件超级终端来将生成的文件放到嵌入式开发平台中。
3.6实验过程与分析
以下是核心代码:
delay(5);//延时
writesdio(zlg7289_cmd_data0|0);//数码管以方式0译码,第一个数码管亮
writesdio(key%10);//显示个位
delay
(1);//延时
【篇三:
arm嵌入式系统实验报告】
arm嵌入式系统实验报告
专业班级:
电子信息工程1101班姓名:
学号:
20111186020指导老师:
韩洁
华中科技大学武昌分校
2014年5月21日
第一次实验:
通用i/o口实验
一.实验内容
控制嵌入式试验箱上的led点亮--熄灭,可以结合按键功能来控制流水灯的亮灭方式.
二.实验原理
s3c2410芯片共有117个输入/输出引脚,分属于8个i/o端口均为多功能端口,端口功能可以编程设置。
8个i/o端口是:
端口a(gpa):
有23条输出引脚的端口。
端口b(gpb):
有11条输入/输出引脚的端口。
端口c(gpc):
有16条输入/输出引脚的端口。
端口d(gpd):
有16条输入/输出引脚的端口。
端口e(gpe):
有16条输入/输出引脚的端口。
端口f(gpf):
有8条输入/输出引脚的端口。
端口g(gpg):
有16条输入/输出引脚的端口。
端口h(gph):
有11条输入/输出引脚的端口。
每组端口都可以通过软件配置寄存器来满足不同系统合设计的需要。
在运行主程序之前,必须先对每一个用到的引脚的功能进行设置。
s3c2410芯片与端口相关的寄存器:
(1)端口控制寄存器(gpxcon):
在s3c44b0x芯片中,大部分引脚是使用多路复用的,所以要确定每个引脚的功能。
端口控制寄存器能够定义引脚功能。
(2)端口数据寄存器(gpxdat):
如果端口定义为输出口,那么输出数据可以写入gpxdat中相应的位;如果端口定义为输入口,那么输入数据可以从gpxdat相应的位中读入。
(3)端口上拉寄存器(gpxup):
通过配置端口上拉寄存器,可以使该组端口与上拉电阻连接或断开。
当寄存器中相应位配置为0时,该引脚接上拉寄存器;当寄存器中相应位配置为1时,该引脚不接上拉电阻。
(4)外部中断寄存器(extint):
通过不同的信号方式可以使8个外部中断被请求。
extint寄存器可以根据外部中断的需求,将中断触发信号配置为低电平触发,高电平触发,下降沿触发,上升沿触发和边沿触发几种方式。
三.实验代码及注解
#includedef.h
#includeoption.h
#include2440addr.h
#include2440lib.h
#include2440slib.h
#definergpccon(*(volatileunsigned*)0x56000020)
制寄存器
#definergpcdat(*(volatileunsigned*)0x56000024)
据寄存器
#definergpcup(*(volatileunsigned*)0x56000028)
拉寄存器
#definergpfcon(*(volatileunsigned*)0x56000050)
#definergpfdat(*(volatileunsigned*)0x56000054)
据寄存器
#definergpfup(*(volatileunsigned*)0x56000058)
拉寄存器
voidport_init(void)//端口初始化
{
rgpccon=(rgpccon0x0)|(0x110)|(0x112)|(0x114);
rgpcup=0x7ff;//禁止gpc端口的上拉
rgpfcon|=(0x111);
rgpfup=0x0;//端口接上拉寄存器
}
voiddely(u32tt)//延迟函数
{
u32i;//定义变量i//端口c控//端口c数//端口c上//端口f数//端口f上
for(;tt0;tt--)//
{
for(i=0;i10000;i++){}//
}
}
voidmain()//主函数
{
u8flag=0;//定义变量flog位为0changempllvalue(68,1,1);port_init();//端口初始化uart_select(0);//选择串口0uart_init(0,115200);//配置串口波特率为115200port_init();rgpfdat=0x0;//按键初始化
mmu_disableicache();
mmu_disabledcache();
uart_printf(\nledtestbegin!
\n);//终端打印ledtestbeginwhile
(1)//判断
{
while((rgpfdat0x20)!
=0);//如果有按键按下
flag++;//folg加1
if(flag==1)//判断是否为1
{
uart_printf(slowledbegin!
\n);//打印
dely(50);//延迟
changempllvalue(82,1,3);
dely(50);//延迟
rgpcdat=0xff6f;//使第一个灯亮dely(50);//延迟
rgpcdat=0xffaf;//使第二个灯亮dely(50);//延迟
rgpcdat=0xffcf;//使第三个灯亮dely(50);//延迟
rgpcdat=0x0;//灯全亮
}
changempllvalue(68,1,1);
if(flag==2)//如果等于2
{
uart_printf(fastledbefin!
\n);//dely(50);//延迟
flag=0;//flog=0
changempllvalue(125,1,1);//dely(50);//延迟
rgpcdat=0xffff;//灯全部灭dely(50);//延迟
rgpcdat=0x0;//灯全部亮
}}}
打印