📄 interrupts.c
字号:
#include <stdio.h>
#include <tm1/tmInterrupts.h>
extern UInt _node_number;
extern UInt _number_of_nodes;
#define INTERRUPT intAPP
volatile Bool got_it = False;
static void
notify(void)
{
#pragma TCS_interruptible_handler
got_it = True;
if (_node_number != 0) {
intRaise_M( (_node_number + 1) % _number_of_nodes, INTERRUPT );
}
}
void
wait_a_while()
{
int i;
for (i = 0; i < 100000; i++) {
}
}
main()
{
intInstanceSetup_t setup;
if (intOpen(INTERRUPT) != 0) {
exit(-1);
} else {
setup.enabled = True;
setup.handler = notify;
setup.priority = intPRIO_6;
setup.level_triggered = False;
intInstanceSetup(INTERRUPT, &setup);
wait_a_while();
if (_node_number == 0
&& _number_of_nodes > 1
) {
intRaise_M(1, INTERRUPT);
}
while (!got_it) {
}
printf("node %d: GOT IT!!!\n", _node_number);
}
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -