Hi Thomas,
can you check what the value of UART1 to be the correct interrupt vector?
I looked that the code contents of those two functions and I don't see anything that would prevent it from being enabled again. Does hwiState have a non-zero value?
/* * ======== Hwi_disableInterrupt ======== */ UInt Hwi_disableInterrupt(UInt intNum) { UInt oldEnableState, index; index = intNum >> 5; oldEnableState = Hwi_cpIntc.ESR[index] & (1 << (intNum & 0x1f)); Hwi_cpIntc.EICR = intNum; /* clear the enable for this int */ return oldEnableState; } /* * ======== Hwi_RestoreInterrupt ======== */ Void Hwi_restoreInterrupt(UInt intNum, UInt key) { if (key) { Hwi_cpIntc.EISR = intNum; /* set the enable for this int */ } else { Hwi_cpIntc.EICR = intNum; /* clear the enable for this int */ } }
Just as a test, could you try using Hwi_disable() and Hwi_restore()? These two functions should just touch the global interrupt enable bit.