注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

一步一步写嵌入式操作系统7—中断处理3  

2011-11-19 22:25:23|  分类: ARM学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一步一步写嵌入式操作系统7—中断处理3
虽然在上文中的中断嵌套处理中,解决了多个中断的同时并发的问题,但这并不怎么好,在实际情况应用的是另外的一种,即为了最大可能的减少中断切换过程浪费的时间,那么有没有办法可以节省呢?当然有。
方法就是把中断栻上的上下文直接保存到管理模式下可以访问的空间里,在切换到管理模式后,整个过程根本不需要屏蔽中断信号,大大的增加了处理中断的时间和速度,看一下代码有何不同:
__vector_irq:
 sub r14,r14,#4
 str r14,[r13,#-0x4]
 mrs r14,spsr
 str r14,[r13,#-0x8]
 str r0,[r13,#-0xc]
 mov r0,r13
 CHANGE_TO_SVC
 str r14,[r13,#-0x8]!
 ldr r14,[r0,#-0x4]
 str r14,[r13,#-0x4]
 ldr r14,[r0,#-0x8]
 ldr r0,[r0,#-0xc]
 stmdb r13!,{r0-r3,r14}
 bl common_irq_handler
 ldmia r13!,{r0-r3,r14}
 msr spsr,r14
 ldmfd r13!,{r14,pc}^
更加详细的代码分析就不进行了,相信大家可以直接看出来,代码是相当简单的,没什么了。
到这里中断也基本就结束了,不要盲目的急于前进,要停下来休整一下,温故而知新嘛。
慢慢来,夯实基础。

  评论这张
 
阅读(559)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017