中断问题

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

中断问题

帖子liuchaojin » 周四 12月 22, 2011 11:46 pm

xtang,请教一个中断的问题,我自己写了一个中断的测试代码(代码如下),编译运行后,电脑直接挂掉了!(我电脑直接装的QNX系统,不是用虚拟机装的);为什么会挂掉?是产生了中断,让系统挂了吗?
代码: 全选
#include <stdio.h>
#include <sys/irqinfo.h>
#include <sys/proxy.h>
#include <sys/kernel.h>

pid_t proxy;
volatile unsigned counter;

/* The hardware interrupt handler */
pid_t far handler()
  {

    /* Kick a proxy every 100 timer interrupts */
    if( (++counter % 100) == 0 )
      return( proxy );

    return( 0 );
  }

void main()
  {
    int id, i;

    /* Get a proxy for the interrupt handler to kick */
    if( ( proxy = qnx_proxy_attach( 0, 0, 0, -1 ) )
       == -1 ) {
      printf( " Unable to attach proxy. " );
      return;
    }

    /* Attach to the timer */
    if( ( id = qnx_hint_attach( 0, &handler,
            FP_SEG( &counter ) ) ) == -1 ) {
      printf( "Unable to attach interrupt." );
      return;
    }

    /* Wait for the proxy */
    for( i = 0 ; i < 10 ; ++i ) {
      Receive( proxy, 0, 0 );
      printf( "100 ticks.\n" );
    }

    qnx_hint_detach( id );
  }
liuchaojin
New Member
 
帖子: 3
注册: 周一 12月 05, 2011 8:23 pm

Re: 中断问题

帖子Nick_ctrl » 周六 7月 21, 2012 9:11 pm

你的ISR写的有问题,不是这么写的,ISR 里出问题是直接挂的。
Nick_ctrl
New Member
 
帖子: 2
注册: 周六 7月 21, 2012 7:17 pm


回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客

cron