《中南大学单片机实验报告中南大学嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学单片机实验报告中南大学嵌入式系统实验报告.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验报告课程名称:嵌入式系统开发姓 名:任课教师:学 院:信息科学及工程学院专业班级:物联网工程2016年12月目录实验一 ARM汇编指令11.实验目的12.实验设备13.实验内容11)实验A-完成运算x+y,把结果存入堆栈寄存器(R13)中12)实验A运行截图13)实验B-完成运算8x+y/2 orr 0x01+ (z and 0xFF+y/2)/2,将结果保存在R2中64)实验B运行截图6实验二 ARM处理器工作模式131 实验目的132 实验设备133实验内容134 实验截图141)进入系统模式172)初始化系统模式下的R0-R14寄存器183)切换到FIQ模式194)初始化FIQ模式下
2、特有的寄存器R8-R14195)切换到中止模式207)切换到管理模式228)初始化管理模式下特有的寄存器R13-R14229)切换到IRQ模式2310)初始化IRQ模式下的R13-R142311)J进入未定义模式2412)初始化未定义模式下的寄存器R13-R14245 实验心得25实验三 C语言程序(一)261 实验目的262 实验设备263 实验内容264 实验截图26实验四 C语言程序实验(二)351 实验目的352 实验设备353 实验内容354 实验截图355 实验心得45实验五 汇编和C语言的相互调用实验461 实验目的462 实验设备463 实验内容464 实验截图465 实验心得
3、56实验六 综合编程实验571 实验目的572 实验设备573 实验内容574 实验截图575 实验心得66实验一 ARM汇编指令1.实验目的(1)初步学会使用集成开发环境及ARM软件模拟器;(2)通过实验掌握简单ARM汇编指令的使用2.实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows98/2000/NT/XP3.实验内容(1)熟悉ADS开发环境,并使用LDR/STR和MOV等指令访问寄存器或存储单元;(2)使用ADD/SUB/LSL/LSR/AND/ORR/等指令完成基本数学逻辑运算。1)实验A-完成运算x+y,把结果存入堆栈寄存器(R13)中在该实验中主要是通过MOV/S
4、TR/LDR/ADD等指令来完成基本的加操作运算。2)实验A运行截图3)实验B-完成运算8x+y/2 orr 0x01+ (z and 0xFF+y/2)/2,将结果保存在R2中通过使用MOV/STR/LDR/ORR/LSR/ADD等指令完成简单的加操作运算。4)实验B运行截图实验二 ARM处理器工作模式1 实验目的通过该实验掌握使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。2 实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows 98/2000/NT/XP3实验内容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下
5、寄存器的区别;掌握ARM不同模式的进入及退出。该实验通过使用MSR/MRS等指令实现依次从System模式(sys)FIQ模式(fiq)中止模式(abt)管理模式(suv)IRQ模式(irq),最后到未定义模式(und)之间的切换。4 实验截图1)进入系统模式2)初始化系统模式下的R0-R14寄存器3)切换到FIQ模式4)初始化FIQ模式下特有的寄存器R8-R145)切换到中止模式6)初始化中止模式下特有的寄存器R13-R147)切换到管理模式8)初始化管理模式下特有的寄存器R13-R149)切换到IRQ模式10)初始化IRQ模式下的R13-R1411)J进入未定义模式12)初始化未定义模式下
6、的寄存器R13-R145 实验心得试验中个模式的切换方法:1)利用MRS命令将状态寄存器(CPSR)里的内容存储到R0中;2)利用BIC命令和ORR命令修改R0中【7:0】位,其中为【4:0】位模式的二进制代码,位【7:5】位I、F、T位。3)利用MSR命令将修改后的R0里的内容拷贝到CPSR寄存器中实现模式的自动切换。4)I、F、T位对应解释如下:中断禁止位I、F: I=1 禁止IRQ中断; I0 允许IRQ中断 F=1 禁止FIQ中断; F0 允许FIQ中断T标志位:该位反映处理器的运行状态 T=1时,程序运行于Thumb状态 T=0时,程序运行于ARM状态5)处理器模式二进制代码如下:实
7、验三 C语言程序(一)1 实验目的(1)学会使用编写简单的C语言程序并进行调试;(2)学会编写和使用命令脚本文件;(3)掌握通过Memory/Registers/Watch/Variables窗口分析判断运行结果。2 实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows98/2000/NT/XP3 实验内容使用C语言完成延时函数。该实验用C语言编写程序,通过调用delay(i)函数实现延时功能。4 实验截图实验四 C语言程序实验(二)1 实验目的(1)掌握建立基本完善的ARM工程,包含启动代码等;(2)了解ARM7启动过程,学会使用编写简单的C语言程序和汇编启动代码病进行调试;(
8、3)掌握如何制定代码入口地址及入口点;(4)掌握通过Memory/Regesters/Watch/Variables窗口分析判断结果。2 实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows98/2000/NT/XP3 实验内容用C语言编写延时函数,同时在C语言中嵌入汇编语言程序。通过该试验学会在C语言中嵌入汇编,同时初步了解在汇编程序中如何调用C程序函数。本实验是通过函数调用实现简单的函数延时功能。4 实验截图5 实验心得(1)整个程序的入口点位Reset入口,所以在编写程序时,第一条语句是在Reset异常的起始地址0x000000000处开始执行的。(2)在Reset模式下,
9、首先要初始化堆栈指针(SP)。(3)汇编函数调用C函数的方法:使用IMPORT操作声明需要调用的函数名,该声明的意义在于声明该符号(函数名)是在其他源文件中定义的。把函数的入口地址加载到寄存器R0中保存当前状态下的指针寄存器(PC)的值使用带状态跳转指令BX R0跳转到对应的函数入口处执行。实验五 汇编和C语言的相互调用实验1 实验目的(1)阅读S3C44B0X启动代码,观察处理器启动过程;(2)学会使用ADS辅助信息窗口来分析判断调试过程和结果;(3)学会在ADS环境中编写、编译及调试汇编和C语言相互调用的程序。2 实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows98/20
10、00/NT/XP3 实验内容使用汇编语言完成一个随机数产生函数,通过C语言调用该函数,产生一系列随机函数,存放到数组中。4 实验截图5 实验心得(1)汇编函数调用C函数的方法:见实验四 实验心得(2)C函数调用汇编函数的方法:在汇编函数中使用EXPORT伪操作声明源文件的符号(函数名)可以被其他源文件引用,之后紧接着以该符号为标号的汇编函数的定义。在C程序中直接调用该函数,注意函数名必须为1中所声明的符号(函数名)。实验六 综合编程实验1 实验目的(1)掌握处理器启动配置过程;(2)掌握使用ADS辅助信息窗口来分析判断调试过程和结果,学会查找软件调试时的故障和错误;(3)掌握使用ADS开发工具
11、进行软件开发及调试的常用技巧。2 实验设备(1)硬件:PC机(2)软件:集成开发环境,Windows98/2000/NT/XP3 实验内容完成一个完整的工程要求包含启动代码、汇编函数和文件,而且C文件包含ARM函数和Thumb函数,并可以相互调用。4 实验截图5 实验心得(1)汇编函数调用C函数另外一种方法:在汇编函数中使用IMPORT伪操作声明需要调用的函数名;使用 BL+函数名 直接跳转到对应的函数入口点执行代码。(2)ARM程序跳转到Thumb程序的方法:使用ADR伪操作将(Thumb程序的入口地址+1)拷贝到寄存器R0中。使用BX R0实现ARM程序到Thumb指令的跳转。(3)使用EXPORT声明的符号(变量)位全局符号,在汇编和C程序中均可使用。