VxWorks中断机制详解与AT91RM9200应用

需积分: 50 20 下载量 189 浏览量 更新于2024-09-16 收藏 101KB DOC 举报
VxWorks中断处理是VxWorks实时嵌入式操作系统的关键组成部分,它确保了系统能够在高并发任务中保持实时性。VxWorks采用中断机制来管理硬件事件和处理外部请求,如AT91RM9200处理器的8优先级可单独屏蔽中断的AIC(Advanced Interrupt Controller)。 1. **VxWorks中断机制与AIC**: AIC在ARM体系结构中扮演重要角色,它管理7种异常中断,包括内存管理、数据访问、未定义指令等,这些异常通过异常中断向量表管理,而外部中断则由中断控制器额外的中断向量表处理。在AT91RM9200中,中断向量表的布局和初始化是关键步骤。 2. **AT91RM9200 BSP中断驱动实现**: - **中断驱动函数**:BSP中定义了几个关键函数,如`STATUSat91rm9200LvlVecChk`用于检查中断,`STATUSat91rm9200LvlVecAck`用于确认中断,`STATUSat91rm9200LvlEnable`和`STATUSat91rm9200LvlDisable`用于启用和禁用中断。 - **AIC初始化**:中断库和控制器的初始化在`syslib.c`中的`sysHwInit2()`函数中完成,依赖于系统时钟中断的开启,通常在usrRoot()任务中调用`sysClkConnect()`函数。 - **`at91rm9200IntDevInit()`函数**:这是BSP中断驱动的核心部分,负责配置系统钩子函数,配置中断源向量寄存器和中断模式寄存器,同时清除并禁止所有中断。 3. **中断回调函数与特权模式**: 在中断处理流程中,一旦中断发生,程序会进入特权模式(SVC32)。如果中断允许嵌套,还需要设置适当的堆栈,并增加中断深度计数器`intCnt`以跟踪中断层次。 理解并掌握VxWorks中断处理机制对于有效开发基于AT91RM9200的嵌入式应用至关重要,它涉及中断向量管理、中断源配置、中断优先级控制以及中断服务程序的回调,这些都是确保系统稳定性和实时响应能力的基础。开发者在实际项目中,需要结合硬件特性灵活运用这些中断处理机制,以优化系统的性能和可靠性。