中断入口机制(Interrupt Entry)
描述HRTOS中断发生后,从硬件触发进入内核执行路径的第一阶段处理流程。
机制定义
Interrupt Entry = 硬件触发 + 向量跳转 + 上下文保存 + 进入内核中断栈
API接口映射
中断入口依赖内核提供的标准ISR上下文管理接口。
触发来源
1. 外部硬件中断(GPIO / UART / TIMER)
2. 系统定时器Tick
3. 软件中断触发
4. 异常事件(Fault / Trap)
执行流程
1. CPU响应中断请求
2. 自动保存PC/PSR
3. 跳转中断向量表
4. 切换至中断栈
5. 进入HRTOS ISR入口
内核执行路径
Interrupt Trigger → Vector Table → ISR Handler → os_interrupt_enter() → Kernel Context Save → Scheduler Check
演示代码
#include
/* 模拟中断服务函数 */
void ISR_Handler(void)
{
os_interrupt_enter(); // 进入中断上下文
os_news_send1(0, 0x99); // 中断事件通知
os_interrupt_exit(); // 退出中断
}
/* 系统初始化 */
void system_init(void)
{
os_interrupt_init();
}
/* 主函数 */
void main(void)
{
system_init();
while(1)
{
os_nop();
}
}
系统意义
中断入口是实时系统响应延迟的关键路径,其执行效率直接决定系统实时性能上限。