[发明专利]一种μCOS-Ⅱ移植到ARM7的中断嵌套方法有效
申请号: | 201010157129.5 | 申请日: | 2010-04-28 |
公开(公告)号: | CN101819539A | 公开(公告)日: | 2010-09-01 |
发明(设计)人: | 宋庆国;宋光磊;占丰;刘中伟 | 申请(专利权)人: | 中国航天科技集团公司第五研究院第五一三研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 杨志兵;高燕燕 |
地址: | 264003 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种μCOS-II移植到ARM7的中断嵌套方法在重新使能中断之前改变处理器模式,采用非中断模式下的LR记录BL指令所使用的返回地址,这样,当新中断发生时,就不会造成LR寄存器冲突,从而在中断中调用的子函数可以正确返回。使用本发明能够在出现中断嵌套时,保证程序运行的正确性。 | ||
搜索关键词: | 一种 cos 移植 arm7 中断 嵌套 方法 | ||
【主权项】:
一种μCOS-II移植到ARM7的中断嵌套方法,其特征在于,该方法包括:步骤1:当产生中断时,ARM内核执行其中断处理;步骤2:将现场信息入栈到中断堆栈,所述现场信息包括ARM内部寄存器R0-R12、中断模式下的连接寄存器LR(IRQ);步骤3:判断当前被中断的对象是任务还是低优先级中断,如果是任务,则执行步骤4,如果是低优先级中断,则执行步骤9;步骤4:将所述现场信息转存到任务堆栈中,调用操作系统进入中断服务函数OSIntEnter();步骤5:将ARM从中断模式转换为除中断模式之外的一种选定模式,将现场信息入栈到系统模式对应的堆栈,入栈信息包括R0-R12,所述选定模式下的连接寄存器LR(choose);步骤6:执行应用软件中断处理服务函数;步骤7:中断退出前,切换回中断模式;将中断模式下的堆栈指针调整到该级中断发生前的位置,再调用操作系统退出中断服务函数OSIntExit();步骤8:从任务堆栈中恢复中断前的任务现场,至此本流程结束;步骤9:将ARM从中断模式转换为所述选定模式;步骤10:将中断嵌套层数OSIntNesting加一;步骤11:执行应用软件中断处理服务函数;步骤12:将中断嵌套层数OSIntNesting减一;步骤13:中断退出前,切换回中断模式;根据中断模式下的堆栈指针,将中断堆栈中存储的中断前现场信息出栈,至此本流程结束;所述步骤6和步骤11具体包括如下子步骤:①应用软件中断处理服务函数开始处保存中断使能寄存器的当前值;②通过设置中断使能寄存器,实现禁止同级中断和低优先级中断;③打开中断使能;④执行应用软件中断处理服务程序;⑤在应用软件中断处理服务函数结束处恢复保存的中断使能寄存器的值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科技集团公司第五研究院第五一三研究所,未经中国航天科技集团公司第五研究院第五一三研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010157129.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种玻璃破碎喂料装置
- 下一篇:用于加工钢渣的辊磨机分级送料装置