Fx2lib  0.2
Defines | Enumerations | Functions
include/autovector.h File Reference
#include "fx2regs.h"

Go to the source code of this file.

Defines

#define USE_USB_INTS()
#define USE_GPIF_INTS()
#define CLEAR_USBINT()   EXIF &= ~0x10
#define CLEAR_GPIF()   EXIF &= ~0x40
#define ENABLE_SUDAV()   USBIE|=bmSUDAV
#define CLEAR_SUDAV()   CLEAR_USBINT(); USBIRQ=bmSUDAV
#define ENABLE_SUTOK()   USBIE|=bmSUTOK;
#define CLEAR_SUTOK()   CLEAR_USBINT(); USBIRQ=bmSUTOK
#define ENABLE_SOF()   USBIE|=bmSOF
#define CLEAR_SOF()   CLEAR_USBINT(); USBIRQ=bmSOF
#define ENABLE_SUSPEND()   USBIE|=bmSUSP
#define CLEAR_SUSPEND()   CLEAR_USBINT(); USBIRQ=bmSUSP
#define ENABLE_USBRESET()   USBIE|= bmURES
#define CLEAR_USBRESET()   CLEAR_USBINT(); USBIRQ=bmURES
#define ENABLE_HISPEED()   USBIE|=bmHSGRANT
#define CLEAR_HISPEED()   CLEAR_USBINT(); USBIRQ=bmHSGRANT
#define ENABLE_EP0IN()   EPIE|=bmEP0IN
#define CLEAR_EP0IN()   CLEAR_USBINT(); EPIRQ=bmEP0IN
#define ENABLE_EP0OUT()   EPIE|=bmEP0OUT
#define CLEAR_EP0OUT()   CLEAR_USBINT(); EPIRQ=bmEP0OUT
#define ENABLE_EP1IN()   EPIE|=bmEP1IN
#define CLEAR_EP1IN()   CLEAR_USBINT(); EPIRQ=bmEP1IN
#define ENABLE_EP1OUT()   EPIE|=bmEP1OUT
#define CLEAR_EP1OUT()   CLEAR_USBINT(); EPIRQ=bmEP1OUT
#define ENABLE_EP2()   EPIE|=bmEP2
#define CLEAR_EP2()   CLEAR_USBINT(); EPIRQ=bmEP2
#define ENABLE_EP4()   EPIE|=bmEP4
#define CLEAR_EP4()   CLEAR_USBINT(); EPIRQ=bmEP4
#define ENABLE_EP6()   EPIE|=bmEP6
#define CLEAR_EP6()   CLEAR_USBINT(); EPIRQ=bmEP6
#define ENABLE_EP8()   EPIE|=bmEP8
#define CLEAR_EP8()   CLEAR_USBINT(); EPIRQ=bmEP8
#define ENABLE_EP2ISOERR()   USBERRIE |= bmISOEP2
#define CLEAR_EP2ISOERR()   CLEAR_USBINT(); USBERRIRQ = bmISOEP2
#define ENABLE_EP6PF()   EP6FIFOIE |= bmBIT2
#define CLEAR_EP6PF()   CLEAR_GPIF(); EP6FIFOIRQ=bmBIT2
#define ENABLE_EP6FF()   EP6FIFOIE |= bmBIT0
#define CLEAR_EP6FF()   CLEAR_GPIF(); EP6FIFOIRQ=bmBIT0
#define ENABLE_GPIFDONE()   GPIFIE |= 0x01;
#define CLEAR_GPIFDONE()   CLEAR_GPIF(); GPIFIRQ = 0x01;
#define ENABLE_GPIFWF()   GPIFIE |= 0x02;
#define CLEAR_GPIFWF()   GLEAR_GPIF(); GPIFIRQ = 0x02;

Enumerations

enum  USB_ISR {
  SUDAV_ISR = 13, SOF_ISR, SUTOK_ISR, SUSPEND_ISR,
  USBRESET_ISR, HISPEED_ISR, EP0ACK_ISR, EP0IN_ISR,
  EP0OUT_ISR, EP1IN_ISR, EP1OUT_ISR, EP2_ISR,
  EP4_ISR, EP6_ISR, EP8_ISR, IBN_ISR,
  EP0PING_ISR, EP1PING_ISR, EP2PING_ISR, EP4PING_ISR,
  EP6PING_ISR, EP8PING_ISR, ERRLIMIT_ISR, EP2ISOERR_ISR,
  EP4ISOERR_ISR, EP6ISOERR_ISR, EP8ISOERR_ISR, RESERVED_ISR,
  EP2PF_ISR, EP4PF_ISR, EP6PF_ISR, EP8PF_ISR,
  EP2EF_ISR, EP4EF_ISR, EP6EF_ISR, EP8EF_ISR,
  EP2FF_ISR, EP4FF_ISR, EP6FF_ISR, EP8FF_ISR,
  GPIFDONE_ISR, GPIFWF_ISR
}

Functions

void usb_isr (void) __interrupt(8)
void sudav_isr () __interrupt
void sof_isr () __interrupt
void sutok_isr () __interrupt
void suspend_isr () __interrupt
void usbreset_isr () __interrupt
void hispeed_isr () __interrupt
void ep0ack_isr () __interrupt
void ep0in_isr () __interrupt
void ep0out_isr () __interrupt
void ep1in_isr () __interrupt
void ep1out_isr () __interrupt
void ep2_isr () __interrupt
void ep4_isr () __interrupt
void ep6_isr () __interrupt
void ep8_isr () __interrupt
void ibn_isr () __interrupt
void ep0ping_isr () __interrupt
void ep1ping_isr () __interrupt
void ep2ping_isr () __interrupt
void ep4ping_isr () __interrupt
void ep6ping_isr () __interrupt
void ep8ping_isr () __interrupt
void errlimit_isr () __interrupt
void ep2isoerr_isr () __interrupt
void ep4isoerr_isr () __interrupt
void ep6isoerr_isr () __interrupt
void ep8isoerr_isr () __interrupt
void spare_isr () __interrupt
void gpif_isr (void) __interrupt(10)
void ep2pf_isr () __interrupt
void ep4pf_isr () __interrupt
void ep6pf_isr () __interrupt
void ep8pf_isr () __interrupt
void ep2ef_isr () __interrupt
void ep4ef_isr () __interrupt
void ep6ef_isr () __interrupt
void ep8ef_isr () __interrupt
void ep2ff_isr () __interrupt
void ep4ff_isr () __interrupt
void ep6ff_isr () __interrupt
void ep8ff_isr () __interrupt
void gpifdone_isr () __interrupt
void gpifwf_isr () __interrupt

Define Documentation

#define CLEAR_EP0IN ( )    CLEAR_USBINT(); EPIRQ=bmEP0IN

Definition at line 88 of file autovector.h.

#define CLEAR_EP0OUT ( )    CLEAR_USBINT(); EPIRQ=bmEP0OUT

Definition at line 91 of file autovector.h.

#define CLEAR_EP1IN ( )    CLEAR_USBINT(); EPIRQ=bmEP1IN

Definition at line 94 of file autovector.h.

#define CLEAR_EP1OUT ( )    CLEAR_USBINT(); EPIRQ=bmEP1OUT

Definition at line 97 of file autovector.h.

#define CLEAR_EP2 ( )    CLEAR_USBINT(); EPIRQ=bmEP2

Definition at line 100 of file autovector.h.

Definition at line 112 of file autovector.h.

#define CLEAR_EP4 ( )    CLEAR_USBINT(); EPIRQ=bmEP4

Definition at line 103 of file autovector.h.

#define CLEAR_EP6 ( )    CLEAR_USBINT(); EPIRQ=bmEP6

Definition at line 106 of file autovector.h.

#define CLEAR_EP6FF ( )    CLEAR_GPIF(); EP6FIFOIRQ=bmBIT0

Definition at line 118 of file autovector.h.

#define CLEAR_EP6PF ( )    CLEAR_GPIF(); EP6FIFOIRQ=bmBIT2

Definition at line 115 of file autovector.h.

#define CLEAR_EP8 ( )    CLEAR_USBINT(); EPIRQ=bmEP8

Definition at line 109 of file autovector.h.

#define CLEAR_GPIF ( )    EXIF &= ~0x40

Definition at line 67 of file autovector.h.

#define CLEAR_GPIFDONE ( )    CLEAR_GPIF(); GPIFIRQ = 0x01;

Definition at line 121 of file autovector.h.

#define CLEAR_GPIFWF ( )    GLEAR_GPIF(); GPIFIRQ = 0x02;

Definition at line 124 of file autovector.h.

Examples:
fw.c.

Definition at line 85 of file autovector.h.

#define CLEAR_SOF ( )    CLEAR_USBINT(); USBIRQ=bmSOF

Definition at line 76 of file autovector.h.

#define CLEAR_SUDAV ( )    CLEAR_USBINT(); USBIRQ=bmSUDAV
Examples:
fw.c.

Definition at line 70 of file autovector.h.

#define CLEAR_SUSPEND ( )    CLEAR_USBINT(); USBIRQ=bmSUSP
Examples:
fw.c.

Definition at line 79 of file autovector.h.

#define CLEAR_SUTOK ( )    CLEAR_USBINT(); USBIRQ=bmSUTOK

Definition at line 73 of file autovector.h.

#define CLEAR_USBINT ( )    EXIF &= ~0x10

Definition at line 66 of file autovector.h.

#define CLEAR_USBRESET ( )    CLEAR_USBINT(); USBIRQ=bmURES
Examples:
fw.c.

Definition at line 82 of file autovector.h.

#define ENABLE_EP0IN ( )    EPIE|=bmEP0IN

Definition at line 87 of file autovector.h.

#define ENABLE_EP0OUT ( )    EPIE|=bmEP0OUT

Definition at line 90 of file autovector.h.

#define ENABLE_EP1IN ( )    EPIE|=bmEP1IN

Definition at line 93 of file autovector.h.

#define ENABLE_EP1OUT ( )    EPIE|=bmEP1OUT

Definition at line 96 of file autovector.h.

#define ENABLE_EP2 ( )    EPIE|=bmEP2

Definition at line 99 of file autovector.h.

#define ENABLE_EP2ISOERR ( )    USBERRIE |= bmISOEP2

Definition at line 111 of file autovector.h.

#define ENABLE_EP4 ( )    EPIE|=bmEP4

Definition at line 102 of file autovector.h.

#define ENABLE_EP6 ( )    EPIE|=bmEP6

Definition at line 105 of file autovector.h.

#define ENABLE_EP6FF ( )    EP6FIFOIE |= bmBIT0

Definition at line 117 of file autovector.h.

#define ENABLE_EP6PF ( )    EP6FIFOIE |= bmBIT2

Definition at line 114 of file autovector.h.

#define ENABLE_EP8 ( )    EPIE|=bmEP8

Definition at line 108 of file autovector.h.

#define ENABLE_GPIFDONE ( )    GPIFIE |= 0x01;

Definition at line 120 of file autovector.h.

#define ENABLE_GPIFWF ( )    GPIFIE |= 0x02;

Definition at line 123 of file autovector.h.

#define ENABLE_HISPEED ( )    USBIE|=bmHSGRANT
Examples:
fw.c.

Definition at line 84 of file autovector.h.

#define ENABLE_SOF ( )    USBIE|=bmSOF

Definition at line 75 of file autovector.h.

#define ENABLE_SUDAV ( )    USBIE|=bmSUDAV
Examples:
fw.c.

Definition at line 69 of file autovector.h.

#define ENABLE_SUSPEND ( )    USBIE|=bmSUSP
Examples:
fw.c.

Definition at line 78 of file autovector.h.

#define ENABLE_SUTOK ( )    USBIE|=bmSUTOK;

Definition at line 72 of file autovector.h.

#define ENABLE_USBRESET ( )    USBIE|= bmURES
Examples:
fw.c.

Definition at line 81 of file autovector.h.

#define USE_GPIF_INTS ( )
Value:
{EIEX4=1;\
                        INTSETUP|=bmAV4EN|INT4IN;}

This macro causes the autovector assemby for int4 to be overlayed at 0x53. Don't use this if you want external pin generated int4 interrupts and want to define your own interrupt handler. It is possible to use usb interrupts with autovectoring and not use GPIF interrupts but GPIF interrupts require the USB jump table. (You can't USE your own usb interrupt handler if you want to enable GPIF interrupts.)

Definition at line 62 of file autovector.h.

#define USE_USB_INTS ( )
Value:
{EUSB=1;\
                        INTSETUP|=bmAV2EN;}

Enable all interrupts (EA=1) separate from this macro. This macro causes the autovector assembly for int2 interrupts to be overlayed at 0x43. In addition, the jump table for the interrupts will be included in the firmware. The jump table must lie on a page boundary. This is done by passing the linker arguments to sdcc.

   sdcc <files> -Wl"-b INT2JT = 0xaddr"
Examples:
fw.c.

Definition at line 53 of file autovector.h.


Enumeration Type Documentation

enum USB_ISR

ez-usb has 12 built in ISRs, to get sdcc to put these USB ISRs immediately after the other ISRs (and not waste space) we start at 13

Enumerator:
SUDAV_ISR 
SOF_ISR 
SUTOK_ISR 
SUSPEND_ISR 
USBRESET_ISR 
HISPEED_ISR 
EP0ACK_ISR 
EP0IN_ISR 
EP0OUT_ISR 
EP1IN_ISR 
EP1OUT_ISR 
EP2_ISR 
EP4_ISR 
EP6_ISR 
EP8_ISR 
IBN_ISR 
EP0PING_ISR 
EP1PING_ISR 
EP2PING_ISR 
EP4PING_ISR 
EP6PING_ISR 
EP8PING_ISR 
ERRLIMIT_ISR 
EP2ISOERR_ISR 
EP4ISOERR_ISR 
EP6ISOERR_ISR 
EP8ISOERR_ISR 
RESERVED_ISR 
EP2PF_ISR 
EP4PF_ISR 
EP6PF_ISR 
EP8PF_ISR 
EP2EF_ISR 
EP4EF_ISR 
EP6EF_ISR 
EP8EF_ISR 
EP2FF_ISR 
EP4FF_ISR 
EP6FF_ISR 
EP8FF_ISR 
GPIFDONE_ISR 
GPIFWF_ISR 

Definition at line 132 of file autovector.h.


Function Documentation

void ep0ack_isr ( )
void ep0in_isr ( )
void ep0out_isr ( )
void ep0ping_isr ( )
void ep1in_isr ( )
void ep1out_isr ( )
void ep1ping_isr ( )
void ep2_isr ( )
void ep2ef_isr ( )
void ep2ff_isr ( )
void ep2isoerr_isr ( )
void ep2pf_isr ( )
void ep2ping_isr ( )
void ep4_isr ( )
void ep4ef_isr ( )
void ep4ff_isr ( )
void ep4isoerr_isr ( )
void ep4pf_isr ( )
void ep4ping_isr ( )
void ep6_isr ( )
void ep6ef_isr ( )
void ep6ff_isr ( )
void ep6isoerr_isr ( )
void ep6pf_isr ( )
void ep6ping_isr ( )
void ep8_isr ( )
void ep8ef_isr ( )
void ep8ff_isr ( )
void ep8isoerr_isr ( )
void ep8pf_isr ( )
void ep8ping_isr ( )
void errlimit_isr ( )
void gpif_isr ( void  )
void gpifdone_isr ( )
void gpifwf_isr ( )
void hispeed_isr ( )
Examples:
fw.c.
void ibn_isr ( )
void sof_isr ( )
void spare_isr ( )
void sudav_isr ( )
Examples:
fw.c.
void suspend_isr ( )
Examples:
fw.c.
void sutok_isr ( )
void usb_isr ( void  )
void usbreset_isr ( )
Examples:
fw.c.