Content originally posted in LPCWare by jgorsk on Wed Sep 19 13:03:33 MST 2012
The problem is solved. Last line in SSP1_IRQHandler was clearing TXIM bit.
In assembly code it was followed only by 'BX lr' command. If any other C code
line is inserted after clearing TXIM bit, SSP1 interrupt status bits are working fine
and there are no 'false' SSP1 interrupts.
Before TXIM bit was actually cleared another SSP1 ISR was triggered. ARM architecture
is new to me so I'm not exactly sure why it works that way. Is it becasue of the pipeline
architecture of the CPU or the actual writes to the registers are delayed?