Re: STM32 ARM toolset advice?




"Mark Borgerson" <mborgerson@xxxxxxxxxxx> wrote in message news:MPG.2355df51ee57f03298991d@xxxxxxxxxxxxxxxxxxxxxxxxx
In article <bWQGk.4374$wG3.1249@xxxxxxxxxxxxx>,
Wilco.removethisDijkstra@xxxxxxxxxxxx says...

"Mark Borgerson" <mborgerson@xxxxxxxxxxx> wrote in message news:MPG.2355722479c1065e989919@xxxxxxxxxxxxxxxxxxxxxxxxx
In article <81ene4hsatqaphkmp01cikmpk9l7ana9qi@xxxxxxx>,
nobody@xxxxxxxxxxxxxxxx says...

Keil has been bought by ARM, and AFAIK they now use the compiler from
ARM. Apparently this compiler generates the best code for ARM's CPUs.
GCC Generates quite good code for the ARM these days. The biggest
drawback is the use of newlib. Rowley provides a nice IDE with GCC,
and their own library, which removes the one disadvantage of using
GCC. Their product is also available for Windows and Linux.


One of the biggest problems I ran into with GCC-ARM when using the
linux libraries for the TRITON boards, is that floating point operations
are executed as kernel interrupts (Undefined Instruction generating
jumps to a floating point emulator, I think.) I think it turned
out to be several times slower than the IAR floating point library
that runs in user mode.

And given that the IAR floating point library is one of the slowest available,
that is quite slow indeed.


I found t that an ARM (PXA-255 at 400MHz like that in the Triton board)
does a FP multiply in about 0.13 microseconds using the Soft-Float
libary. (It takes about 10X longer using floating-point emulation in
the Linux kernel.)

That's about 52 cycles, which is pretty good if it is double multiply.

http://albatross-uav.org/index.php/Benchmarks

I did find that an AT91SAM7S at 16Mhz using the IAR libraries,
had about 5 times the floating point performance of an M68332 at the
same clock using the Codewarrior libraries. How much of that is
better code and how much is due to a better CPU is open to
question.

The M68332 is such a slow CISC that one can do a full floating point
multiply on ARM in less than half the time it takes the M68332 to execute
one 32x32 multiply instruction.

Wilco


.



Relevant Pages

  • Re: STM32 ARM toolset advice?
    ... GCC Generates quite good code for the ARM these days. ... linux libraries for the TRITON boards, is that floating point operations ... are executed as kernel interrupts (Undefined Instruction generating ... I did find that an AT91SAM7S at 16Mhz using the IAR libraries, ...
    (comp.arch.embedded)
  • Re: STM32 ARM toolset advice?
    ... GCC Generates quite good code for the ARM these days. ... linux libraries for the TRITON boards, is that floating point operations ... I did find that an AT91SAM7S at 16Mhz using the IAR libraries, ...
    (comp.arch.embedded)
  • Re: STM32 ARM toolset advice?
    ... Keil has been bought by ARM, and AFAIK they now use the compiler from ... GCC Generates quite good code for the ARM these days. ... Their product is also available for Windows and Linux. ... linux libraries for the TRITON boards, is that floating point operations ...
    (comp.arch.embedded)
  • Re: STM32 ARM toolset advice?
    ... GCC Generates quite good code for the ARM these days. ... linux libraries for the TRITON boards, ... And given that the IAR floating point library is one of the slowest available, ...
    (comp.arch.embedded)
  • Re: Buying IAR C
    ... than GCC. ... By default IAR ... that some parts of the library were bigger than necessary, although the most recent release has improved things (the floating point code has been re-written, for example). ... he means that the equivalent functions in the avrlibc libraries are bigger than those in the IAR libraries. ...
    (comp.arch.embedded)