当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]vxworks中断服务程序

中断服务程序用来处理来自硬件的中断,是设备驱动程序的重要组成部分。为及时响应外部中断,防止中断丢失.中断服务程序应该尽量的小,只把最必要的任务放在中断服务程序里面执行。一般在系统启动,硬件设备成功初始化之后将ISR与中断向量挂上:也可以在系统启动后的任何时刻挂中断向量。调试中经常采用后一种方式。在VxWorks中有两个不同的函数可提供挂中断:intConnect和pciIntConnect。两者的区别是intConnect使用的中断向量是独占的,pcilntConnect则可在各个不同的ISR之间共享中断向量。实际上pcilntConnect内部调用了 intConnect函数,在内部使用一个链表来管理多个不同的ISR。pcilntConnect要求每次进入ISR都要检查硬件的寄存器,证实中断的确是由ISR服务的硬件产生。如果硬件的寄存器表明该硬件并未产生中断,则ISR立即退出,以让挂在同一个中断向量上的其它ISR有机会检查是否有中断产生。pcilntLib.c中的代码清楚的说明了这个问题:

  void pciInt (int irq ){

  PCLlNT RTN *pRtn;

  for (pRm = (PCI_INT_RTN*)DLL_FIRST(&pcilntList[irq]);

  pRtn!=NULL;

  pRtn =(PCI_INT_RTN*)DLL_NEXT(&pRtn->node))

  (*pRtn->routine) (pRtn->parameter);

  }

  当PCI总线上有中断发生时,系统调用void pcilnt(int irq)函数,再由pciInt使用内部的链表来依次调用挂在该中断上的ISR。如果某个ISR不能正常退出,就会影响到其它ISR的运行。在调试时为了检查中断向量是否已经和ISR可靠的连接上,可以在命令行上或程序中直接调用pciInt来查看ISR是否被触发。在硬件确定的情况下,可以小心设计保证各个硬件使用不同的中断,这样对PCI上的设备也可直接使用intConnect来挂中断。

  需要说明的是ISR挂上中断向量的过程不是简单的在向量表中设置中断向量值。VxWorks除了设置中断向量值以外,还在与中断向量相连的ISR加上了一层薄薄的包装,包括IsR执行前保存寄存器值.设置堆栈以及IsR执行后恢复寄存器和堆栈。在中断频繁的场合,系统中中断堆栈有可能被耗尽而溢出。为了避免上述情况发生,必须修改系统的中断堆栈大小,即在config.h中加入以下代码:

  #define INCLUDE_KERNEL

  #define ISR_STACK_SIZE 0xl000 //表示系统中中断堆栈的大小为4k

  由于中断处理程序的特殊性,中断处理程序中不能使用可能导致阻塞的函数,如printf,semTake等,具体不可使用的函数列表可以在<>中查到。有时候为了调试方便,希望在ISR中打印一些信息,系统提供了一个与prinf等价的函数sysLog,该函数可接受 7个参数。它是非阻塞的。比较而言,prinf函数要在打印任务完成后才返回,sysLog只把打印任务放到系统的打印队列中就返回。在ISR中虽然不可以使用semTake,但可以使用semGive(互斥类型的除外)。一般使用semTake和semGive在ISR和普通程序间通信:当一个中断产生,ISR 完成必要的任务后,调用semGive通知另外一个使用semTake等待ISR信号的任务,该任务收到semGive释放的信号后,继续完成ISR中不便处理的任务。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年5月13日 /美通社/ -- CONNECT 2 是更加用户友好的声卡,仅需轻点几下,它就能为人声和乐器的录制增添异彩。触控面板触感舒适、控制精准、一目了然。所有输入输出信号均可独立静音。自动设置功能通过内...

关键字: NEC 声卡 控制 软件

(全球TMT2023年9月1日讯)8月31日,由软通动力主办,以“智联未来 科创领航”为主题的工业互联网创新发展论坛暨ConnectCity智改数转城市行首站在山城重庆举办。软通动力董事兼首席运营官车俊河表示,软通动力...

关键字: 工业互联网 数字化 集成 NEC

VxWorks是一款广泛应用于嵌入式系统的实时操作系统(RTOS)。作为实时操作系统领域的领导者,VxWorks以其强大的功能和可靠性,在多个行业领域得到了广泛应用。本文将向读者简要介绍VxWorks系统,包括其定义、特...

关键字: VxWorks 操作系统 嵌入式

提供单一窗口、端到端解决方案,实现按需、实时、可靠和可扩展的多云连接;为下一代全球企业带来快速、无缝、智能的连接 印度孟买2023年8月4日 /美通社/ -- 全球数字生态系统推动者Tata Communication...

关键字: COMMUNICATIONS MULTI NEC 应用程序

上海2022年12月13日 /美通社/ -- 2022年12月7日-8日,LNEC8-第8届中国锂电(钠电)新能源千人大会暨2022绿色电池年会于深圳举办,DEKRA德凯受邀参加并与新能源产业链上下游企业同仁共...

关键字: NEC 新能源 锂电 BSP

杭州2022年12月13日 /美通社/ -- 2022年12月11日-14日,首届全球数字贸易博览会(以下简称"数贸会")在杭州举行。数贸会由浙江省人民政府和商务部联合主办,杭州市人民政府、...

关键字: 机电 电梯 NEC 物联网

承诺用ICT技术帮助1.2亿偏远地区人口接入数字社会 深圳2022年11月23日 /美通社/ -- 华为宣布加入国际电联的Partner2Connect数字联盟,承诺到2025年将为全球80多个国家的约1.2亿偏远地...

关键字: 华为 NEC ICT技术 可持续发展

(全球TMT2022年11月9日讯)2022年11月8日,2022库卡新品发布会举办。库卡多款新品正式首发,包括KR SCARA CS家族、DELTA机器人KR 3 D1200、LBR iisy协作机器人、iiQKA....

关键字: 协作机器人 NEC SCARA

2022年11月8日,2022库卡新品发布会举办。库卡多款新品正式首发,包括KR SCARA CS家族、DELTA机器人KR 3 D1200、LBR iisy协作机器人、iiQKA.OS操作系统、弧焊机器人KR CYBE...

关键字: NEC 操作系统 数字化 协作机器人

Wefi的WeConnect和OpenRoaming提供自动、无缝和安全的连接,为网络运营商和用户提供价值驱动的网络体验 洛杉矶2022年10月19日 /美通社/ -- W...

关键字: PEN Wi-Fi NEC STORE
关闭
关闭