嵌入式系统实验报告_第1页
嵌入式系统实验报告_第2页
嵌入式系统实验报告_第3页
嵌入式系统实验报告_第4页
嵌入式系统实验报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计实验报告班级:0612学号:061208姓名:李晓虹成绩:指导教师:武俊鹏、刘书勇1.实验一1.1 实验名称博创UP-3000实验台基本构造使用办法1.2 实验目的1.熟悉嵌入式系统开发式流程概述。2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARMJTAG的安装与使用。1.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。1.4实验内容及规定1.熟悉嵌入式系统开发式流程概述。2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARMJTAG的安装与使用。1.5实验设计与实验环节新建超级终端选择ARM开发实验台串口。完毕新建超级终端的设立后来,能够选择超级终端文献菜单中的保存,将现在设立保存为一种特定超级终端到桌面上,以备后用。用串口线将PC机串口和平台UART0对的连接后,就能够在超级终端上看到程序输出的信息了。启动开发板,按住任意键,使开发板进入BIOS设立状态。在超级终端的界面上,显示BIOS版本信息,以及对应的测试指令。操作时,要在PC机上输入小写的字母快捷键,进入到对应的功效中去。按照超级终端上的提示信息,进行功效的测试。1.6实验过程与分析本次实验操作起来并不困难,由于本次实验属于验证型实验,按照实验资料所给的提示信息,以上面的环节,即可得到实验的成果。进入到BIOS界面后,按照超级终端上的提示信息来进行功效1.7实验成果总结在实验过程中,我们进行的很顺利,没有碰到什么问题,在超级终端界面,按提示的快捷键来测试对应的功效。如e:测试由ZLG7289驱动的LED显示,共分3步,请看超级终端提示按任意键继续,同时观察LED的变化,最后返回主菜单。b:引导FLASH中的应用程序system.bin。执行该功效将退出BIOS状态,把控制交给应用程序,等。1.8心得体会通过本次实验,我对于实验环境有了初步的理解与认识,对于嵌入式也有了更深一步的认识。同时实验过程中,我学会了第一次接触的超级终端的使用办法,并能够纯熟掌握,懂得其工作的原理。2.实验二2.1 实验名称ADS1.2软件开发环境使用办法2.2 实验目的1.熟悉ADS1.2开发环境,学会ARM仿真器的使用。2.使用ADS编译、下载、调试并跟踪一段已有的程序,理解嵌入式开发的基本思想和过程。2.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。2.4实验内容及规定掌握AXDDebugger的使用办法,学习串行通讯原理,理解串行通讯控制器,阅读ARM芯片文档,掌握ARM的UART有关寄存器的功效,熟悉ARM系统硬件的UART有关接口。编程实现ARM和计算机之间的串行通讯:ARM监视串行口;将接受到的字符再发送给串口(计算机与开发板是通过超级终端通讯的);即按PC键盘通过超级终端发送数据,开发板将接受到的数据再返送给PC,在超级终端上显示。2.5实验设计与实验环节(1)新建工程,选择菜单中的Project

|

Add

Files

把和工程有关的全部文献涉及init和startup

子目录加入到工程中。ADS1.2

不能自动按文献类别对这些文献进行分类,需要的话能够执行菜单Project

|

Create

Group

创立文献组,然后分别将不同类的文献加入到不同的组,以方便管理。(另一种方法是,在新建工程时ADS

创立了和工程同名的目录,在该目录下按类别创立子目录并寄存工程文献。选中全部目录拖动到任务栏上的ADS

任务条上,不要松开鼠标当ADS

窗口恢复后再拖动到工程文献窗口,松开鼠标。这样ADS

将以子目录名建立同名文献组并以此对文献分类。)

(2)双击Main.c

打开该文献,能够看到Main()函数的内容以下所示。

int

main(void)

{

ARMTargetInit();

//开发版初始化

LCD_Init();

LCD_ChangeMode(DspTxtMode);//转换LCD

显示模式为文本显示模式

LCD_Cls();//文本模式下清屏命令

LCD_printf("Hello

world!\n");//向液晶屏输出

Uart_Printf("\nHello

world!\n");//向串口输出

while(1);

}

(3)运用上个实验中的通讯软件超级终端来将生成的文献放到嵌入式开发平台中。(4)重启实验台即可看到LCD上显示的"Hello

world!"2.6实验过程与分析新建工程,然后将所需的工程文献加载打工程目录下,编译生成system.bin文献,将文献导入到实验台中,然后重启实验台,即可得到实验成果。2.7实验成果总结超级终端输出某些相对应的代码的执行成果。熟悉了ADS1.2开发环境以及学会了ARM仿真器的基本使用。使用ADS编译、下载、调试并跟踪一段已有的程序,并大致理解了嵌入式开发的基本思想和过程。心得体会通过本次实验,我对于嵌入式开发的基本思想有了一定的理解,嵌入式开发采用的是交叉编译环境,因此在某些方面会有所限制。对于初学者来说,通过一两次实验成果的演示就能够对实验台有进一步的理解不可能的,因此在后续的实验中,我要好好努力,认真做好课程实验为后续的课程设计实验打下基础。3.实验三3.1 实验名称键盘及LED实验3.2 实验目的1.学习键盘及LED驱动原理。2.掌握ZLG7289芯片串行接口的使用办法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。3.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。3.4实验内容及规定编写出一段程序,规定能在LED上显示出小键盘上按下的4位数字。3.5实验设计与实验环节1.新建工程,将“Exp3键盘及LED驱动实验”中的文献添加到工程。2.定义ZLG7289寄存器(ZLG7289.h)。3.编写ZLG7289驱动函数(ZLG7289.c)。4.定义键盘映射表:(Keyboard16.c)。5.定义键值读取函数。6.编写主函数,将按键值在数码管上显示。3.6实验过程与分析本次实验中,我们根据已有实验,进行调试,查看程序的运行效果。根据效果,我们又回到实验代码中,然后对代码进行进一步的研究,查看每部分功效所对应的代码,通过不停的调试编译,我们最后对该实验用到的代码有了更深的认识。从而能够按照规定,完毕我们自己实验。3.7实验成果总结通过小键盘的按键,键值能够在LED上显示出来。并学习了键盘及LED驱动原理以及掌握了ZLG7289芯片串行接口的使用办法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。3.8心得体会在这次实验中让我对嵌入式的实验箱有了进一步的认识,并且进一步理解的ARM实验的原理和实验状况,能够对源代码进行对的了理解。并且能修改这些源代码能够使其工作在自己的预期的工作状态和输出自己想要的成果4.实验四4.1 实验名称电机转动控制及中断实验4.2 实验目的1.熟悉ARM本身自带的六路即三对PWM,掌握对应寄存器的配备。2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。3.理解直流电机和步进电机的工作原理,学会用软件的办法实现步进电机的脉冲分派,即用软件的办法替代硬件的脉冲分派器。4.理解44B0解决器上中断的应用。5.学习在44B0解决器上中断的应用。6.进一步熟悉平台外围硬件及其驱动程序的编写。4.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。4.4实验内容及规定编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。编程实现ARM的四路I/O通道,实现环形脉冲分派用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。通过键盘控制直流电机与步进电机的切换。设立并启动定时器。设立中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示成果。4.5实验设计与实验环节添加并打开工程。进行直流电机初始化设立和代码编写。进行步进电机初始化设立和代码编写。对Timer3编程,编写定时器中断服务程序,完毕对中断次数的计数。编写LED计数显示函数,使LED能对的计数并显示0-9999。编写中断初始化函数和中断响应函数。终端下载测试。4.6实验过程与分析对直流电机进行编程和测试,掌握转速和旋转方向的设定办法。对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分派用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。掌握中断有关语句的应用,搞清定义的中断向量、中断向量号,编写中断响应函数,并完毕中断响应控制。4.7实验成果总结实现了直流电机与步进电机的基本设立和控制,能够通过键盘控制电机之间的切换。完毕了中断的响应和定时中断。在通过本次实验,我初步理解的实验的目的所在,并且运用所给的源代码能够,调试出所预期的成果,并且能够根据已给的源代码修改得到所需的成果。4.8心得体会通过本次实验,掌握了电机工作原理,理解了中断的意义和实现办法,实现了简朴了中断解决程序,更加理解了中断的意义。5.实验五5.1 实验名称LCD驱动控制实验及触摸屏驱动实验5.2 实验目的1.理解触摸屏的基本概念与原理。2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。5.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。5.4实验内容及规定理解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示屏配合的过程。通过编程实现触摸两点自动在两点间划直线。通过编程实现在触摸屏上动态画出曲线。5.5实验设计与实验环节添加并打开工程。在头文献中定义宏和常量及驱动函数。校准触摸屏坐标,进行坐标转换。实现触屏取点并显示功效。实现两点间自动划线功效。实现触摸屏动态划线功效。5.6实验过程与分析在定义触屏响应功效的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。获取第一种点坐标并储存,获取第二个点坐标并储存,编写划线函数,获得两点间直线上全部点的坐标,并对其变化颜色,显示在LCD上,即完毕划直线功效。将划线函数应用到响应触屏移动消息的函数下,即可对持续获得的触摸坐标进行持续的画短直线,连接成曲线,完毕动态划线功效。5.7实验成果总结理解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功效。5.8心得体会通过本次实验,使我理解了怎么在一块嵌入式实验箱通过编程控制实验箱上得硬件,例如在本次实验中的控制LCD屏幕就是,在屏幕上点击,然后得到在LCD屏上点击的位置。本次实验初步完毕了实验成果。6.实验六6.1 实验名称UCOS-Ⅱ在ARM微解决器上的裁剪6.2 实验目的1.理解UCOS-Ⅱ内核的重要构造。2.掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现办法。3.学习如何根据具体状况对UCOS-Ⅱ操作系统进行裁剪。4.通过对UCOS-Ⅱ配备文献(OS_CFG.H)中有关的配备常量进行设立,实现对UCOS-Ⅱ的裁剪。6.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。6.4实验内容及规定对UCOS-Ⅱ内核进行裁剪并移植到ARM7微解决器上。6.5实验设计与实验环节编辑OS_CFG.H文献。OS_CFG.H文献中的内容可分为两大类:服务功效的配备和数据构造的配备。一.服务功效的配备:根据程序中的实际状况,保存自己要用的系统服务功效,删除自己不需要的服务功效。进行合理配备后,是我们自己系统的目的代码比较紧凑,从而减少了对程序代码存储空间的规定。如果代码存储空间足够大的话,那就将全部系统服务功效全部配备为1。不需要考虑功效裁剪。二.数据构造功效的配备:与任务有关的数据构造1.OS_MAX_TASKS作用:设立顾客程序中能够使用的最多任务数。阐明:该值不能超出62.举例:若程序中用到了三个任务,则该值的最小值2.OS_LOWEST_PRIO作用:设立程序中最低任务的优先级。阐明:设定该值能够节省操作系统使用RAM的空间。任务的最低优先级和最大任务数是没有直接关系的。6.6实验过程与分析按照实验指导书上的环节进行,得到了规定的系统。6.7实验成果总结按照规定进行了裁剪,得到了满足需要又紧凑的应用软件系统。6.8心得体会理解了UCOS-Ⅱ内核的重要构造,掌握了UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现办法,学会了如何根据具体状况对UCOS-Ⅱ操作系统进行裁剪7.实验七7.1 实验名称ucos-II移植实验7.2 实验目的1.理解UCOS-Ⅱ内核的重要构造。2.掌握将UCOS-Ⅱ内核移植到ARM7解决器上的基本办法。7.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。7.4实验内容及规定1.将UCOS-Ⅱ内核进行移植到ARM7微解决器上。2.编写两个简朴任务,在超级终端上观察两个任务的切换。7.5实验设计与实验环节1.该实验的文献分为两类,其一是STARTUP目录下的系统初始化、配备等文献,其二是uCOS-II的全部源码,arch目录下的3个文献是和解决器架构有关的。2.设立os_cpu.h中与解决器和编译器有关的代码3.用C语言编写6个操作系统有关的函数(OS_CPU_C.C)4.用汇编语言编写4个与解决器有关的函数(OS_CPU.ASM)5.编写一种简朴的多任务程序来测试一下移植与否成功。为了使uCOS-II能够正常运行,除了上述必须的移植工作外,硬件初始化和配备文献也是必须的。STARTUP目录下的文献还涉及中断解决,时钟,串口通信等基本功效函数。在文献main.c中给出了应用程序的基本框架,涉及初始化和多任务的创立,启动等。任务创立办法以下:①在程序开头定义任务堆栈,任务函数声明和任务优先级②在main()函数中调用OSStart()函数之前用下列语句创立任务③编写任务函数内容6.编译并下载移植后的uCOS-II全部的源代码都准备好后就能够进行编译了。在ADS环境下需要设立工程的访问途径。从菜单Edit|DebugSettings进入设立对话框,在Target|AccessPaths中选择UserPaths并选上Alwayssearchuserpaths。然后点Add按钮添加途径ucos-ii和arch。这重要是设立编译器解决文献包含时的搜索范畴。按照实验一的办法能够对编译后的代码进行调试或下载到平台的电子硬盘中。这个实验从构造上看和其它的实验没有多大区别,同样生成可执行文献system.bin。能够在平台BIOS中激活电子硬盘,然后把system.bin拷贝进去,重启平台,然后在超级终端上观察成果。7.6实验过程与分析操作系统有关的函数:(1)OSTaskStkInitOSTaskCreate()和OSTaskCreateExt()通过调用OSTaskStkInit()来初始化任务的堆栈构造。因此,堆栈看起来就像刚发生过中断并将全部的寄存器保存到堆栈中的情形同样。图12A-2显示了OSTaskStkInt()放到正被建立的任务堆栈中的东西。这里我们定义了堆栈是从上往下长的。在顾客建立任务的时候,顾客传递任务的地址,pdata指针,任务的堆栈栈顶和任务的优先级给OSTaskCreate()和OSTaskCreateExt()。一旦顾客初始化了堆栈,OSTaskStkInit()就需要返回堆栈指针所指的地址。OSTaskCreate()和OSTaskCreateExt()会获得该地址并将它保存到任务控制块(OS_TCB)中。(2)OSTaskCreateHook当用OSTaskCreate()和OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许顾客或使用移植实例的顾客扩展uCOS-II功效。当uCOS-II设立完了自己的内部构造后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是严禁的。因此顾客应尽量减少该函数中的代码以缩短中断的响应时间。当OSTaskCreateHook()被调用的时候,它会收到指向已建立任务的OS_TCB的指针,这样它就能够访问全部的构造组员了。函数原型:voidOSTaskCreateHook(OS_TCB*ptcb)(3)OSTaskDelHook当任务被删除的时候就会调用OSTaskDelHook()。该函数在把任务从uCOS-II的内部任务链表中解开之前被调用。当OSTaskDelHook()被调用的时候,它会收到指向正被删除任务的OS_TCB的指针,这样它就能够访问全部的构造组员了。OSTaskDelHook()能够来检查TCB扩展与否被建立(一种非空指针)并进行某些去除操作。函数原型:voidOSTaskDelHook(OS_TCB*ptcb)(4)OSTaskSwHook当发生任务切换的时候就会调用OSTaskSwHook()。OSTaskSwHook()能够直接访问OSTCBCur和OSTCBHighRdy,由于它们是全局变量。OSTCBCur指向被切换出去的任务OS_TCB,而OSTCBHighRdy指向新任务OS_TCB。注旨在调用OSTaskSwHook()期间中断始终是被严禁的。因此顾客应尽量减少该函数中的代码以缩短中断的响应时间。函数原型:voidOSTaskSwHook(void)(5)OSTaskStatHookOSTaskStatHook()每秒钟都会被OSTaskStat()调用一次。顾客能够用OSTaskStatHook()来扩展统计功效。例如,顾客能够保持并显示每个任务的执行时间,每个任务所用的CPU份额,以及每个任务执行的频率等。函数原型:voidOSTaskStatHook(void)(6)OSTimeTickHookOSTimeTickHook()在每个时钟节拍都会被OSTaskTick()调用。事实上OSTimeTickHook()是在节拍被uCOS-II真正解决,并告知顾客的移植实例或应用程序之前被调用的。函数原型:voidOSTimeTickHook(void)7.7实验成果总结在超级终端上输出轮流交替runtask1和runtask2,表明系统正在不停交替运行2个任务。7.8心得体会在这个实验中我们初步理解和测试了实验的内容和源代码实验成果基本上符合预期的规定。理解了µC/OS-II内核的重要构造和ARM7解决器构造,掌握了将µC/OS-II内核移植到ARM7解决器上的基本原理与嵌入式编程实现办法。8.实验八8.1 实验名称各接口模块互相衔接综合实验8.2实验目的运用前7次实验所学的知识,综合设计一种最少含有5个模块的实验。8.3 实验环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。软件:PC机操作系统win98、Win或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。8.4实验内容及规定回想串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制接口模块驱动设计及开发办法。综合应用以上全部或者部分模块,实现一种嵌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论