- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM考试资料整理的
嵌入式系统的基本定义:嵌入式系统源于微型计算机,是嵌入到对象体系中,实现嵌入对象智能化的计算机。(填空题)
2、嵌入式处理器可以分为以下几大类:
嵌入式微处理器;
嵌入式微控制器;
嵌入式DSP处理器;
嵌入式片上系统(SOC)。
ARM7与ARM9的区别:
ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺依曼结构。
ARM9内核是1.1MIPS/MHz的五级流水线和哈佛结构。
4、3级流水线:
PC总是指向”正在取指“的指令,而不是指向”正在执行“或”正在译码“的指令。
处理器处于ARM时,每条指令长为4字节,故:
PC值=当前程序执行位置+8字节
处理器处于Thumb时,每条指令长为2字节,故:
PC值=当前程序执行位置+4字节
看如下程序(ARM状态):
0x4000 ADD PC,PC,#4 ;正在被执行的指令,将地址值PC+4写到PC
0x4004 ... ;正在被译码的指令
0x4008 ... ;正在被取指的指令,PC=0x4008
0x400C ... ;PC+4=0x400C
ARM处理器模式表:
在ARM处理器内部共有37个用户可访问的32位寄存器。
堆栈指针R13(SP):保存堆栈的出入口地址
链接寄存器R14(LR):保存子程序的返回地址
程序计数器R15(PC):总是指向正在“取指”的指令
CPSR:程序状态寄存器,监视和控制内部操作。
在异常模式下,允许访问用于保存CPSR当前值的备份程序状态寄存器SPSR。
CPSR与SPSR的关系:
当一个特定的异常中断发生时,将CPSR的当前值保存到相应异常模式下的SPSR,然后设置CPSR为相应的异常模式。
从异常中断程序退出返回时,可通过保存在SPSR中的值来恢复CPSR。
8、ATPCS(规定了子程序间调用的基本规则)。
9.、第二章课后习题
10、thumb状态下可以对(高端寄存器)R8~R12访问的指令只有MOV、ADD、CMP。
MOV指令将一个值从低端寄存器(R0~R7)转移到高端寄存器或者从高端寄存器转移到低端寄存器。
ADD指令将高端寄存器的值与低端寄存器的值相加。
CMP指令比较高端寄存器和低端寄存器的值。
异常向量表地址(或者叫异常入口地址0x00~0x1C):七种异常
地址 异常 优先级(1为最高) 返回地址 0x00 复位 1 - 0x04 未定义指令 6 R14 0x08 软件中断 6 R14 0x0C 中止(预取) 5 R14-4 0x10 中止(数据) 2 R14-8 0x14 保留 0x18 IRQ 4 R14-4 0x1C FIQ 3 R14-4 复位异常:当nRESET信号被拉低时,ARM处理器放弃正在执行的指令,等到nRESET信号再次变高时,处理器执行一下操作:
1、强制M[4:0]变为b10011,系统进入管理模式;
2、将CPSR中的标志位I和F置位,IRQ与FIQ中断被禁止;
3、将CPSR中的标志位T清零,处理器处于ARM状态;
4、强制PC从地址0x00开始对下一条指令进行取指;
5、返回到ARM状态并恢复执行。
13、ARM寻址方式:根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。
判断是哪一种寻址方式:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址
寄存器寻址:
MOV R1,R2;将R2的值存入R1
SUB R0,R1,R2;将R1的值减去R2的值保存到R0
立即寻址:
SUBS R0,R1,#1;R0减1,结果存到R0,并且影响标志位
MOV R0,#0xFF000;将立即数0xFF000装入R0
寄存器移位寻址:
MOV R0,R2,LSL,#3;R2的值左移3位,结果放入R0,即R0=R2*8
ANDS R1,R1,R2,LSL R3;R2的值左移3位,然后和R1做“与”操作,存到R1
寄存器间接寻址:
LDR R1,[R2];将R2指向的存储单元的数据读出,保存在R1中
SWP R1,R1,[R2];将R1的值和R2指定的存储单元的值交换
基址寻址:
LDR R2,[R3,#0x0c];读取R3+0x0c地址上存储单元的内容,存入R2
STR R1,[R0,#-4]!;先R0=R0-4,然后把R1的值保存到R0指定的存储单元
LDR R1,[R0,R3,LSL #1];将R0+R3*2指定的存储单元的内容读出,存入R1
多寄存器寻址:
LDMIA R1!,{R2-R7,R12};将R1所指单元的数据读出到R2~R7、R12中(R1自动加1)
STMIA R0!,{R2-R7,R12};将R2~R7、R12的值保存到R0所指单元中(R0自动加1)
堆栈寻址:
STMFD SP!,{R1-
您可能关注的文档
最近下载
- 《市政排水管道气囊封堵施工规程》.pdf
- TOPRAAD920印刷模切开槽机.pdf VIP
- 单相整流电路建模与仿真.doc VIP
- 缺血性脑血管病临床管理指南解读.pptx VIP
- 工程概算预算审核方案(3篇).docx VIP
- 神经重症气管切开患者气道功能康复与管理专家共识2024.pptx VIP
- 2025年监理工程师之监理概论考试题库及答案(名师系列).docx VIP
- 2025年监理工程师之监理概论押题练习试卷B卷附答案 .pdf VIP
- 2025年监理工程师之监理概论考试题库及完整答案(必刷).docx VIP
- 2025年监理工程师之监理概论押题练习试卷A卷附答案 .pdf VIP
文档评论(0)