文档视界 最新最全的文档下载
当前位置:文档视界 › 嵌入式-ARM寄存器基本概念.

嵌入式-ARM寄存器基本概念.

嵌入式-ARM寄存器基本概念.
嵌入式-ARM寄存器基本概念.

嵌入式-ARM寄存器基本概念

嵌入式-ARM寄存器基本概念

类别:嵌入式系统

无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄

存器以及工作模式。ARM有37个寄存器,其中31个通用寄存器,6个状

态寄存器。这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。ARM自身是统一架构的,也就意味着37个寄存器无论在哪

个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就

出现了好多外设寄存器,一定要与这37个寄存器区别开来!!!1、备份寄存器(R8-R14)对于R8-R12来说,除在快速中断模式下,每个模式对

应相同物理寄存器,所以在FIQ模式下可不必保护和恢复中断现场。对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式

和系统模式共用的。寄存器R13常用做栈指针SP,除用户和系统模式

外,其他模式在使用时的名字构成为R13_。寄存器R14又被称

2、不分组寄存器(R0-R7)不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理

器模式使用一个名字相同的物理寄存器,就是使用的同一个寄存器,这样可能

造成寄存器中数据被破坏,所以在进行模式切换时必须加以保护。为连接寄存器(LR),除用户和系统模式外,其他模式在使用时的名字构成为

R14_。有下面两种特殊用途:A、每个处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时,

R14被设置成该子程序的返回地址。B、当异常中断发生时,该异常模式

下的R14被设置成保存该模式基于PC的返回地址,对于有些异常模式,R14的值有可能与将返回的地址有个常数的偏移量,不同模式偏移量还有所不同(在ARM 的异常处理里有详细介绍)。3、程序计数器R15 对于用户来说,尽量避免使用STR/STM指令来保存R15的值。当成功向R15写入一个地址

数值时,程序将跳转到该地址执行。在ARM状态下指令总是字对齐的,所以PC的PC[1:0]位恒为零,在想PC写入地址时一定要注意将PC[1:0]设为零。ARM采用的是3级流水线结构,所以PC指向的是当前执行指令的下

两条指令,PC-8为当前指令地址。4、程序状态寄存器CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。同时除了用户和系统模式以外,每中处理器模式下都有一个专用的物理状态寄存器,称为 SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态

寄存器的内容。当在用户模式和系统模式中访问SPSR,将会产生不可预知的结果。CPSR和SPSR的格式相同,如下:0:M0 1:M1 2:M2 3:M3 4:M4 5:T(=1 Thumb执行) 6:F(=1是禁止) 7:

I(=1是禁止) 注意:M0~M4并不是所有的组合都定义了有效的处理模式,如

果错误设置,将会引起无法预料的错误。27:Q 在ARM V5的E系列处理器中,CPSR的bit[27]称为q标识位,主要用于指示增强的dsp指令是否发生了

溢出。同样的spsr的bit[27]位也称为q 标识位,用于在异常中断发生时保存和恢复CPSR中的Q标识位。在ARM V5以前的版本及ARM V5的非E系列的处理器中,Q标识位没有被定义28:V 对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号为溢出;通常其他指令不影响V位。对于其他指令,V统常不发生变化。29:C 下面分四种情况讨论C的设置方法:在加法指令中(包括比较指令CMN),当结果产生了进位,则C=1,表示无符号运算发生上溢出;其他情况C=0。在减法指令中(包括减法指令CMP),当运算中发生借位,则C=0,表示无符号运算数发生下溢出;其他情况下C=1。对于包含移位操作的非加减运算指令,C中包含最后一次移出位的数值。对于其他非加减运算指令,C位的值通常不受影响。30:Z z="1表示运算的结果为零";z=0表示运算的结果不为零。对于CMP指令,Z=1表示进行比较的两个数大小相等。31:N 当两个表示的有符号整数运算时,n=1表示运算结果为负数,n=0表示结果为正书或零。MRS:状态寄存器到通用寄存器的传送指令。MSR:通用寄存器到状态寄存器的传送指令

嵌入式-ARM寄存器基本概念.

嵌入式-ARM寄存器基本概念 嵌入式-ARM寄存器基本概念 类别:嵌入式系统 无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄 存器以及工作模式。ARM有37个寄存器,其中31个通用寄存器,6个状 态寄存器。这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。ARM自身是统一架构的,也就意味着37个寄存器无论在哪 个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就 出现了好多外设寄存器,一定要与这37个寄存器区别开来!!!1、备份寄存器(R8-R14)对于R8-R12来说,除在快速中断模式下,每个模式对 应相同物理寄存器,所以在FIQ模式下可不必保护和恢复中断现场。对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式 和系统模式共用的。寄存器R13常用做栈指针SP,除用户和系统模式 外,其他模式在使用时的名字构成为R13_。寄存器R14又被称 2、不分组寄存器(R0-R7)不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理 器模式使用一个名字相同的物理寄存器,就是使用的同一个寄存器,这样可能 造成寄存器中数据被破坏,所以在进行模式切换时必须加以保护。为连接寄存器(LR),除用户和系统模式外,其他模式在使用时的名字构成为 R14_。有下面两种特殊用途:A、每个处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时, R14被设置成该子程序的返回地址。B、当异常中断发生时,该异常模式 下的R14被设置成保存该模式基于PC的返回地址,对于有些异常模式,R14的值有可能与将返回的地址有个常数的偏移量,不同模式偏移量还有所不同(在ARM 的异常处理里有详细介绍)。3、程序计数器R15 对于用户来说,尽量避免使用STR/STM指令来保存R15的值。当成功向R15写入一个地址 数值时,程序将跳转到该地址执行。在ARM状态下指令总是字对齐的,所以PC的PC[1:0]位恒为零,在想PC写入地址时一定要注意将PC[1:0]设为零。ARM采用的是3级流水线结构,所以PC指向的是当前执行指令的下 两条指令,PC-8为当前指令地址。4、程序状态寄存器CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。同时除了用户和系统模式以外,每中处理器模式下都有一个专用的物理状态寄存器,称为 SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态 寄存器的内容。当在用户模式和系统模式中访问SPSR,将会产生不可预知的结果。CPSR和SPSR的格式相同,如下:0:M0 1:M1 2:M2 3:M3 4:M4 5:T(=1 Thumb执行) 6:F(=1是禁止) 7: I(=1是禁止) 注意:M0~M4并不是所有的组合都定义了有效的处理模式,如 果错误设置,将会引起无法预料的错误。27:Q 在ARM V5的E系列处理器中,CPSR的bit[27]称为q标识位,主要用于指示增强的dsp指令是否发生了

寄存器简单理解

GPIOB_BASE是一个地址,这个地址是GPIOB一系列寄存器的首地址,后面地址依次是GPIOB 的寄存器,将这个地址转换为结构体形式,并将后面寄存器按顺序定义在结构体里面,这样访问寄存器就可以通过引用结构体的形式了而不必书写寄存器的地址来访问寄存器。 寄存器用途: 1.可将寄存器内的数据执行算术及逻辑运算; 2.存于寄存器内的地址可用来指向内存的某个位置,即寻址; 3.可以用来读写数据到电脑的周边设备。 AX 累加器,得名原因是最初常使用ADD AX,n这样的指令 CX 计数器,得名原因是最常使用CX的值作为重复操作的次数 BX 常用作地址寄存器,如MOV AX,[BX],把BX所指地址中的数取到AX中去 DX 通用寄存器 所讲的寄存器都是以x86为基础的,那么这种CPU内,寄存器可分为以下几种: 1.EAX、EBX、ECX、EDX等通用寄存器——从通用上来讲,它所存储的东西,只要它的容积所容许的话,什么都是可以存储的; 2.CS、SS、ES等段寄存器——它所存储的只能是地址,它的作用是从寻址上可以体现出来; 3.EIP,也称为指令指针 4.EFLAGS寄存器,俗称为标志寄存器——所存储的是与CPU的每一个执行的指令有关。是关系到CPU每一个指令的执行相关内容与特殊的关联,即CPU所执行的指令是否违规,它的指令是否有进位,它的指令是否有溢出,都是在标志寄存器中能表现与表达出来; 5.浮点单元,这里面之所以只浮点单元,是因为在它里面还有一些小的寄存分类,主要是数学上的浮点上的计算 6.MMX指令使用的8个64位寄存器 7.单指令、多数据操作(SIMD,single-instruction,multiple-data)使用的8个128位XMM寄存器

ARM体系的7种工作模式

ARM体系的7种工作模式 一、ARM体系的CPU有以下7种工作模式: 1、用户模式(usr):正常的程序执行状态 2、快速中断模式(fiq): 3、中断模式(irq): 4、管理模式(svc):操作系统使用的保护模式 5、系统模式(sys):运行具有特权的操作系统任务 6、数据访问终止模式(abt):数据或指令预取终止时进入该模式 7、未定义指令终止模式(und):未定义的指令执行时进入该模式 注解: 可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式;除用户模式外,其余6种工作模式都属于特权模式; 特权模式中除了系统模式以外的其余5种模式称为异常模式; 大多数程序运行于用户模式; 进入特权模式是为了处理中断、异常、或者访问被保护的系统资源; 二、ARM体系的CPU有两种工作状态 1、ARM 2、THumb CPU上电处于ARM状态 三、寄存器 ARM有31个通用的32位寄存器,6个程序状态寄存器,共分为7组,有些寄存器是所有工作模式共用的,还有一些寄存器专属于每一种工作模式; R13——栈指针寄存器,用于保存堆栈指针; R14——程序连接寄存器,当执行BL子程序调用指令时,R14中得到R15的备份,而当发生中断或异常时,R14保存R15的返回值;

R15——程序计数器; 快速中断模式有7个备份寄存器R8—R14,这使得进入快速中断模式执行很大部分程序时,甚至不需要保存任何寄存器; 其它特权模式都含有两个独立的寄存器副本R13、R14,这样可以令每个模式都拥有自己的堆栈指针和连接寄存器; 四、当前程序状态寄存器(CPSR) CPSR中各位意义如下: T位:1——CPU处于Thumb状态,0——CPU处于ARM状态; I、F(中断禁止位):1——禁止中断,0——中断使能; 工作模式位:可以改变这些位,进行模式切换; 五、程序状态保存寄存器(SPSR) 当切换进入某一个特权模式时,SPSR保存前一个工作模式的CPSR值,这样,当返回前一个工作模式时,可以将SPSR的值恢复到CPSR中; 六、模式切换

《ARM嵌入式系统结构与编程》习题答案

1章绪论 1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:见教材1.1节。 2.嵌入式系统是从何时产生的,简述其发展历程。答:见教材1.1节。 3.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。 答:见教材1.2.1节的嵌入式Linux和嵌入式实时操作内核UC /OS-I 。 4.举例说明嵌入式设备在工控设备中的应用。答:见教材1.3节的“工业控制领域”。 5.未来嵌入式技术的发展趋势有哪些?答:见教材1.4节的嵌入式技术的发展趋势。 2章ARM技术与ARM体系结构 1.简述ARM处理器内核调试结构原理。答:对教材1.2节的图2-1进行描述。 2.分析ARM7TDMI-S各字母所代表的含义。答:参考教材 2.1.2 ARM核版本命名规则说明。3.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。 ARM处理器共有7种工作模式: 用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。 IRQ模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ 模式下进行。 SVC模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令执行时处理器将进入这种模式。 中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。 未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。 系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。 在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式 4.分析程序状态寄存器(PSR)各位的功能描述,并说明C、Z、N、V在什么情况下进行置位和清零。PSR的具体格式为 V—溢出标志位 对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其他的指令通常不影响V位。 例如:两个正数(最高位为0)相加,运算结果为一个负数(最高位为1),则符号位溢出,相应V=1。

关于ARM中的名词常用解释

关于ARM中的名词常用解释 1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器; 2.MAM 使用注意事项: 当改变MAM 定时值时,必须先通过向MAMCR 写入0 来关闭MAM,然后将新值写入MAM ti M。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 对于低于20MHz 的系统时钟,MAMTIM 设定为001。对于20MHz 到40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz 的系统时钟下,建议使用3cclk。

3.VIC 使用注意事项 如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。 4. ARM启动代码设计 ARM启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括: 中断向量表 初始化存储器系统 初始化堆栈初始化有特殊要求的端口、设备 初始化用户程序执行环境 改变处理器模式 呼叫主应用程序 5.IRQ 和FIQ 之间的区别 IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被FIQ 所中断,但IRQ 不能中断FIQ。为了使FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用SWI(软件中断)。FIQ 还必须禁用中断。如果一个FIQ 例程必须重新启用中断,则它太慢了,并应该是IRQ 而不是FIQ。

ARM技术中英文缩写解说

ARM技术中英文缩写解说 中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器; 使用注意事项: 答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 对于低于 20MHz 的系统时钟,MAMTIM 设定为 001。对于 20MHz 到 40MHz 之间的系统时钟,建议将Flash 访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。 使用注意事项 答:如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。 4. ARM启动代码设计 答:ARM启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:中断向量表 初始化存储器系统 初始化堆栈初始化有特殊要求的端口、设备 初始化用户程序执行环境 改变处理器模式 呼叫主应用程序 和 FIQ 之间的区别 答:IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于 FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了,并应该是 IRQ 而不是 FIQ。

《ARM嵌入式系统结构与编程》第二章课后答案

第2章ARM技术与ARM体系结构 1.简述ARM处理器内核调试结构原理 答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM 公司自己推出的调试工具。ARM处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。它利用芯片内部的Embedded ICE来控制ARM内核操作,可完成单步调试和断点调试等操作。当CPU处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU运行过程中对实时数据进行仿真。 ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并数据送往TAP(Test Access Port)控制器。上图中分为三条扫描链(图中的粗实线),分别用来监视ARM核,ETM,嵌入式ICE的状态。 1.分析ARM7TDMI-S各字母所代表的含义。 答:ARM7 T D M I – S 中 ARM是Advanced RISC Machines的缩写 7是系列号; T:支持高密度16位的Thumb指令集; D:支持JTAG片上调试; M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;; I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件; S:可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以编译成一种易于EDA工具使用的形式。 2.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处 理器在什么情况下进入相应的模式。 答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。 ?1.用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下 执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器不会自动切换工作模式 ?2.FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先

ARM寄存器详解

ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六 个。 R0~R7:是通用寄存器并可以用做任何目的。 R8~R12:是通用寄存器,但是在切换到FIQ模式的时候,使用它们的影子(shadow)寄存器。 R13:被称为栈指针寄存器,常用来保存栈指针。 R14:链接寄存器,常用来保存函数返回地址 R15:是程序指针PC CPSR:(Current Program Status Register)当前程序状态寄存器,CPSR 寄存期保存当前程序运行的状态。 0 0 0 0 0 User26 模式 0 0 0 0 1 FIQ26 模式 0 0 0 1 0 IRQ26 模式 0 0 0 1 1 SVC26 模式 1 0 0 0 0 User 模式 1 0 0 0 1 FIQ 模式 1 0 0 1 0 IRQ 模式 1 0 0 1 1 SVC 模式 1 0 1 1 1 ABT 模式 1 1 0 1 1 UND 模式

ARM寻址方式 1.立即数寻址 ARM 指令的立即数寻址是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数。ADD R0,R0,#1 ;R0←R0 + 1 ADD R0,R0,#0x3A ;R0←R0 + 0x3A 在以上 2 条指令中,第2个源操作数即为立即数,实际使用时以“#”符

号为前缀。 2.寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采 用的一种方式,也是一种执行效率较高的寻址方式。如以下的指令。 ADD R0,R1,R2 ;R0←R1 + R2 该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。 3.寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器 中。例如以下指令。 ADD R0,R1,[R2] ;R0←R1 + [R2] LDR R0,[R1] ;R0←[R1] 在第1 条指令中,以寄存器R2 的内容作为操作数的地址,然后与R1相加,其结果存入 寄存器R0中。 第2条指令将以 R1 的值为地址的存储器中的内容送到寄存器R0中。 4.基址变址寻址 基址变址的寻址方式就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给 出的地址偏移量相加,从而得到一个操作数的有效地址。如下面的几条指令所示。 LDR R0,[R1,#0x0A] ;R0←[R1 + 0x0A] LDR R0,[R1,#0x0A]!;R0←[R1 + 0x0A]、R1←R1 + 0x0A 在第1条指令中,将寄存器R1 的内容加上0x3A 形成操作数的有效地址,将该地址处的 操作数送到寄存器R0中。 在第2条指令中,将寄存器R1的内容加上0x0A形成操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增0x0A个字节。 5.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用 一条指令完成传送最多 16 个通用寄存器的值。比如下面的指令。LDMIA R0,{R1,R2,R3,R4} ;R1←[R0] ;R2←[R0 + 4]

ARM七种运行模式

s3c2440中断体系结构: 如何用中断? 1.中断发生:保存别人的状态 如何中断可以事先设置,对程序初始化,使能中断。 中断发生后,进入中断模式 2.中断处理 分辨中断源 进行不同的处理 清理工作 3.恢复别人的状态 过程:外界信号上升沿、下降沿,高电平、低电平都可以设置成信号引脚设置,再进入状态寄存器。 状态寄存器连接屏蔽寄存器 进入第二个状态寄存器,储存各种中断,可以储存多个中断 进入优先级寄存器,判断中断运行顺序 再进入屏蔽使能寄存器和模式寄存器 进入优先级寄存器 进入cpu处理 cpu的处理:进入入口地址 b handleIRQ 计算返回地址,被中断处地址 保存现场,即各寄存器状态 调用处理函数 函数运行完后恢复现场 函数的处理:分辨终端 处理中断 清除数据,即清除中断 1.中断寄存器 arm的七种模式 https://www.docsj.com/doc/0d735461.html,r 用户模式r0-r15 2.fiq 快中断模式r0-r7 专用寄存器r8-r15, 3.svc 管理模式 专用寄存器r13-r14, 4.abt 数据访问终止模式 5.sys 系统模式 6.und 未定义指令终止模式 7.irq 中断模式 几种模式的区别:

嵌入式的中断: a.不同的寄存器 b.不同的权限 c.触发条件不一样 何时使用几种模式: usr 用户模式:arm处理器正常的程序执行状态 fiq 快中断模式:高速数据传输和通道处理 svc 管理模式:操作系统使用的保护模式 abt 数据访问终止模式:数据或者指令终止时进入,用于虚拟存储或者存储保护 sys 系统模式:运行具有特权的操作系统任务 und 未定义指令终止模式:未定义的指令执行时进入该模式,用于支持硬件处理器的软件仿真. irq 中断模式:用于通用的中断处理 后六种是特权模式,用于处理中断、异常和特殊权限处理 用户模式是最常见的模式 2.中断中的异常 中断是一种异常。 当发生中断时,cpu进入中断模式 cpu进入异常入口,异常入口是硬件规定的一个地址 运行模式 ARM920T 支持7 种运行模式: ●用户(usr)):正常ARM 程序执行状态 ●快中断(fiq)):为支持数据传输或通道处理设计 ●中断(irq)):用于一般用途的中断处理 ●管理(svc)):操作系统保护模式 ●中止(abt ): 数据或指令预取中止后进入 ●系统(sys)):操作系统的特权用户模式 ●未定义(und)):执行了一个未定义指令时进入 模式的改变可由软件控制,或者由外部中断或进入异常引起。大部分应用程序都将在用户模式执行。 被称为特权模式的非用户模式,都将进入到中断服务或异常中去,或者访问受保护的资源。内部寄存器 ARM920T 总共有37 个寄存器,其中31 通用32 位寄存器和6 个状态寄存器,但不能在同一时刻对所有的寄存器可见。处理器状态和运行模式决定了哪些寄存器对程序员可见。 ARM状态时内部寄存器集在ARM 状态,16 个通用寄存器和一个状态寄存器在任意时刻都可见。 在特权(非用户)模式下,将切换到指定模式的分组(banked)寄存器。图2-3 显示了哪些寄存器在各模式下是可见的:

ARM常用概念及基本功能使用说明

论坛推荐:新手必看,关于ARM的22个常用概念2014-04-22 电子发烧友网新手必看,关于ARM的22个常用概念! 1.ARM中一些常见英文缩写解释MSB:最高有效位;LSB:最低有效位;AHB:先进的高性能总线;VPB:连接片内外设功能的VLSI外设总线;EMC:外部存储器控制器;MAM:存储器加速模块;VIC:向量中断控制器;SPI:全双工串行接口;CAN:控制器局域网,一种串行通讯协议;PWM:脉宽调制器;ETM:嵌入式跟踪宏;CPSR:当前程序状态寄存器;SPSR:程序保护状态寄存器; 2.MAM 使用注意事项:答:当改变MAM 定时值时,必须先通过向MAMCR 写入0 来关闭MAM,然后将新值写入MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。对于低于20MHz 的系统时钟,MAMTIM 设定为001。对于20MHz 到40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。 3.VIC 使用注意事项答:如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。 4.ARM启动代码设计答:ARM启动代码直接面对处理器内

核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:中断向量表初始化存储器系统初始化堆栈初始化有特殊要求的端口、设备初始化用户程序执行环境改变处理器模式呼叫主应用程序 5.IRQ 和FIQ 之间的区别答:IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被FIQ 所中断,但IRQ 不能中断FIQ。为了使FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用SWI(软件中断)。FIQ 还必须禁用中断。如果一个FIQ 例程必须重新启用中断,则它太慢了,并应该是IRQ 而不是FIQ。 6.ARM处理器对异常中断的响应过程答:ARM处理器对异常中断的响应过程如下所述:保存处理器当前状态、中断屏蔽位以及各条件标志位;设置当前程序状态寄存器CPSR中的相应位;将寄存器lr_mode设置成返回地址;将程序计数器值PC,设置成该异常中断的中断向量地址,跳转到相应异常中断处执行。 7.ARM指令与Thumb指令的区别答:在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM

《嵌入式系统原理与应用》课程教学大纲.

《嵌入式系统原理与应用》课程教学大纲 一、课程基本信息 课程代码:230449 课程名称:嵌入式系统原理与应用 英文名称:Principle and Application of Embedded System 课程类别:专业课 学时:72(其中实验32学时) 学分:3.5 适用对象: 计算机科学与技术业 考核方式:考试(平时成绩占总评成绩的30%,期末考试成绩占70%) 先修课程:计算机组成原理、操作系统、编译原理 二、课程简介 嵌入式系统原理与应用是计算机科学技术专业的一门专业课,讲述嵌入式系统的基本理论、原理。本课程是一门既与硬件关系紧密,又与嵌入式操作系统、嵌入式软件关系十分紧密课程。它围绕目前流行的32位ARM处理器和源码开放的Linux操作系统,讲述嵌入式系统的概念,软、硬件组成,开发过程以及嵌入式应用程序开发设计方法。本课程的知识将为学生今后从事嵌入式系统研究与开发打下坚实的基础。The principle of embedded system is an important course of computer science and technology, which introduce the principles and the theory of embedded system.T his curriculum is tied closely with not only hardware but also embedded operating system and embedded software. It introduce the conception of embedded system, components of software and hardware, developing progresses and designing methods of embedded programming which based on the 32bit arm processor and operating system of opened linux.The knowledge of this course would be solid foundation for the student who would be engaged in researching or developing about embedded system. 三、课程性质与教学目的 嵌入式系统原理与应用课程的性质:该课程是计算机科学与技术专业的专业课。 嵌入式系统原理与应用课程的教学目的:通过对基于ARM嵌入式芯片的系统的基本组织结构与工作原理的学习,使学生对计算机系统的硬件部分有一个全面的了解,对嵌入式软件的开发过程有一个清楚的认识,通过对嵌入式操作系统的工作原理的学习,使学生对嵌入式操作系统有一个清晰的认识,提高学生在嵌入式软件设计设计能力及解决实际问题的动手能力,为后续专业课程的学习打下坚实的基础。 四、教学内容及要求 第一章嵌入式系统导论 (一)目的与要求

西门子PLC的寄存器结构

西门子PLC的寄存器结构 一访问数据 CPU 将信息存储在不同存储单元,每个位置均具有唯一的地址。可以显式标识要访问的存储器地址。这样程序将直接访问该信息。要访问存储区中的位,必须指定地址,该地址包括存 储器标识符、字节地址和位号(也称为“字节.位”寻址)。 表格--存储区 M存储器最多32个(256个位、32个字节、16个字),从MB0~MB31,MW0~MW30,MD0~MD28。 V存储器最多可到几千~几万个。 M是位地址。比如M0.0,M0.1等。

MB0、MB1是字节地址,包括8个位地址,从M0.0~M0.7,从 M1.0~M1.7。 MW0是字地址,包括MB0和MB1,即从M0.0~M1.7共16个位 地址。常用于寄存16位数据。 MD0是双字地址,包括MW0和MW1,即从M0.0~M3.7共32 个位地址。常用于寄存32位数据。 在程序执行期间,使用过程映像寄存器比直接访问输入或输出点更有优势。使用映像寄存器共有三个原因: ●在扫描开始时对所有输入进行采样可在扫描周期的程序执行阶段同步和冻结输入值。程序执行完成后,使用映像寄存器中的值更新输出。这样会使系统更稳定。 ●程序访问映像寄存器的速度比访问 I/O 点的速度快得多,从而可以更快地执行程序。 ● I/O 点是位实体,必须以位或字节的形式访问,但可以采用位、字节、字或双字的形式访问映像寄存器。因此,映像寄存器更为灵活。 使用“字节地址”格式可按字节、字或双字访问多数存储区(V、I、 Q、 M、 S、 L 和 SM)中的数据。要按字节、字或双字访问存储器中的数据,必须采用类似于指定位地址的方法指定地址。这包括区域标识符、数据大小标识和字节、字或双字值的起始字节地

ARM处理器共有37个寄存器其中包括.

ARM处理器共有37个寄存器。其中包括: **31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。 **6个状态寄存器。这些寄存器都是32位寄存器。 ARM处理器共有7种不同的处理器模式,每一种模式中都有一组相应的寄存器组。在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及程序计数器(PC)。在所有的寄存器中,有些是各模式公用一个物理寄存器,有一些寄存器各模式拥有自己独立的物理寄存器。 **************************************************** 通用寄存器 ***************************************************8 通用寄存器分为以下三类:备份寄存器、未备份寄存器、程序计数器PC 未备份寄存器 未备份寄存器包括R0-R7。对于每一个未备份寄存器来说,所有处理器模式下都是使用同一个物理寄存器。未备份寄存器没有被系统用于特别的用途,任何可采用通用寄存器的场合都可以使用未备份寄存器。 备份寄存器 对于R8-R12备份寄存器来说,每个寄存器对应两个不同的物理寄存器。系统为将备份寄存器用于任何的特殊用途,但是当中断处理非常简单,仅仅使用R8-R14寄存器时,FIQ处理程序可以不必执行保存和恢复中断现场的指令,从而可以使中断处理非常迅速。 对于R13,R14备份寄存器来说,每个寄存器对应六个不同的物理寄存器,其中的一个是系统模式和用户模式共用的;另外的五个对应于其他的五种处理器模式。采用下面的记号来区分各个物理寄存器: R13_ 其中MODE可以是下面几种模式之一:usr,svc,abt,und,irq,fiq 程序计数器PC 可以作为一般的通用寄存器使用,但有一些指令在使用R15时有一些限制。由于ARM采用了流水线处理器机制,当正确读取了PC的值时,该值为当前指令地址值加上8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。由于ARM指令是字对齐的,PC值的第0位和第一位总为0。

51单片机内部结构及寄存器一览

51单片机内部结构及寄存器一览 在513、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0例:78H+97H(01111000+10010111)AC:辅助进、借位(高半字节与低半字节间的进、借位)。例:57H+3AH(01010111+00111010)F0:用户标志位由用户(编程人员)决定什么时候用,什么时候不用。RS1、RS0:工作寄存器组选择位通过修改PSW中的RS1、RS0两位的状态,就能任选一个工作寄存器区。这个特点提高了MCS-51现场保护和现场恢复的速度。对于提高CPU的工作效率和响应中断的速度是很有利的。若在一个实际的应用系统中,不需要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。0V:溢出标志位运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。P:奇偶校验位它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。4、DPTR(DPH、DPL)--------数据指针可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作。 5、P0、P1、P2、P3--------输入输出口(I/O)寄存器这个我们已经知道,是四个并行输入/输出口(I/O)的寄存器。它里面的内容对应着管脚的输出。 6、IE-----中断充许寄存器可按位寻址,地址:A8HEA (IE.7):EA=0时,所有中断禁止(即不产生中断);EA=1时,各中断的产生由个别的允许位决定- (IE.6):保留ET2(IE.5):定时2溢出中断允许(8052用)ES (IE.4):串行口中断允许(ES=1允许,ES=0禁止)ET1(IE.3):定时1中断允许EX1(IE.2):外中断INT1

ARM基础知识详解

复习问题提纲 第一讲基础知识 1.什么是嵌入式系统(IEEE定义和国内普遍认同的定义分别是什么)? IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置” 国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 更简单的讲:就是嵌入到对象体中的专用计算机系统。 三要素:嵌入、专用、计算机 嵌入性:嵌入到对象体系中,有对象环境要求 专用性:软、硬件按对象要求裁减 计算机:实现对象的智能化功能 2.嵌入式系统的特点? 1、专用软、硬件可剪裁可配置; 2、低功耗、高可靠性、高稳定性; 3、软件代码短小精悍; 4、代码可固化; 5、实时性; 6、弱交互性 7、嵌入式系统软件开发通常需要专门的开发工具和开发环境; 8、要求开发、设计人员有较高的技能。 3.嵌入式系统的组成? 嵌入式系统总体上是由硬件和软件组成的,硬件是其基础,软件是其核心和灵魂。 第二讲ARM技术概述(以下指的arm处理器都是指ARM920T) 1.arm处理器是32位架构,它支持的基本数据类有哪3个(提示:字 节、?、?)? (1)Byte:字节,8bit (2)Halfword:半字,16bit(半字必须与2字节边界对齐)(3)word: 字,32bit(字必须与4字节边界对齐) 2.什么是存储大小端模式? 所谓的大端模式,是指高位字节存放在低地址单元中,而低位字节存放在高地址单元中。 所谓的小端模式,是指低位字节存放在低地址单元中,而高位字节存放在高地址单元中。

ARM汇编之寄存器

在线学习好工作https://www.docsj.com/doc/0d735461.html,/ ARM汇编之寄存器 ARM A系列寄存器的情况 这是寄存器的总表,下面是CPU的各个模式,上面的纵轴就是寄存器组。 CPU在运行的时候为什么会有寄存器? 想象CPU是一个圈一直在运转,然后寄存器里面有大量的指令,这些指令不知道从哪里来的,但是一般情况下我们的程序在计算我们的程序,我们的程序一般是放在内存里面的,它从内存里面把这些程序读进来之后,在运行,但是如果现在这个程序在运行时异常,那么就要进行CPU状态的切换,除了状态切换之外,当前的一些数据结果需要进行一个保存,但是如果要把这个结果存到内存去,内存并不稳定并且很慢,所以就要想办法能不能找到一个临时空间保存一下,这就是为什么会诞生寄存器。

设置寄存器的原因就是为了更好的去控制和达到效率,ARM体系为了很好的去控制CPU,设定了哪些寄存器? User纵轴上的十三个寄存器称为通用寄存器,R13是一个比较特殊的寄存器,也叫做SP,就是占指针的寄存器,就是指向某一些占空间,R14是LR,就是连接寄存器,它肯定是去连接某一个地方。R15是PC,这是程序计数器,这是CPU在每一个空间切换的时候的计数器,最下面那个也就是APSR或者CPSR,PSR 就是程序状态寄存器,A代表应用程序状态寄存器,C代表当前程序状态寄存器。 在往下就类似于R17,只不过它叫做SPSR,S就是以保存程序代表寄存器或者我们也可以称为存储状态寄存器,通过这些我们大概把寄存器了解了。 那么这上面分为通用的,那么下面就是特殊寄存器,从横向来看,我们可以看到在USR模式下面,这样寄存器挺全的,但是USR下面没有SPSR,就是没有存储状态的寄存器,然后FIQ快速中断模式下面面是共享R0到R7,意思就是这些模式下的R0到R7它们与USR模式下的R0到R7是共享的,这样如果存储一些数据在R0到R9下面,突然发生异常,切换到另一个模式,那么我们就应该要想办法把这个存取一下,因为另一个模式可能也要往这里面写东西,那么写之前就应该把USR模式下的先保留一下,到时候退出解决后在还原回来,所以我们要一个R0到R7这块寄存器是共享的,同样FIQ后面几个模式的R8到R12也是和USR共享的,只有FIQ是自己独有的,同样的我们在看到PC计数器也是共享的,还有SPSR也是共享的,但是SPSR每个状态都有自己独有的。

ARM嵌入式系统复习题

嵌入式系统复习题 一、简答题 1、什么是嵌入式处理器,嵌入式处理器可以分为几大类? 嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器,分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。 2、广泛使用的三种类型的操作系统? 多道批处理操作系统、分时操作系统以及实时操作系统。 3、什么是RISC?什么是CISC? RISC是精简指令集计算机的缩写。CISC是复杂指令集计算机的缩写。 4、ARM7TDMI中的T、D、S、I分别表示什么含义? T:支持高密度16位的Thumb指令集;D:支持片上调试;S:ARM7TDMI 的可综合(synthesizable)版本(软核);I:支持EmbededICE观察硬件;M:支持64位乘法 5、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大? ARM处理器使用冯.诺依曼结构;使用单个平面的232个8位字节地址空间。地址空间可以看作是包含230个32位字,或231个16位半字。 6、ARM7TDMI处理器采用几级流水线处理,使用何种存储器编址方式? ARM7TDMI处理器采用三级流水线;ARM处理器将存储器看做是一个从0开始的线性递增的字节集合。 7、ARM处理器模式和ARM处理器状态有什么区别? ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。ARM处理器状态指ARM状态和Thumb状态ARM两种处理器状态下均有上述7种模式。 8、ARM7TDMI内部寄存器特点? 分别为31个通用32位寄存器和6个状态寄存器。它们不能在同一使劲同时被访问,对其的访问取决于处理器状态和处理器模式。 9、ARM7TDMI有几种寻址方式? 寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。 10、ARM7的内部寄存器R13、R14、R15的主要功能和作用? R13:堆栈指针,用于保存堆栈的出入口处地址、保存待使用寄存器的内容R14:连接寄存器,当使用BL指令调用子程序时,返回地址将自动存入14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址;其他时候作为通用寄存器。

嵌入式系统基础知识题库

嵌入式系统设计师考试笔记之嵌入式系统基础知识- 自《嵌入式系统设计师考试复习笔记之存储管理篇》在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程并重新按《教程》的章节顺序整理一份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出相关的考题进行分析,希望能和有兴趣的人们一起讨论讨论。 嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的75道选择题之中。 从历年的真题和考试大纲来看,上午的选择题主要考查一些基本概念,重要原理的理解,一些关键技术和一些重要的原理引申出来的简单计算。根据这些考试特点,复习的时候可以采用适当的策略,当然每个人的方法都是不一样的,适合自己的办法才是最好的办法。方法大家可以自己慢慢去体会,我的也不多说了,通过笔记和真题分析就可以体现处理。对于很多关键的知识点和基本概念,除了记住之外还要彻底理解,否则出题的时候会进行一些变换,或者引申一些计算,那么就算你知道考那个考点,可能你也做不好。 在复习的过程中,你要记住:你不是要考一个很高的分数,而是要考一个通过的分数,在复习过程中可以放弃一些内容,只要保证在大部分基本概念,关键技术,重要原理和历年考点上都把握住,能够拿到需要的分数就可以了。 复习笔记 1、嵌入式系统的定义

相关文档
相关文档 最新文档