Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: What is the difference between VxWorks intConnect and pciIntConnect
From: 王林 <wanglin@ihep.ac.cn>
To: <tech-talk@aps.anl.gov>
Date: Wed, 11 May 2011 00:02:28 +0800
Hello All,
My work is to develop EPICS drivers for some CPCI devices, which will communicate with CPU by interrupt.
I have a question about the difference between VxWorks function intConnect() and pciIntConnect(). Now I use VME and PMC devices for learning, my CPU board is MVME5100, the CPU is MPC750, the system interrupt controller is Hawk MPIC, and the VxWorks is 5.5.1.
VxWorks manual said intConnect() connects a specified C routine to a specified interrupt vector and pciIntConnect() connects an interrupt handler to a shared PCI interrupt vector, which means that intConnect() only connect one ISR to one interrupt vector while pciIntConnect() can connect multiple ISRs to the same interrupt vector. I can not find the definition of these two functions,  but in my VxWorks BSP, some code fragment is as follows:
In sysMpicInit(): 
      excIntConnect ((VOIDFUNCPTR *) _EXC_OFF_INTR, sysMpicIntHandler);
      _func_intConnectRtn = sysMpicIntConnect;
In sysMpicIntConnect():
      newHandler->vec  = routine;
      newHandler->arg  = parameter;
      newHandler->next = NULL;
      if (sysIntTbl[(int) vector] == NULL)
        sysIntTbl [(int ) vector] = newHandler; /* single int. handler case */
      else
        {
        currHandler = sysIntTbl[(int) vector]; /* multiple int. handler case */
        while (currHandler->next != NULL)
            {
            currHandler = currHandler->next;
            }
        currHandler->next = newHandler;
        }
Some documents said that intConnect() calls _func_intConnectRtn(), so it seem that sysMpicIntConnect() also manage a link list for multiple ISRs that shared the same interrupt vector, i.e. intConnect() can also connect multiple ISRs to one interrupt vector. So, I can not understand what is the difference between intConnect() and pciIncConnect().
 
Thanks,
Lin Wang
 
       
 

Navigate by Date:
Prev: RE: Filtering Archive data james.rowland
Next: RE: Announce: seq-2.0.13 Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: RE: Filtering Archive data james.rowland
Next: Disconnected PVs Andrew C. Starritt
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·