3273|2

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ARM7中断疑惑?请哪个大虾帮忙看看。小弟不胜感激! [复制链接]

在ARM7下写了一个定时器中断程序。下面代码是进入IRQ中断后然后为了可重入中断,就切换到系统模式下。但是在切换的时候出现问题?如何直接MSR CPSR_C,#SYS32_MODE(1)就出现SIGBUS错误。切换代码改成MSR CPSR_C,#(SYS32_MODE|NO_INT)(2)就行了。我的疑惑是为什么(1)种会出错?而修改成(2)这种,那这个中断不就屏蔽IRQ和FIQ中断 这样不就不是可重入中断了吗?

[code]
.equ NO_INT             ,0xC0
.equ SYS32_MODE  ,0x1F
.equ FIQ32_MODE  ,0x11
.equ IRQ32_MODE  ,0x12
IRQ_ISR_Handler:
                //计算返回地址
                sub lr,lr,#4
                stmfd sp!,{lr}
                mrs r14,spsr
                //保存相关寄存器和spsr
                stmfd sp!,{r12,r14}
               
                //切换到系统模式
                msr cpsr_c,#(NO_INT|SYS32_MODE)
                //保存相关寄存器
                stmfd sp!,{r0-r11,lr}
                //调用C源程序W90P710_IRQ_ISR
                bl W90P710_IRQ_ISR
                ldmfd sp!,{r0-r11,lr}
                //切换到IRQ模式
                msr cpsr_c,#(NO_INT|IRQ32_MODE)
                ldmfd sp!,{r12,r14}
                msr spsr,r14
                ldmfd sp!,{pc}^                               
               
此帖出自ARM技术论坛

最新回复

明白你的意思了。 1、我不知道arm7上面的irq模式有没有自已的sp寄存器,但是看你上面的代码在进入irq模式的时候,没有初始化sp~~~ 可能是这个问题。 2、你在退出irq模式之前,应该先将中断控制器里面已经产生的中断记录清空吧。不然,你刚退出irq模式, 中断控制 器那边又产生中断来了,因为中断控制器的记录不清空,他一直向arm内核发中断请求.  详情 回复 发表于 2009-5-23 23:56
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
进中断前要屏蔽中断,否则,在执行中断时,可能会有更高级的中断产生,那么此时CPU转去执行另外一个中断,在新中断执行完后,被中断的中断很可能无法正确返回
此帖出自ARM技术论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
明白你的意思了。
1、我不知道arm7上面的irq模式有没有自已的sp寄存器,但是看你上面的代码在进入irq模式的时候,没有初始化sp~~~
可能是这个问题。

2、你在退出irq模式之前,应该先将中断控制器里面已经产生的中断记录清空吧。不然,你刚退出irq模式, 中断控制
器那边又产生中断来了,因为中断控制器的记录不清空,他一直向arm内核发中断请求.
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表