Technical Document #115

Technical Document #115        [Product Version: 5.2.2–5.4]
How can I improve the rate of the interrupt handling when using DriverBuilder for VxWorks?

Beginning with version 5.2.2, WinDriver for VxWorks (a.k.a. DriverBuilder) implements a callback routine — windrvr_isr — which, if set by the user, is executed immediately when an interrupt is received, thus enabling you to speed up interrupt acknowledgment and processing.

WinDriver includes the following declaration of windrvr_isr:
int (__cdecl *windrvr_isr)(void);

To use the windrvr_isr callback routine, do the following:

  • Implement your interrupt handler routine:
    int __cdecl my_isr(void)
    {
      /* implenet your ISR */
      return TRUE; /* If TRUE, continue regular */
                  /* WinDriver handling; */
                  /* If FALSE, exit ISR. */
    }

  • Include the following declaration in your code:
    extern int (__cdecl *windrvr_isr)(void);

  • Set windrvr_isr to point to your interrupt handler routine, after calling drvrInit():
    windrvr_isr = my_isr;