嵌入式实时系统中断管理技术研究
用户中断安装模块delta_interrupt_catch 的伪代码实现如下:
delta_interrupt_catch(vector, new_isr_handler,old_isr_handler){
① 检查向量号的有效性
② 检查新中断服务程序的有效性
③ 保存旧的中断服务程序指针
④ 安装用户指定的新中断服务程序
_ISR_VECTOR_TALBE[vector]=new_isr_handler
}
外设中断触发时,中断处理模块_ISR_Handler的伪代码实现如下:
_ISR_Handler(void){
① 中断现场的
保护
② 中断屏蔽位的设置
③ 外设中断标志的检测
switch ( 标志) {
case PPC_D1:
F1=_ISR_VECTOR_TABLE[V_D1]且执行F1的功能
case PPC_D2:
F2=_ISR_VECTOR_TABLE[V_D2]且执行F2的功能
case PPC_D3:
F3=_ISR_VECTOR_TABLE[V_D3]且执行F3的功能
.
.
.
case PPC_Dn:
Fn=_ISR_VECTOR_TABLE[V_Dn]且执行Fn的功能
default:
执行系统默认的中断处理程序
}
④ 中断屏蔽位的恢复
⑤ 根据调度标志进行调度
⑥ 中断现场的恢复
}
图5
此技术已成功解决了PowerPC MPC860中单向量多中断处理的问题,而且其实现并不影响嵌入式内核的体系,具有较好的移植性。
3 小 结
本文主要研究了嵌入式实时系统中断管理技术,从硬件体系和系统管理两方面阐述了影响中断性能的因素,着重分析了嵌入式内核中断管理模式。在嵌入式内核中断管理中,归结出“中断前-后段处理”模型,并针对一些处理器的多中断共用一个向量的问题,引入了单向量多中断处理的映射技术,并给以实现,对提高嵌入式实时系统的实时性提供了一定的参考价值。
《嵌入式实时系统中断管理技术研究(第3页)》