-
2022-03-10 12:35:04
文章目录
操作系统的主要功能
- 进程管理
- 内存管理
- 文件系统
- 设备管理
- 网络协议
ARM体系结构与接口技术
体系结构
- 储存模式
- 工作模式
- 寄存器
- 异常机制
- 流水线
- 指令集
接口技术
- GPIO
- PWM
- UART
- ADC
- RTC
- IIC
CPU执行过程
- 取址
处理器将PC指向的地址中的内容返回给指令寄存器IR中 - 译码
译码器将指令寄存器IR中的指令翻译,并发送给运算器 - 执行
控制器控制运算器执行运算
ARM处理器概述
指令集
- RISC:
只保留常用的简单指令,硬件结构简单,复杂操作一般通过简单指令集组合实现,一般指令长度固定,且多为单周期指令
RISC处理器在价格,功耗,体积方面有很大优势,所以在嵌入式移动终端领域极为广泛 - CISC:
不仅包含了常用指令,还包括了很多不常用的特殊指令,硬件机构复杂,指令条数较多,一般指令长度和周期不固定
CISC处理器在性能上有很大优势,多用于PC及服务器领域
ARM指令集
指令与指令集
- 指令:能够指示处理器执行某种运算的命令,称为指令
处理器能识别指令的集合,称为指令集
ARM指令集
所有指令都占32bit
代码灵活度高,简化了代码复杂度
执行ARM指令集时,PC值每次自增4 - Thumb指令集
所有指令都占用16bit指令空间
代码密度高,节省存储空间
执行Thumb时,PC每次自增2
指令流水线
-
ARM7采用三级
-
ARM9采用5级
-
Cortex-A9采用8级
不管几级流水线,PC指向的永远是当前正在取值的指令,而当前正在执行的指令的地址为PC-8
ARM数据类型
采用32位架构,基本数据类型有以下三种
- Byte:8bit
- Halfword:16bit
- Word:32bit
数据存储与存储类型
- auto:一般存在栈
- extern:外部存储
- register:访问速度快,没有地址,无法取地址操作,不可以定义全局变量,全局变量生命周期长
- static:数据存储在数据端,或叫静态区
Word型数据在内存的起始地址,必须是4的整数倍
Halfword数据在内存的起始地址,必须是2的整数倍字节序
ARM一般使用小端对齐
- 大端对齐:低地址存放高位,高地址存放低位
- 小端对齐:低地址存放地位,高地址存放高位
ARM指令存储
处理器处于ARM状态时:所有指令的起始地址必须是4的整数倍
处理器处于Thumb状态时:所有指令的起始地址必须是2的整数倍ARM工作模式
ARM拥有8种不同工作模式
不同模式拥有不同权限
不同模式执行不同代码
不同模式完成不同功能- User:非特权模式,一般执行上层应用程序时ARM处于该种模式
- FIQ:快速中断模式
- IRQ:普通中断模式
- SVC:复位或软中断
- Abort:产生存储异常时
- Undefi:执行未定义指令时
- System:使用和User模式相同寄存器的特权模式
- Monitor:为了安全而扩展出用于执行安全监控代码的模式
ARM寄存器组织
寄存器
寄存器时处理器内部的存储器,没有地址
一般用于暂存参与运算的数据和运算结果
包括通用寄存器,专用寄存器,控制寄存器
40个寄存器(37个位老版本,多出的部分为Monitor模式)
专用寄存器
- R15(PC,Porgram Conter)
用于存取当前取址指令的地址 - R14(LR,Link Register)
执行跳转指令(BL,BLX)时,LR会自动保存跳转指令下一条指令的地址,程序需要返回时将LR的值复制到PC即可
产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值付给PC即可实现程序返回 - R13(SP,Stack Pointer)
用于存储当前模式下的栈顶指针
CPSR寄存器
- Current Program Status Register当前程序状态寄存器
- 控制域(C)[Bit8:Bit0]
- 模式位(M)[4:0]
- 10000 User
- 10001 FIQ
- 10010 IRQ
- 10011 SVC
- 10110 Monitor
- 10111 Abort
- 11011 Undef
- 11111 System
- 状态位(T)[Bit5]
- 0 Arm状态
- 1 Thrumb状态
- FIQ禁止位(F)[Bit6]
- 0 开启FIQ
- 1 关闭IRQ
- IRQ禁止位(I)[Bit7]
- 0 开启IRQ
- 1 关闭IRQ
- 模式位(M)[4:0]
- 预留域(X)[15:8]
- 状态域(S)[23:16]
- 条件域(F)[31:24]
- 溢出标志(V)Bit[28]
运算器中产生了负数的结果该位自动置1,否则为0 - 进位或借位扩展(C)Bit[29]
运算器中产生了0的结果该位自动置1,否则为0 - 零(Z)Bit[30]
运算器中进行加法运算且产生进位时该位自动置1,否则为0
运算器中进行减法运算且产生借位时该位自动置0,否则为1 - 负或小于(N)Bit[31]
运算器中进行加法运算且产生符号位进位时该位自动置1,否则为0
运算器重进行减法运算且产生符号位借位时该位自动置0,否则位1
- 溢出标志(V)Bit[28]
ARM异常处理
- 异常处理机制
不同的处理器对异常的处理流程大体相似,但是不同的处理器在具体实现的机制上有所不同,比如处理器遇到哪些事件认为是异常事件遇到异常事件后处理器有哪些动作,处理器如何跳转到异常处理程序如何处理异常,处理完异常后又如何返回到被打断的程序继续执行等。
将这些细节实现统称为异常处理机制ARM异常源
导致产生异常的事件称为异常源
- 七类异常源
- FIQ
快速中断请求 - IRQ
外部中断请求 - Reset
复位电平有效 - Softerware Interrput
执行swi指令 - Data Abort
数据终止 - Prefetch Abort
指令预取终止 - Undfined instruction
遇到不能处理的指令
- FIQ
异常向量表
异常向量表的本质时内存中的一段代码32个字节
表中为每个异常源分配了四个字节存储空间
遇到异常后PC的值会修改为对应的地址
因为异常向量表空间有限,一般我们不会在这里写异常处理程序,
而是在对应的位置写一条跳转指令使其跳转到指定的异常处理程序的入口地址 异常源 0x1C FIQ 0x18 IRQ 0x14 Reserved 0x10 DataAbort 0x0C PrefetchAbort 0x08 SWI 0x04 Undef 0x00 Reset ARM产生异常之后的动作
- 拷贝CPSR中的内容到对应模式下的SPSR_
- 修改CPSR的值 修改中断禁止位禁止相应中断 修改模式位,进入相应模式 修改状态位,进入ARM状态
- 保存返回地址到对应异常模式下的LR_
- 设置PC为相应的异常向量(异常向量表对应的地址)
异常返回
- 将SPSR_的值复制给CPSR, 使处理器恢复之前的状态
- 将LR_的值复制给PC, 使程序跳转回被打断的地址,继续执行
异常优先级
- Reset
- Data Abort
- FIQ
- IRQ
- Prefetch
- Abort
- Software
- Interrput
- Undefined instruction
FIQ和IRQ
FIQ的响应速度比IRQ快
- FIQ在异常向量表位于最末 可以直接把异常处理卸载异常向量表之后,省去跳转
- FIQ有五个私有寄存器(R8-R12),执行终端处理程序前无需压栈保存寄存器,可直接处理中断
- FIQ的优先级高于IRQ ,两个中断同时发生时先响应FIQ,FIQ可以打断IRQ,但IRQ不能打断FIQF
更多相关内容 -
ARM体系结构数据类型级及寄存器堆栈操作操作实验报告
2022-06-15 20:34:16ARM体系结构数据类型级及寄存器堆栈操作操作实验报告 ①功能实现: 说明软、硬件的设计思路,并展示实现功能,考核对设计功能的实现程度。 ②结果实现: arm-linux-gcc仿真实现,或S3C6410试验箱硬件实现。 ③实验... -
汇编语言程序设计:基于ARM体系结构(第3版)
2019-06-15 10:00:27《普通高校"十三五"规划教材·汇编语言程序设计:基于ARM体系结构(第3版)》基于ARM体系结构进行汇编语言的教学。《普通高校"十三五"规划教材·汇编语言程序设计:基于ARM体系结构(第3版)》的内容分成3个部分:第1部分... -
ARM体系结构与编程模型总结
2021-01-27 13:52:01ARM(AdvancedRISCMachines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。 1、指令... -
ARM体系结构与接口技术.pdf
2019-06-20 23:04:07ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势... -
嵌入式ARM体系结构试题 - 修订版A卷(含答案).doc
2020-04-13 15:49:47华清远见ARM考试真题带答案 -
ARM体系结构与编程-第二版-杜春雷
2018-01-12 14:28:35ARM体系结构与编程-第二版-杜春雷 高清扫描 * 如涉及侵权内容,您的资源将被移除 * 请勿上传小说、mp3、图片等与技术无关的内容.一旦发现将被删除 * 请勿在未经授权的情况下上传任何涉及著作权侵权的资源,除非该... -
Arm体系结构
2017-08-21 08:47:39以S3C2440A 为例,详细介绍关于Arm的体系结构和外设接口等 -
第2章 ARM体系结构-教程与笔记习题
2021-05-19 18:06:31ARM9嵌入式系统设计基础教程 电子课件-第2章 ARM体系结构 -
嵌入式软件设计(2)--ARM体系结构
2021-01-27 15:36:24计算机体系结构是指从用户角度看到的计算机属性,其中包括计算机的指令集、可见存储器、存储器管理单元和异常处理模式等。CISC(ComplexInstructionSetComputer),指的是复杂指令集计算机。其顺应的是上世纪80年代... -
12734ARM体系结构与编程 历年真题.zip
2019-12-23 11:10:2512734ARM体系结构与编程-历年真题(四川卷,全国可用),放心下载,从淘某宝购买;;############### -
arm体系结构与编程
2018-05-22 16:14:14本书内容: ARM体系介绍 ARM程序设计模型 ARM汇编语言程序设计 ARM C/C++程序设计 ARM 连接器使用 ARM 集成开发环境 高性能调试工具ADW -
ARM体系结构与编程(高清带书签)
2018-10-23 10:38:19《ARM体系结构与编程》是清华大学出版社于2003年出版的书籍,作者是杜春雷。 本书分14章对ARM处理器的体系结构、指令系统和开发工具作了比较全面的介绍。其中包括ARM体系介绍、ARM程序设计模型、ARM汇编语言程序设计... -
汇编语言程序设计 基于ARM体系结构
2014-09-16 10:39:32《汇编语言程序设计:基于ARM体系结构(第2版)》基于ARM体系结构进行汇编语言的教学。全书的内容分成三个部分:第一部分主要介绍汇编语言程序设计的基础知识和ARM系列微处理器,包括第1、2章。第二部分主要介绍基于ARM... -
ARM体系结构
2014-07-03 11:40:31这段时间学习了ARM,总结了一些面试中常用到的ARM问题 -
arm体系结构与编程 杜春雷
2018-08-26 20:08:04arm体系结构与编程,经典的深入ARM体系的书,介绍全面,内容充实 -
ARM体系结构与接口技术FS4412.pdf
2019-09-04 12:05:12华清远见的ARM体系架构的教程,以三星Exynose4412处理器为模板。 -
ARM体系结构与编程第二版-2015.08-杜春雷(2-1)
2017-06-25 21:51:47ARM体系结构与编程第二版-2015.08-杜春雷 -
《ARM体系结构与编程》杜春雷.pdf
2021-03-12 21:45:16《ARM体系结构与编程》杜春雷.pdf -
汇编语言程序设计_基于ARM体系结构
2014-10-20 11:03:42目前最全、最完整的《汇编语言程序设计_基于ARM体系结构.pdf》,已修正错误部分,无缺页,请放心下载。 全本 -
arm体系结构pdf
2018-01-28 15:39:28ARM Architecture Reference Manual, arm体系结构英文版的pdf,官网下载,免去注册麻烦 -
arm体系结构
2019-08-05 01:14:14NULL 博文链接:https://turnround.iteye.com/blog/2041666 -
ARM体系结构与编程:第2章 ARM体系结构.ppt
2022-05-28 23:47:10ARM体系结构与编程:第2章 ARM体系结构.ppt -
《ARM体系结构与编程》杜春雷
2018-03-21 08:27:27ARM体系结构与编程 这本书是比较好的入门书籍,非常适合刚学习ARM的人 -
ARM体系结构与编程(第二版) 杜春雷 学习笔记ppt
2017-12-07 21:59:38ARM体系结构与编程的复习资料,详细的课程 ppt 讲义。 -
ARM体系结构与编程(高清带书签) 杜春雷
2019-01-11 16:57:51ARM体系结构与编程(高清带书签) 杜春雷