Thomas,
can you post your .cfg file?
[quote user="Thomas Mitchell"]Interesting note, when I used Hwi_disable() and Hwi_restore() for the two previous Hwi functions the code works correctly, but I also noticed that interrupts are not disabled. Prior to the call Hwi_disable() the Global Interrupt in GER register is set and after the call to Hwi_disable() the global interrupt enable is still set.[/quote]
A Hwi_disable/Hwi_restore will set/clear the "Disable IRQ" bit in the CPSR (program status register); not the GER.
[quote user="Thomas Mitchell"]If I place a break point just befor the Hwi restore then single step, I get the vector to the ISR. I can then single step through the ISR and get all the characters on the FIFO. But if I let the program run at full speed after this break point to a few lines below this code, I only get a few characters from the FIFO and I'm left with a pending interrupt on the UART. This pending UART isinterrupt is never serviced. The UART interrupt is the highest interrupt priority so it should always run as long a global interrupts are enabled, which they are.[/quote]
Hwi_restore() or Hwi_restoreInterrupt()? If I understand you correctly, the fact that your application does jump to the ISR (at least when you use breakpoints) which in my mind means that right interrupts bits are set. Could your ISR being optimized by any chance? Could it be possible the interrupt wasn't enabled before Hwi_disableInterrupt? Perhaps you want to use Hwi_disableInterrupt() / Hwi_enableInterrupt().