ARM处理器的工作模式 ARM处理器状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。 ARM处理器状态 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM处理器模式 ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM处理器模式 ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM寄存器 ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。 关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。异常处理 当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;当运行于 ARM 工作状态时If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。
上传时间: 2013-11-15
上传用户:hanbeidang
4.1 编程的步骤、方法和技巧4.1.2 编程的方法和技巧 4.1.3 汇编语言程序的基本结构 4.2 汇编语言源程序的编辑和汇编 4.2.1 源程序编辑 4.2.2 源程序的汇编 4.2.3 伪指令 计算机在完成一项工作时,必须按顺序执行各种操作。这些操作是程序设计人员用计算机所能接受的语言把解决问题的步骤事先描述好的,也就是事先编好计算机程序,再由计算机去执行。汇编语言程序设计,要求设计人员对单片机的硬件结构有较详细的了解。编程时,对数据的存放、寄存器和工作单元的使用等要由设计者安排;而高语言程序设计时,这些工作是由计算机软件完成的,程序设计人员不必考虑。 4.1.1 编程步骤 一、分析问题 首先,要对需要解决的问题进行分析,以求对问题有正确的理解。例如,解决问题的任务是什么?工作过程是什么?现有的条件,已知的数据,对运算的精确和速度方面的要求是什么?设计的硬件结构是否方便编程等等。 二、确定算法 算法就是如何将实际问题转化成程序模块来处理。 解决一个问题,常常有几种可选择的方法。从数学角度来描述,可能有几种不同的算法。在编制程序以前,先要对不同的算法进行分析、比较,找出最适宜的算法。 ? 三、画程序流程图 程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示,常采用以下图形及符号:椭圆框( )或桶行框( )表示程序的开始或结束。 矩形框( )表示要进行的工作。 菱形框( )表示要判断的事情,菱形框内的表达式表示要判断的内容。 圆圈( )表示连接点。 指向线(→)表示程序的流向。 流程图步骤分得越细致,编写程序时也就越方便。
上传时间: 2013-10-10
上传用户:18888888888
MCS-51系列单片机芯片结构:2.1 MCS—51系列单片机的结构原理2.1.1 MCS-51单片机逻辑结构 MCS-51单片机的系统结构框图如图2.1所示。 图2.1 MCS-51单片机的系统结构框图由图2.1可以看出,单片机内部主要包含下列几个部件:u 一个8位CPU;u 一个时钟电路;u 4Kbyte程序存储器;u 128byte数据存储器;u 两个16位定时/计数器;u 64Kbyte扩展总线控制电路;u 四个8-bit并行I/O端口;u 一个可编程串行接口;五个中断源,其中包括两个优先级嵌套中断 1. CPU CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。(1)运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 (2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。
上传时间: 2013-10-27
上传用户:tianyi223
带您从零学单片机之中断部分部分 课程简介1 51单片机中断2 中断简介3 中断相关寄存器功能讲解4 中断优先级讲解5 中断应用操作流程6 中断程序实例设计17 课后作业
上传时间: 2013-10-10
上传用户:shengyj12345
AVR 单片机与GCC编程 目录第一章 AVR 单片机开发概述1.1 一个简简单的例子1.2 用MAKEFILE 管理项目1.3 开发环境的配置第二章 存储器操作2.1 AVR 单片机存储器组织结构2.2 I/O 寄存器操作2.3 SRAM 内变量的使用2.4 在程序中访问FLASH 程序存储器2.5 EEPROM 数据存储器操作2.6 avr-gcc 段结构与再定位第三章 功能模块编程示例3.1 中断服务程序3.2 定时器/计数器应用3.3 看门狗应用3.4 UART 应用3.5 PWM 功能编程3.6 模拟比较器3.7 A/D 转换模块编程第四章 使用C 语言标准I/O 流调试程序4.1 avr-libc 标准I/O 流描述4.2 利用标准I/0 流调试程序第五章 AT89S52 下载编程器的制作5.1 LuckyProg S52 概述5.2 AT89S52 ISP 功能简介5.3 程序设计第六章 硬件TWI 端口编程6.1 TWI 模块概述6.2 主控模式操作实时时钟DS13076.3 两个Mega8 间的TWI 通信第七章 BootLoader 功能应用7.1 BootLoader 功能介绍7.2 avr-libc 对BootLoader 的支持7.3 BootLoader 应用实例 第八章 汇编语言支持8.1 C 代码中内联汇编程序8.2 独立的汇编语言支持8.3 C 与汇编混合编程第九章 C++语言支持结束语附录 1 avr-gcc 选项附录 2 ihex 格式描述
上传时间: 2013-10-26
上传用户:wangyi39
系统控制协处理器是MIPS体系结构CPU中必需的一个单元模块。它最主要的功能就是利用一系列特权寄存器记录当前CPU所处的状态,负责异常/中断处理,提供指令正常执行所需的环境。本文论述了一个实现MIPS 4Kc指令集CPU中系统控制协处理器的设计,包括对特权寄存器写操作的实现,精确异常处理机制和全定制后端物理设计。关键词:32位嵌入式CPU,系统控制协处理器,精确异常处理,流水线,全定制MIPS体系结构中的系统控制协处理器简称CP0,它提供指令正常执行所需的环境,进行异常/中断处理、高速缓存填充、虚实地址转换、操作模式转换等操作。单从硬件的角度而言,系统控制协处理器对指令集的作用就相当于操作系统对应用程序的作用一样。
上传时间: 2014-11-22
上传用户:daijun20803
默认状态: –在进入中断服务程序时,I位自动置1,禁止其他可屏蔽中断 –即使有优先级更高的中断请求,也必须等当前中断服务程序执行完以后才能响应 –优先级的作用只有在多个中断源同时请求中断时在能体现 –无法实现中断嵌套 如果在进入中断服务程序时,手动对I位清零: –任何其他可屏蔽中断都可以被响应,无论其优先级有多高 –中断响应由时间控制,可以实现中断嵌套 –对中断执行无法预测 HPRIO寄存器 –写入HPRIO中的中断向量的后八位,可以改变该中断的优先级 –同样,优先级的作用只有在多个中断源同时请求中断时在能体现
上传时间: 2014-12-28
上传用户:xauthu
以典型的9S08 系列为例,当你选择了一个MCU 型号后,在图1-4 右侧会显示出所有针对该型号芯片可用的项目调试场景。其中:Full Chip Simulator是芯片全功能模拟仿真,即无需任何目标系统的硬件资源,直接在你的PC 机上模拟运行单片机的程序,在模拟运行过程中可以观察调试程序的各项控制和运行流程,分析代码运行的时间,观察各种变量,等等。CW 提供了功能强大的模拟激励功能,可以在模拟运行时模拟一些外部事件的输入,配合程序调试;P&E Multilink/Cyclone Pro是基于P&E 公司的硬件调试工具实现实时在线硬件调试。实际就是我们经常说的BDM 调试。BDM 调试是基于芯片本身内含的在线调试功能,可实现程序下载,单步/全速运行,可以设若干个断点,可以观察和修改任意寄存器或RAM 内存空间。BDM 几乎是开发飞思卡尔8 位(9S08 和RS08 系列)、16 位(9S12 系列)和32 位(Coldfire V1 系列)单片机的标准调试模式,运用最为广泛;SofTec HCS08是另外一家SofTec 公司提供的硬件调试工具,国内使用较少;HCS08 Serial Monitor是基于芯片串口的监控调试开发模式。由于开发效率较低,现在几乎无人使用。
上传时间: 2013-10-10
上传用户:alex wang
当今集成电路设计已经进入 SOC 时代,于是各公司针对自己的设计需求挑选一款性价比较高的处理器作为内核是一件非常重要的事情。下面将介绍一款集成了DSP 和MCU 功能的处理器ZSP neo 。ZSP neo 是一类新型的处理器,它在一个的内核中集成了DSP 和MCU 的功能。对于那些需要比现有8 位微控制器更高的控制处理性能,而又无需32 位微控制器的对成本敏感的应用来说,ZSP neo 是一个理想的选择。ZSP neo 针对其性能要求采用了相应的架构:·采用基于 RISC 的架构:处理器具有静态分支预测功能;所以程序员设计程序时无需考虑跳转延时。·采用了 Load-Store 架构:处理器对存储器的操作使用 load 和store 指令;操作不直接发生在存储器中。所有其他指令均为寄存器-寄存器操作;使用寄存器节省了存储器带宽。采用多种load/store 指令,这样优化了存储器操作;同时支持32 位和16 位的数据操作。处理器允许前推的灵活架构;功能单元的结果能够在下个周期无条件地被其他功能单元使用。
上传时间: 2013-10-19
上传用户:奔跑的雪糕
单片机I/O口的使用:对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,亦或接受外部的控制,都是通过I/O口进行的。单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。§4.1 MCS-51单片机的并行端口结构与操作 51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0~P3。
标签: 单片机
上传时间: 2013-11-06
上传用户:zhouxuepeng1