I have a question about Starterware's interrupt handler. This concerns the assembly instructions in the file <exceptionhandler.S> for gcc, lines 136 - 142.
It appears that the modified CPSR (R14) is being written back into CPSR on line 139, before lr_usr is stored, which happens on line 142. If an event associated with an interrupt of higher priority occurs during the time it has taken to run beginning of IRQHandler (lines 105 - 139), it appears that we could potentially spoil lr_usr. Is this scenario possible or is there some reason this cannot happen?