Hi, I have a very peculiar problem regarding interrupts on my Olimex E2214 board (using gcc and gld with Eclipse). I'm trying to get my board to communicate with a Windows application using the UART1. The way it works is that the Win app sends frames with commands to the test board to which the ARM responds by sending a new frame back to the PC. I have set the UART1 to give interrupts when the RxFIFO is filled with 8 bytes. Each frame consists of 12 to 100 bytes (11 bytes header and 1-89 bytes of data). The communication works fine the first 4 rounds (request+reply). However the fifth time the Win app starts sending a "request-frame" the ARM does not generate any interrupts. I can see that there are interrupts pending (by debug print-outs with the other UART from a busy-waiting loop*) and that the peripherals that should give interrupts are enabled to do so. I also have a timer running giving an interrupt after 2 seconds if no data is received (should not happen in normal operation due to frequent requests from the Win app). This timer interrupt works fine until the Win app starts sending frames. After the last request (as described above) this interrupt is also pending but no interrupt is raised. From debug print-outs from the ISRs I also see that I never leave my two ISRs (One for UART1 and one for Timer0) with any interrupts pending. *) Debug print-outs after the fifth Win app request frame: VICIRQStatus: 0x00000080 VICIntEnable: 0x00000090 VICVectAddr: 0x000000D4 T0IR: 0x00 T0TCR: 0x01 T0MCR: 0x0003 U1IIR: 0xC4 VICIRQStatus: 0x00000090 VICIntEnable: 0x00000090 VICVectAddr: 0x00000000 T0IR: 0x01 T0TCR: 0x01 T0MCR: 0x0003 U1IIR: 0xC4 Sorry about the long post. Any help is greatly accepted. /Anders
Message
Interrupt pending but not raised
2005-12-06 by andersryl
Attachments
- No local attachments were found for this message.