We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi frnds,
I am working on Cypress EZ-USB CY768013A while analyzing the code i found many interrupts with same interrupt number as " interrupt 0 " , though this EZ Cypress usb chip has AUTOVECTOR facility, I would like to know how all these interrupt functions are executed with same Interrupt number in EZ CYPRESS USB chip ???
void ISR_Sudav(void) interrupt 0 { printf("Data\n"); GotSUD = TRUE; // Set flag EZUSB_IRQ_CLEAR(); USBIRQ = bmSUDAV; // Clear SUDAV IRQ } // Setup Token Interrupt Handler void ISR_Sutok(void) interrupt 0 { printf("Token\n"); EZUSB_IRQ_CLEAR(); USBIRQ = bmSUTOK; // Clear SUTOK IRQ } void ISR_Sof(void) interrupt 0 { printf("SOF\n"); EZUSB_IRQ_CLEAR(); USBIRQ = bmSOF; // Clear SOF IRQ } void ISR_Ures(void) interrupt 0 { printf("Ureq\n"); if (EZUSB_HIGHSPEED()) { pConfigDscr = pHighSpeedConfigDscr; pOtherConfigDscr = pFullSpeedConfigDscr; } else { pConfigDscr = pFullSpeedConfigDscr; pOtherConfigDscr = pHighSpeedConfigDscr; } EZUSB_IRQ_CLEAR(); USBIRQ = bmURES; // Clear URES IRQ } void ISR_Susp(void) interrupt 0 { printf("Sup"); Sleep = TRUE; EZUSB_IRQ_CLEAR(); USBIRQ = bmSUSP; }
"they have disabled AutoVector of interrupts, with #pragma NOIV"
No: that has nothing to do with Auto-Vectoring!
That is a standard Keil feature that controls vector generation for any 8051 processor.
Quite possibly, they need to use that to disable Keil's standard vector generation so that their own proprietary Auto-Vector generation can work.
This will be specific to the Cypress chips, so you need to study the Cypress documentation about this!