I'm not sure if I found a bug in the GCC lib. It's possibly so
simple that I almost have doubts that's really a bug. But neither
in
the documentation nor in different forums I got a hint about what's
wrong.
I'm new with GCC and therefore I could do everything wrong. So please
don't
hit me if I just made a stupid mistake or if I missed any hint in the
documentation. But right know I'm knocked out and I can not continue
the
project.
I'm using GNUARM , GNU C version 4.1.0 (arm-elf) compiled by
GNU C version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125),
WIN-XP and cygwin. Target is a LPC2148 ARM7TDMI-S.
The problems is , I'm getting a Data Access Abort Exception during
real time execution of a SPRINTF call if floating-point format keys
are used. Sprintf cals with non FP keys seem to work fine.
The compiler delivers no error or warning. Also the parameters of the
sprintf function should be ok. Another C-Compiler and its library has
also no problems!
The instruction is :
unsigned char line2[15];
..... sprintf(line2," %5f V ",3); .....
I found the location of the asm instruction in the lib area which
causes the issue.
str r0,[r10,#0x4] but r10 contains 0xC0.
A small example is attached ,extracted from my project. It is a
Eclipse 3.1.2 Project.