您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 嵌入式实验报告周忆莲
嵌入式系统实验报告姓名:周忆莲学号:2013180519专业:计算机科学与技术年级:2013级教师:杨进宝老师湖南师范大学工程与设计学院实验报告实验课程:嵌入式系统实验实验题目:实验一、ADS1.2集成开发环境练习实验日期:2016年6月30日实验目的了解ADS1.2集成开发环境的使用方法。实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统ADS1.2集成开发环境实验内容建立一个新的工程;建立一个汇编源文件,并添加到工程中;设置文本编辑器支持中文;设置编译链接控制选项;编译链接工程;调试工程。实验步骤(1)在D:\新建一个目录,目录名为experiment。(2)启动ADS1.2IDE集成开发环境,选择【File】-【New…】,使用ARMExecutableImage工程模板建立一个工程,名称为ADS,目录为D:\experiment。(3)选择【File】-【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。(4)选择【Edit】-【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。(5)选择【Edit】-【DebugRelSettings…】,在DebugRelSettings对话框的左边选择ARMLinker项,设置链接地址。(6)选择【Project】-【Make】,或者按下快捷键F7,将编译链接整个工程。(7)选择【Project】-【Debug】,或者按下快捷键F5。IDE环境就会启动AXD调试软件,接着可以执行单步、全速运行调试。实验程序清单AREAExample1,CODE,READONLY;声明代码段Example1ENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOVR0,#15;设置参数MOVR1,#8ADDSR0,R0,R1;R0=R0+R1BSTARTEND实验总结本次实验是了解ADS1.2集成开发环境的使用方法,学会了如何建立工程以及进行调式。对编写程序的调试,直接点击工程窗口的“Make”图标按钮,即可完成编译连接。若编译出错,会有相应出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码行。通过这次实验我接触到了工程模板。在这次实验中,我觉得收获还是挺大的,第一次熟悉了ADS的集成开发环境,对嵌入式程序的编译连接有了较为清晰的概念。湖南师范大学工程与设计学院实验报告实验课程:嵌入式系统实验实验题目:实验二、ARM处理器工作模式实验实验日期:2016年6月30日实验目的掌握如何使用MRS/MSR指令实现ARM处理器工作模式的切换;了解在各个工作模式下的寄存器。实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统ADS1.2集成开发环境实验内容使用MRS/MSR指令切换工作模式,并初始化各种模式下堆栈指针;观察ARM处理器在各种模式下寄存器的区别。实验步骤(1)启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程MODE。(2)建立汇编源文件TEST5.S,编写实验程序,然后添加到工程中。(2)设置工程链接地址ROBase为0x40000000,RWBase为0x40003000。设置调试入口地址Imageentrypoint为0x40000000。(3)编译链接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试。(4)打开寄存器窗口(ProcessorRegisters),选择Current项监视各寄存器的值。(6)单步运行程序,注意观察CPSR、SPSR、R13(SP)、R14(LR)、R15(PC)寄存器。实验程序清单;定义堆栈的大小USR_STACK_LEGTHEQU64SVC_STACK_LEGTHEQU0FIQ_STACK_LEGTHEQU16IRQ_STACK_LEGTHEQU64ABT_STACK_LEGTHEQU0UND_STACK_LEGTHEQU0AREAExample5,CODE,READONLY;声明代码段Example5ENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOVR0,#0MOVR1,#1MOVR2,#2MOVR3,#3MOVR4,#4MOVR5,#5MOVR6,#6MOVR7,#7MOVR8,#8MOVR9,#9MOVR10,#10MOVR11,#11MOVR12,#12BLInitStack;初始化各模式下的堆栈指针;打开IRQ中断(将CPSR寄存器的I位清零)MRSR0,CPSR;R0=CPSRBICR0,R0,#0x80MSRCPSR_cxsf,R0;CPSR=R0;切换到用户模式MSRCPSR_c,#0xd0MRSR0,CPSR;切换到管理模式MSRCPSR_c,#0xdfMRSR0,CPSRHALTBHALT;名称:InitStack;功能:堆栈初始化,即初始化各模式下的堆栈指针。;入口参数:无;出口参数:无;说明:在特权模式下调用此子程序,比如复位后的管理模式InitStackMOVR0,LR;R0=LR,因为各种模式下R0是相同的;设置管理模式堆栈MSRCPSR_c,#0xd3LDRSP,StackSvc;设置中断模式堆栈MSRCPSR_c,#0xd2LDRSP,StackIrq;设置快速中断模式堆栈MSRCPSR_c,#0xd1LDRSP,StackFiq;设置中止模式堆栈MSRCPSR_c,#0xd7LDRSP,StackAbt;设置未定义模式堆栈MSRCPSR_c,#0xdbLDRSP,StackUnd;设置系统模式堆栈MSRCPSR_c,#0xdfLDRSP,StackUsrMOVPC,R0StackUsrDCDUsrStackSpace+(USR_STACK_LEGTH-1)*4StackSvcDCDSvcStackSpace+(SVC_STACK_LEGTH-1)*4StackIrqDCDIrqStackSpace+(IRQ_STACK_LEGTH-1)*4StackFiqDCDFiqStackSpace+(FIQ_STACK_LEGTH-1)*4StackAbtDCDAbtStackSpace+(ABT_STACK_LEGTH-1)*4StackUndDCDUndtStackSpace+(UND_STACK_LEGTH-1)*4;分配堆栈空间AREAMyStacks,DATA,NOINIT,ALIGN=2UsrStackSpaceSPACEUSR_STACK_LEGTH*4;用户(系统)模式堆栈空间SvcStackSpaceSPACESVC_STACK_LEGTH*4;管理模式堆栈空间IrqStackSpaceSPACEIRQ_STACK_LEGTH*4;中断模式堆栈空间FiqStackSpaceSPACEFIQ_STACK_LEGTH*4;快速中断模式堆栈空间AbtStackSpaceSPACEABT_STACK_LEGTH*4;中止义模式堆栈空间UndtStackSpaceSPACEUND_STACK_LEGTH*4;未定义模式堆栈END实验总结本次实验是使用MRS/MSR指令来实现ARM处理器工作模式的切换,目的是通过实验了解在各个工作模式下的寄存器,在实验中必须注意的是初始化各种模式下的堆栈指针,ARM处理器在各种模式下寄存器都是有区别的,在软件控制下可以改变模式。通过本次实验,我回顾并加深理解了理论课上已经学过的处理器的7种模式,大多数应用程序运行在用户模式下,当处于用户模式时,系统资源是不能被访问的,系统模式使用与用户模式相同的寄存器,但它是特权模式,可以访问系统资源。本次实验,让我受益匪浅,同时也认识到这门课程在生活中的应用是那么的广泛。湖南师范大学工程与设计学院实验报告实验课程:嵌入式系统实验实验题目:实验三、GPIO输出控制实验实验日期:2016年6月30日实验目的掌握DeviceARM2410专用工程模板的使用;掌握EasyJTAG-H仿真器的安装和使用;能够在MagicARM2410实验箱上运行第一个程序(无操作系统);熟悉S3C2410A处理器的I/O配置方法及GPIO输出控制。实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统ADS1.2集成开发环境实验内容控制MagicARM2410实验箱上的LED1~LED4显示及蜂鸣器报警。先使用片外SDRAM进行调试,调试通过后将程序固化到片外NORFLASH中,脱机运行程序。实验步骤调试程序(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略)。(3)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程LEDCON。(4)在工程src组中的main.c中编写实验代码。(5)选用DebugRel生成目标,然后编译链接工程。(6)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。(7)选择【Project】-【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考…实验指导第2章的内容)。-(8)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。(9)单步运行程序,或者全速运行程序,判断蜂鸣器及LED1~LED4的控制是否正确。固化程序(10)仿真调试通过后,关闭AXD。在ADS1.2集成开发环境中选用Release生成目标,并设置生成LEDCON.hex文件(或者LEDCON.bin文件),然后编译链接工程。(11)将启动方式选择跳线JP8断开,然后按RST键复位系统。(12)使用FlashProgrammer软件将LEDCON.hex烧写到片外NORFLASH,或者使用WR_NORFlash工程将LEDCON.bin烧写到片外NORFLASH。(13)将EasyJTAG-H仿真器拔出,断开与MagicARM2410实验箱的连接,然后给MagicARM2410实验箱下电,然后再重新上电,观察程序是否能脱机运行。实验程序清单实验总结本次实验是控制MagicARM2410实验箱上的LED1~LED4显示及蜂鸣器报警。先使用片外SDRAM进行调试,调试通过后将程序固化到片外NORFLASH中,脱机运行程序。通过实验,我对其实验程序如何实验其功能有了一定的认识,并能对其某一句程序作相应的修改,使其实现我们所需的功能。通过此实验,我也初步了解了GPIO各寄存器的功能与应用。我觉得实验过程中一定要将细节弄清楚,弄明白,实验后还要思考总结,这样印象才深刻。湖南师范大学工程与设计学院实验报告实验课程:嵌入式系统实验实验题目:实验四、外部中断实验实验日期:2016年6月30日实验目的掌握S3C2410A处理器外部中断的引脚功能设置掌握中断初始化以及中断服务函数的编写实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统ADS1.2集成开发环境实验内容设置GPF4引脚为外部中断EINT4功能,下降沿触发模式。初始化S3C2410A中断控制器,设置EINT4为IRQ中断,并使能中断允许。初始化完成后,等待外部中断产生。中断服务程序里负责把LED1控制口输出信号取反,清除中断标志后退出中断实验步骤(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一
本文标题:嵌入式实验报告周忆莲
链接地址:https://www.777doc.com/doc-2440266 .html