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
32位MCU(单片机)开发全攻略:本文因为内容很多,分为上下册,上册为基础知识篇,从第一章到第五章,下册为开发技巧篇,为第六章以后内容。本书可以作为MCU应用工程师、大中专学生或MCU爱好者学习32位MCU开发的参考教材。 1、汇集32位MCU基础知识与开发工具应用知识,一书在手迅速掌握32位MCU开发!2、首次独家披露LPC1700系列MCU权威中文开发信息! 3、问答实例结合让你的开发难题迎刃而解! 随着节能、高效、绿色理念的深入,32位MCU的应用已呈燎原之势,有数据显示仅在过去一年,基于ARM Cortex-M3的MCU的出货量增长率就达到200%!这些高性能、低功耗的32位MCU广泛应用于汽车电子、工业应用、医疗电子等领域,而据研究机构预测,中国MCU的可用市场总量(TAM)将从2009年的20亿美元增长到2013年的30亿美元以上,其增幅为全球水平的两倍!面对如此诱人的前景,立即学习掌握32位MCU开发基本技巧并将其用于个人设计中已经成为本土工程师的当务之急。 但是,一个有趣的现象是目前有关MCU的图书中大部分还以8位单片机为主要例举对象,很多图书传授的还是51单片机开发知识,可见在知识需求和供给之间出现了巨大的落差,这也是电子创新网推出《32位MCU开发全攻略》电子书的初衷之一。 基于上述原因,本电子书主要讲述32位MCU应用开发知识,对于8位单片机的开发,因为已经有大量书籍,这里不再赘述。本书的第一章主要介绍了嵌入式系统的背景知识、基本概念和目前发展状况,让大家对嵌入式系统的发展有大致的了解。第二章主要介绍了微控制器的基本原理、结构和32位ARM MCU供应商的信息。第三章主要介绍了ARM内核的一些特点及ARM指令集。第四章以恩智浦公司的MCU为例详细介绍了32位ARM MCU的具体结构、功能和特点。第五章是本书的重点内容,以恩智浦的LPC17xx系列MCU为例,分模块详细介绍了MCU的应用开发,这些介绍把软硬件结合在一起,这是本书和其他类似书籍的区别之一。第六章介绍了MCU开发工具及开发流程。第七章我们搜集了多个MCU开发应用实例,通过这些实例,进一步强化MCU开发技巧和系统设计方法。第八章我们以问答的形式介绍MCU开发的技巧,这些问答具有一定的基础性和代表性,可以帮助工程师解决MCU应用开发中遇到的难题。第九章我们罗列了一些MCU开发资源信息,工程师朋友可以通过链接获得所需的知识。第十章是有关本书的编委信息。第十一章是本书的版权声明,我们授权工程师朋友和媒体免费下载此书并进行推广,但是不得以本书切割或进行商业活动。《32位MCU开发全攻略》电子书主编张国斌。
标签: MCU
上传时间: 2013-12-18
上传用户:wincoder
介绍了一种基于高性能51 内核网络微控制器的串口至以太网接口转换器的设计方案,采用网络单片机DS80C410,利用集成的MAC 通过以太网收发器与以太网相连,借助TINI SDK 软件开发包通过Java编程实现串口和以太网之间的数据通讯。串口至以太网接口转换器使得带有RS232/422/485 通讯接口的设备和以太网服务器进行数据流传输,通过以太网服务器对串口设备进行实时监控。互联网硬件和软件的迅猛发展,使得各种电气设备、仪器仪表以及生产过程中的数据采集与控制设备逐渐走向网络化。计算机技术、测控技术、网络与通讯技术不断发展与融合是一个必然的趋势。目前以太网已经广泛应用于计算机网络,成为互联网链接不可缺少的部分,另外以太网一般都基于TCP/IP协议,使得整个网络只有一种互联通讯协议,满足控制系统各个层次的要求,而且易于和Internet实现无缝连接。现今大多数现场设备通过串口与外界通讯,甚至串口是它们与外界通讯的唯一通道,串口设备的广泛使用以及对设备上网能力的不断需求,使得如何实现串口到以太网的转换显得尤为重要。DS80C410利用集成的MAC通过物理层器件与以太网相连,借助TINI SDK软件开发包可以轻松实现串口至以太网的接口转换。
上传时间: 2013-10-20
上传用户:a296386173
Keil是业界最好的51单片机开发工具之一,它拥有流畅的用户界面与强大的仿真功能。ARM将Keil公司收购之后,正式推出了针对ARM微控制器的开发工具RVMDK,它将ARM编译器RVCT与Keil的工程管理、调试仿真工具集成在一起,是一款非常强大的ARM微控制器开发工具。2007年5月,ARM正式授权中国深圳英蓓特公司代理中文版RVMDK的出售事务。很多嵌入式系统开发工程师对ARM的老版本开发工具ADS1.2非常熟悉,而RVMDK与ADS相比较,从外观、仿真流程以及内部二进制编译链接工具上都有了不少改进,用法稍有不同。本主的主旨是介绍通用的流程,以及一些注意事项,帮助ADS1.2用户将老的,遗留的ADS1.2工程转化成在RVMDK上进行开发调试的工程。 ARM新推出的微控制器开发工具RVMDK与ADS1.2在工具架构组成上有一些不同,这些区别包括:不同版本的ARM编译器(compiler),不同的调试器(debugger),不同的仿真器(simulator),以及不同的硬件调试单元。作为ARM的新一代微控制器开发工具,RVMDK不但包含ARM的最新版本编译链接工具,即RVDS3.0的编译链接工具,而且根据微控制器调试开发的特点采用了与ADS,RVDS完全不同的调试、仿真环境,uVision debugger 与simulator。 RVMDK集成了RVDS3.0的编译工具RVCT3.0,与ADS1.2相比,除去编译、连接工具的可执行二进制文件不同之外,RVCT3.0的很多编译连接选项与ADS编译器也有不同。
上传时间: 2013-11-01
上传用户:1051290259
CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间。不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同。所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS。MEMORY{ PAGE 0 .......... PAGE 1.........} SECTIONS{SECTIONS{.vectors ..................reset ................................. }
上传时间: 2013-10-19
上传用户:thuyenvinh
第1章-EDA设计导论 第2章-可编程逻辑器件设计方法 第3章-VHDL语言基础 第4章-数字逻辑单元设计 第5章-VHDL高级设计技术 第6章-基于HDL和原理图的设计输入 第7章-设计综合和行为仿真 第8章-设计实现和时序仿真 第9章-设计下载和调试 第10章-设计示例(数字钟、UART、数字电压表) 点击链接,【《EDA原理及应用》(何宾教授)实验课件下载 】
标签: EDA
上传时间: 2013-12-20
上传用户:panpanpan
商业企业每天产生大量的网格数据,作为网页信息交换的实际标准,最重要的挑战之一是如何有效地进行数据搜索,数据搜索可以以链接的方式进行。一些研究人员已经研究出了演算法,以减少搜索过程中产生的无效信息。另一些研究人员引入了记录法,可以进行相关元素的定位,无需搜索原始网格文档,通过记录的方式完成搜索过程。文中介绍的方法是基于正在被搜索的数据的概念,以及对网格数据库的内容搜索及关键字搜索,使用概念搜索可以提高搜索效率。
标签: 网格数据
上传时间: 2013-10-19
上传用户:zxc23456789
精髓 就是迷你版的 如果大侠有完整版 可以给个链接 不过这个也不错的
上传时间: 2013-11-19
上传用户:guojin_0704
ARM 嵌入式linux培训班视频(全) 的下载链接
上传时间: 2014-12-30
上传用户:nanxia
通过本教程您将获得NI labview 8.5新特性的全面解析:labview 8.5新功能. 性能更为强大的NI labview项目功能令应用程序的开发更为高效并有效减少VI的链接错误; NI labview实时模块为严格限时的任务在多核
上传时间: 2014-12-30
上传用户:gonuiln