NXP LPC1114 UART doesn't work after reset
I think you forgot to enable the clock to IOCON before configuring the pins for UART use, hence those assignments have no effect. But after a bootload the pins are already configured for UART, so things work.

Insert

LPC_SYSCON-&gt;SYSAHBCLKCTRL |= (1&lt;&lt;16); // enable IOCON


after the IRQ setting, before configuring the pins.

PS my bmptk library supports the LPC1114. It is in C++, but you might take a look at the GPIO pins configuration (and UART initialization!), check targert/cortex/lpc1114fn28.h, and the timer initialization in targets/cortex/lpc1114.cpp