- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式微处理器编程基础实验指导书
嵌入式微处理器编程基础 实验指导书 电子科技大学嵌入式软件工程中心 1.ARM指令实验 2 1.1 ARM汇编指令实验 2 1.1.1实验目的 2 1.1.2实验设备 3 1.1.3实验内容 3 1.1.4 实验原理 3 1.1.5 实验程序 4 1.2 Thumb汇编指令实验 5 1.2.1实验目的 5 1.2.2实验设备 5 1.2.3实验内容 5 1.2.4 实验原理 6 1.2.5 实验程序 6 1.3 ARM处理器工作模式实验 7 1.3.1实验目的 7 1.3.2实验设备 7 1.3.3实验内容 7 1.3.4 实验原理 8 1.3.5 实验程序 9 2.接口基本实验 9 2.1存储器实验 9 2.1.1 实验目的 9 2.1.2 实验设备 9 2.1.3 实验内容 9 2.2 I/O接口实验 10 2.2.1 实验目的 10 2.2.2 实验设备 10 2.2.3 实验内容 10 2.3中断实验 10 2.3.1 实验目的 10 2.3.2 实验设备 10 2.3.3 实验内容 10 1.ARM指令实验 1.1 ARM汇编指令实验 1.1.1实验目的 熟悉使用Lambda IDE开发环境,初步学会搭建嵌入式开发环境。 通过实验掌握简单的ARM汇编指令的使用方法。 1.1.2实验设备 硬件:PC机,华邦W90P710开发板套件。 软件:Lambda IDE集成开发环境,Windows 2000/NT/XP。 1.1.3实验内容 熟悉开发环境,并使用LDR/STR和MOV指令等访问寄存器或存储单元。 使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。 1.1.4 实验原理 ARM指令集是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单。RICS指令集的一个显著特点为:访问存储器只能通过Load/Store两种指令完成。其它指令只能对寄存器和立即数操作。ARM提供了LDR/STR两条指令实现了访存操作,同时,为了提高访存速度,还提供了LDM/STM用于批量访存。 ARM处理器共有37个寄存器。其中包括31个通用寄存器和6个状态寄存器。对应于ARM的7种不同处理器模式,每一种模式下都有一组相应的寄存器组。在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及程序计数器(PC)。寄存器与处理器模式的对应关系如图1-1所示: 图1-1 ARM处理器模式与寄存器的关系 以上的寄存器按功能可以分了两类:通用寄存器和状态寄存器。其中通用寄存器中的R13、R14和R15按管理分别被用作堆栈指针寄存器(SP)、返回地址寄存器(SP)和程序寄存器(PC)。状态寄存器只有两种:CPSR和SPSR。 通用寄存器 通用寄存器包括R0~R15,可以分为三类: 未分组寄存器R0~R7,它们在每个模式下都对应同一个物理寄存器。 分组寄存器R8~R14,又称影子寄存器,不同模式下的寄存器对应的物理寄存器不同。 程序计数器PC(R15) 。 程序状态寄存器 关于程序状态寄存器的介绍,详见1.3.4节 1.1.5 实验参考程序 .equ a, 12 /*定义变量a ,并赋值12 */ .equ b, 3 /*定义变量b,并赋值3 */ .equ c, 7 /*定义变量c,并赋值87 */ .equ stack_top,0x1000 /*定义堆栈栈顶为0x1000 */ .global _start .text _start /*程序入口 */ MOV r0,#a /*将r0置为12 */ MOV r0,r0,lsl #8 /*r0=r08,相当于将r0乘以2的8次 */ MOV r1,#b /*将r1置为3 */ ADD r2 , r0 ,r1 ,lsr #1 /*r2=r0+r11,将r1的值除以2加上r0放入r2 */ MOV sp , #0x1000 /*将堆栈指针置为0x1000 */ STR r2 , [sp] /*将运算结果放入堆栈 */ MOV r0 , #c /* 将r0置为7 AND r0 ,r0 ,#0xFF /* r0=r00xFF */ MOV r1
文档评论(0)