This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why the interrupt function never called

I am working with Cypress ez-usb development board. The problem come to me is that a FIFO internal interrupt function never be called. What could be the problem? It supouse to write some data to enpoint when the FIFO programmable flag or FIFO empty flag detected. The configuration for the internal interrupt INT4 as:

// enable internal interrupt4, enable autovector
INT4SETUP |= (INT4SFC | INT4_AV4EN | INT4_INTERNAL);
// seems to be needed???
EXIF &= ~bmBIT6; // clear flag
ABINIRQ |= bmAINPF; // clear interrupt request
EIEX4 = 1; // enable INT4


The interrupt jump table code in assembly as following:

NAME INT4JmpTbl

extrn code (ISR_AINPF,ISR_AINFF)
public INT4_AutoVector, INT4_Jump_Table
;---------------------------------------------------------------------------
---
; Interrupt Vectors
;---------------------------------------------------------------------------
---
CSEG AT 53H
INT4_AutoVector equ $ + 2
ljmp INT4_Jump_Table ; Autovector will replace byte 55
;---------------------------------------------------------------------------
---
; INT4 Jump Table
;---------------------------------------------------------------------------
---
?PR?INT4_JUMP_TABLE?INT4JT segment code page ; Place jump table on a page
boundary
RSEG ?PR?INT4_JUMP_TABLE?INT4JT ; autovector jump table
INT4_Jump_Table:
ljmp ISR_AINPF
db 0

ljmp ISR_AINFF
db 0

;
end