This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: Problem with ARM port and pow() function
Hi Fau,
Here is the ledswitch.c file source:
#include "lpc210x_gnuarm.h"
Unfortunately this header is needed as well...
There is also an assembler file for the vector initializaton. If you want I
can post it, too.
Yes please.
Or if you need the .ld linker script, I can email you.
Yes to that as well please. :-)
In fact maybe you can create a stripped, compressed binary that I could try
running directly to see if I can make the problem occur for me too.
Please include the command line(s) you use to compile the test case, and,
I've tried with the makefile of the template project, which is long and
complex:
arm-none-eabi-gcc -mthumb -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-2 -DROM_RUN
-D NO_MATH_INLINES -D GCC_ARM7 -D__WinARM__
-O2 -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=build/crt0.lst
-fomit-frame-pointer -mcpu=arm7tdmi-s -msoft-float -march=armv4t -Wcast-qual -MD -MP -MF .dep/ledswitch.elf.d
build/crt0.o ledswitch.o --output
ledswitch.elf -nostartfiles -Wl,-Map=ledswitch.map,--cref -lc -lm -lc -lgcc -T./build/LPC2106-ROM.ld
Hmm - well I made myself a fake lpc210x_gnuarm.h header file and built the test
code with that - and it works. (Well it goes into an infinite loop, which is
what you would expect. It does not seg-fault). I suspect that there must be
some other problem here.
I do note that you are invoking pow() inside a function called "delay()". Is
the sole purpose of this loop to waste time ? If so then there are better ways
of doing this than calling math functions.
But I tried to compile also with only:
arm-none-eabi-gcc -march=armv4t
ledswitch.c -lm -T./build/LPC2106-ROM.ld build/crt0.o --output ledswitch.elf
I built the test this way and it still worked for me. Note however I am using
a simulator to run both versions of the test, not actually having any ARM
hardware. Maybe you are running into an illegal instruction trap ? Would you
have any way of detecting this ?
Then I tried to compile my own arm-elf toolchain with the following
configuration:
Did the problem still occur with this home built arm-elf toolchain ?
Cheers
Nick