ChinaUnix.net
相关文章推荐:

arm 中断

一、进入异常中断
当一个异常出现以后,arm微处理器会执行以下几步操作:
1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从arm状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);
2、将CPSR复制到相应的SPSR中。
3、根据异常类型,强制设置CPSR的运行模式位。
4、强制PC从...

by 飞鸿惊雪 - 移动操作系统 - 2011-12-22 08:51:06 阅读(739) 回复(0)

相关讨论

一、arm中断的相关硬件知识: 正常的程序执行流程发生暂时的停止时,称之为异常。例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。arm体系结构中的异常,与8位/16位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。 arm的异常有七种 复位异常、SWI异常、未定义指令异常、数...

by fpseustar - Linux文档专区 - 2009-12-25 09:46:20 阅读(2523) 回复(0)

我用的arm是atmel公司的9200,arm920T内核,开发环境是ADS1.2 以前写好了程序中断接收正常,前段时间再试发现收不到中断或者提示收到伪中断,搞了两天没结果后我把伪中断向量也指向了需要的中断服务程序,这样倒是可以进入中断服务程序了,不过新的问题又出现了,连续接收几个中断后(有时候一两个,有时候可以接收几十个)程序就死掉了。这是什么原因导致的啊?有没有什么解决的好办法?多谢各位大侠指点,感激不尽! (同样的程...

by yjz98 - 嵌入式开发 - 2009-07-15 22:38:56 阅读(2003) 回复(2)

arm体系结构中,把复位、中断、快速中断等都看作‘异常’,当这些‘异常’发生时,CPU会到固定地址处去找指令,他们对应的地址如下: 地址 异常类型 进入时的工作模式 0x00000000 Reset Supervisor 0x00000004 Und Undefined 0x...

by tomoowang - Linux文档专区 - 2008-11-21 15:38:00 阅读(538) 回复(0)

当一个程序正常执行过程中,CPU可能检测到有某个中断源发出中断请求,这时arm硬件实现了程序强制跳转,在这之前保存了相关信息,以便程序正常返回。如果是发生了Reset中断,程序实现系统初始化设置。 开始比较难以理解的是中断产生后,程序都进行了哪些操作。我就从跟踪PC作为分析的主线。以发生FIQ中断为例。(只以ROM起始地址为0为例,不为0的情况参照存储地址映射) 最简单的是中断发生后,PC=0x08,在此地址处存放...

by junj2121 - Linux文档专区 - 2008-06-24 20:55:55 阅读(989) 回复(0)

#define S3C2410_CPUIRQ_OFFSET (16) #define S3C2410_IRQ(x) ((x) + S3C2410_CPUIRQ_OFFSET) /* main cpu interrupts */ #define IRQ_EINT0 S3C2410_IRQ(0) /* 16 */ #define IRQ_EINT1 S3C2410_IRQ(1) 有大侠研究过内核中断代码吗?这个IRQ_EINT0为什么还加上16呢?谢谢!

by flyriz - 嵌入式开发 - 2012-07-08 11:47:28 阅读(1387) 回复(1)


中断的处理分为三个部分:
1、中断检测:
arm 架构下,中断监测部分的代码是需要用户自己开发的,可以参考ambaIntrCtl.c,需要实现函数xxxIntLvlVecChk、 xxxIntLvlVecAck、xxxIntLvlChg、xxxIntLvlEnable、xxxIntLvlDisable和 xxxIntDevInit,在函数xxxIntDevInit中...

by myforever - 移动操作系统 - 2011-12-21 08:41:41 阅读(869) 回复(0)

by lovealamo - 移动操作系统 - 2011-12-21 08:41:30 阅读(1568) 回复(0)

swi 是 arm 的软件中断指令,大概是 software interrupt 的意思 执行完swi指令后,cpu会做几件事情:

  1. 将swi的下一条指令地址保存到 r14_svc 中
  2. 将当前 cpsr 保存到 spsr_svc 中
  3. 将cpu模式改为特权模式svc_mode, 即更改 cpsr 的低五位, cspr[4:0]=0b10011
  4. 切换到arm状态, cspr[5]=0

by changyongID - 移动操作系统 - 2011-12-20 09:44:11 阅读(1396) 回复(0)

文件: arm Linux中断机制分析.pdf 大小: 207KB 下载: 下载 作者:张俊岭 EMAIL: [email=sprite_zjl@sina.com]sprite_zjl@sina.com[/email] ; [email=jlzhang@tangrae.com.cn]jlzhang@tangrae.com.cn[/email] QQ: 251450387 日期:2009-8-15 说明:本文档基于AT91SAM9260EK板 1 数据结构 中断机制的核心数据结构是irq_desc,它完整地描述了一条中断线(或称为“中断通道” )。 irq_desc结构在include/linux/irq.h中定...

by spritejl - Linux文档专区 - 2009-09-15 18:46:11 阅读(1061) 回复(0)

进过一天的奋战,终于搞好了软中断,其中的错误原来还是对代码存储的地址映射没搞清楚,错误的将向量表给覆盖了。结果可想而知了....... 第一步: 先从root.s文件开始吧,这个文件就是系统启动代码,相当于有操作系统下的bootloader这里就是初始化向量表,寄存器,等等....废话少说还是看看源码吧 IMPORT postDelay IMPORT osStack IMPORT init_Stack IMPORT post_initGpio IMPORT init_Memory IMPORT post_initKey IMPORT du...

by ruanbanyong1 - Linux文档专区 - 2009-03-21 09:56:35 阅读(843) 回复(0)