一.处理器对中断的管理及对栈的管理的重要性
1.1.中断是操作系统的入口,用户访问操作系统的途径是中断
1.2.实时系统对异步事件的处理依靠中断
1.3.任务调度依靠中断
1.4.系统调用的实现依靠中断
1.5.mmu中虚存的管理靠中断
二.
硬件中断:硬件引起,
软件中断:执行了中断指令,比如swi
异常:cpu内部运行引起的事件,由操作系统接管
2.1执行过程
硬件:CPSR-->SPSR, PC--->LR, 进入arm状态,设置正确的CPSR,切换到异常模式,禁止中断
软件:SPSR和LR入栈,保存中断中使用到的寄存器到堆栈中,允许中断嵌套时打开中断,中断服务程序执行完后恢复寄存器,弹出SPSR和LR.如果是汇编,需计算调整pc,参考中断地址返回计算
2.2 C中断处理
形式:返回和参数都是void
原则:快速和保护,不进行长时间的操作如浮点计算,不调用延时函数如printf,不使用阻塞的函数以及可能引起阻塞的函数,不调用不可重入函数,最好就是不调用函数(入出栈需要时间),将一些可以再中断外执行的代码放到中断程序外执行。
阅读(642) | 评论(0) | 转发(0) |