为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何触发一个中断进入到中断函数中?

请问该如何触发一个中断进入到中断函数中?

C
GCT1015 2023-02-10 10:10:47
#include "semLib.h" SEM_ID syncSem;/* ID of sync semaphore */init ( int someIntNum ){ /* connect interrupt service routine */ intConnect (INUM_TO_IVEC (someIntNum), eventInterruptSvcRout, 0); /* create semaphore */ syncSem = semBCreate (SEM_Q_FIFO, SEM_EMPTY);/* spawn task used for synchronization. */taskSpawn ("sample", 100, 0, 20000, task1, 0,0,0,0,0,0,0,0,0,0);} task1 (void) { ... semTake (syncSem, WAIT_FOREVER);/* wait for event to occur */printf ("task 1 got the semaphore\n");... /* process event */} eventInterruptSvcRout (void){ ... semGive (syncSem); /* let task 1 process event */...}请问如何触发一个中断进入到中断函数中,还有就是同步函数执行后,是立即跳转task1函数,还是继续执行其后面的代码(假如后面还紧跟有代码)???谢谢了!!
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

呵呵,楼主是在vxworks下面编码的吧~

vxworks是不支持软中断的,也就是说你的中断处理函数必须由硬件触发IRQ才能得到执行。
在中断处理函数执行时,系统调度是被禁止的,也就是说中断处理释放信号量后,task1不会立即得到执行,而必须等到eventInterruptSvcRout 执行完后,系统才会再次调度。

时间长了,vxworks的好多内容记不太清了,建议楼主查一下vxworks的编程手册,特别是libindex.html,也许存在软件触发中断的API

查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信