ARM7TDMI: gcc stack corruption workaround.
GCC corrupts the stack pointer and the frame pointer when calling
functions with at least one parameter inside ISR functions, declared
with __attribute__((interrupt)):
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41999
As a workaround, we redefine all the ISRs to call only a single
"void isr(void)" function. In this way, inside the actual isr() we can
use any function call as usual.
NOTE: this is inefficient, because it forces a totally unnecessary
additional function call, but it is a reliable way to avoid the
propagation of this bug to any project or architecture port that defines
interrupt routines.
When the bug will be fixed we will add an appropriate #ifdef to apply
the workaround only when old versions of gcc are used.
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3708
38d2e660-2303-0410-9eaa-
f027e97ec537