繁体中文
高级搜索
 
首页 | 电子技术应用 | 行业最新动态 | 行业最新产品 | 软件资料下载 | 电路图纸欣赏 | 博客文章精选 | 电子精品论坛 | 电子技术贴吧

当前位置:首页 >> 博客文章精选 >> 嵌入式系统-博客 >> vxworks中断
vxworks中断
作者:   来源: 发表时间:2006-12-08  字号:  

中断是外部事件通知操作系统的最常用手段。中断处理机制是计算机多任务环境运行的基础,是系统实时性的保证

VxWorks内核wind在任务调度、中断处理及网络处理等方面与其它嵌入式实时操作系统相比具有一定的优势。特别是其提供的微秒级的中断处理为VxWorks在嵌入式实时操作系统领域的旗舰地位奠定了基础。

Motorola公司推出的MPC860是目前在网络与通信领域应用非常广泛的一款微处理器芯片。高速的PowerPC内核,连同集成的网络与通信外围设备,为用户提供了一个建立高端通信系统的全新系统解决方案。因其体系结构与通用的x86体系结构有很大的不同,理解其中断处理机制及编写相应的中断处理程序成为系统移植与应用中的难点。

VxWorks下的中断处理机制

中断处理的实时性设计

VxWorks采用中断处理与普通任务分别在不同的栈中处理的中断处理机制。中断处理程序运行于一种特殊的上下文环境中,没有任务控制块Task Control BlockTCB,这使得中断的产生只会引发一些关键寄存器的存储而不会导致任务上下文的切换,从而减小了中断延迟。

VxWorks下的中断服务程序(ISR Interrupt Service Routine)只完成在最小时间内通告中断的发生,而将其它的非实时处理尽量通过中断与任务间的通信机制放在被引发的任务上下文中来完成,类似于Linux中的底半处理机制,这样既可以避开中断服务程序编写的种种限制,又进一步缩小了中断延迟。

VxWorks在内核Wind中普遍采用被高度优化的信号量而不是关中断来实现互斥访问,这也对缩小中断延迟有一定的贡献。

方便的中断编程接口

为了让用户方便的使用C语言编写中断服务程序来实现对中断的控制,VxWorks在体系结构无关例程库intLib和体系结构相关例程库intArchLib中提供了系统接口函数[3]。对于应用程序员一般只需了解intLib库即可,而BSPBoard Support Packet,板级支持包程序员则还需要了解intArchLib库。对例程库的详细描述请参见参考文献[3]

接口函数中最常用的是在intLib库中提供的中断连接函数intConnect()。其函数原型为

STATUS intConnect

(

VOIDFUNCPTR * vector,/*需要连接的外部中断向量*/

VOIDFUNCPTR routine,/*中断发生时调用的中断服务程序*/

int parameter /*传递给中断服务程序的参数*/

)

该函数将指定的中断服务程序routine与指定的外部事件中断向量vector相关联。当指定的外部中断事件发生时,该函数以指定的参数parameter为参数,调用中断服务程序,完成相应的中断服务。


!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: VxWorks丰富的定时管理和时钟管理
  • 下一篇: 为arm,51与优盘进行串口通信的东东

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备05071687号  电子技术精品网