原创 ARM学习笔记

2006-10-14 21:18 3947 8 12 分类: MCU/ 嵌入式

1寄存器R16用作CPSR(Current Program Status Register,当前程序状态寄存器)CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 <?xml:namespace prefix = o />


每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSRSaved Program Status Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR


由于用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的


    当中断产生的时候,把CPSR保存在SPSR是自动完成的。


 


对异常的响应


当一个异常出现以后,ARM微处理器会执行以下几步操作:


1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC4PC8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令MOV PCR14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。


2、将CPSR复制到相应的SPSR中。


3、根据异常类型,强制设置CPSR的运行模式位。


4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。


还可以设置中断禁止位,以禁止中断发生。


如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态


 


从异常返回


异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:


1、将连接寄存器LR的值减去相应的偏移量后送到PC中。


2、将SPSR复制回CPSR中。


3、若在进入异常处理时设置了中断禁止位,要在此清除。


可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。

文章评论8条评论)

登录后参与讨论

用户1655606 2009-5-23 23:56

肯定骗人的,不要理会

用户74120 2007-9-9 18:35

有比较详细的ARM数据手册吗?我找的大多都够详细.控制位的作用不全.

用户520338 2007-6-4 22:18

最近忙吗!!请教一下??去我的主页看看我的STC12C5412AD的程序好吗》?有错误,但一直改不对!!谢谢!

zhaoliang_0801_926809075 2007-5-22 17:02

一般如果是5v控制的话, 应该直接用7219就可以的, 如果太大的话,就应该考虑加驱动了

zhaoliang_0801_926809075 2007-5-22 08:08

你首先应该保证你的硬件电路没有问题, 其次就是程序的原因, 最后才可能是芯片的问题!

参考一下我的 帖子:

http://www.ednchina.com/blog/zl0801/19453/message.aspx

用户72423 2006-11-16 10:50

妈的,傻b想

用户1053025 2006-10-31 15:40

那要怎么联系人啊。一看又是不认识我的,嘻嘻

用户39009 2006-10-25 14:34

肯定是骗人的!

哪有这样联系人的!

用户1053025 2006-10-20 17:48

hehe,wacko一看就是不认识我~~~

用户50962 2006-10-18 23:12

sgh看到留言后,请加我QQ ,qq号 152911677。有事商量
相关推荐阅读
用户58572 2006-10-23 15:09
Gun汇编的保留字
Gun汇编的保留字不是很多书会提到的, 查找起来很不方便, 我自己整理了一下. 希望对以后有用. .ascii  “<string>”<?xml:namespace prefix =...
用户58572 2006-10-14 21:12
画中画的硬件原理
要实现画中画功能,首先得有两个前提,背景图片,动画或视频,在图片中嵌入视频信息。    先用ARM产生图片信息,用视频解码芯片解调视频信息,再用FPGA把这两路信号合成,输出到FTF LCD上显示,难...
用户58572 2006-10-14 21:03
44B0的初始化程序的理解
 44B0的初始化程序就是初始化各个关键的寄存器,建立中断向量,然后转移到主函数去执行程序。      不过44B0不支持地址映射,所以程序不COPY到RAM种执行。44B0初始化对我们广大初学者来说...
用户58572 2006-10-14 21:02
通过网络烧写39VF160步骤
通过FTP烧写FLASH是一个编程工具,提供对39VF160的编程,这个程序出售时已经烧写到ARM anywhereII的29F040中,用户拿到开发板后可以直接使用。具体内容1.电路连接:     ...
用户58572 2006-10-13 20:39
砌墙工人的命运
三个工人砌一堵墙   有人过来说:“你们在干什么?”   第一个没好气的地说:“没看见吗?砌墙。”   第二个抬头笑了笑,说:“我们在盖一幢高楼。”   第三个边干边哼着歌曲,他的笑容很灿烂开心:我们...
我要评论
8
8
关闭 站长推荐上一条 /2 下一条