Your Favorite ARM toolchain?

I have a few Development kits, LPCXpresso, STM32FDiscovery .

Looking at the tool chains, there are at least 3 choices, IAR Mentor(codesourcery), codeRed and Atollic All seem to be limited in some fashion. And need the dreaded license keys.

Then there is the GNU ARM.

Any recommendations? I did find CooCox, which looks promising as a open environment.

Cheers

Reply to
Martin Riddle
Loading thread data ...

Add Rowley's CrossWorks to the list. It does require a dreaded key but their policy is to license per developer rather than per machine so licensing, e.g., your main box, a lab PC, and a traveling laptop is fine.

It's a good product and the resulting code is unencumbered, as they use their own non-GPL runtime library. It supports a wide variety of JTAG dongles, including Segger's J-Link, ST-Link, Olimex, as well as their own CrossConnect plus a bunch I've never heard of before. Includes an RTOS as part of the package; it's not required -- I normally go with the bare metal approach -- but is available.

Worth checking out, at least. It installs with a 30-day free trial so one gets a reasonable time for evaluation before buying.

formatting link

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

CodeSourcery has a free version.

I use Gnu Arm; once you figure out what compiler flags to use, what library code to avoid, and what functions you need to stub off yourself (to help avoid the afore-mentioned library code), it works quite well.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
Reply to
Tim Wescott

Yes second the gnu toolchain.

I did some floating point tests on the 120MHz STM32F2 today. Was fully expecting mediocre performance since gcc has to emulate the operations in software. But I was amazed at both gcc and the chip:

Double Precision: 0.270us / 32.406 cycles /multiply 0.238us / 28.652 cycles /add 0.234us / 28.152 cycles /divide Single Precision: 0.181us / 21.723 cycles /multiply 0.134us / 16.101 cycles /add 0.130us / 15.602 cycles / divide

This was based on a 1000x loop with volatile variables and unrolled 10x within the loop, so 10k iterations overall. Executing from flash. Not very scientific since same data used each time but I checked and the FP routines were being called each time. Need to try again with random data.

Of course you won't see equivalent independent data published for the commercial compilers since they make that *illegal*.

--

John Devereux
Reply to
John Devereux

Oops those were bogus, many of the variables would have gone to zero or NANs during execution, allowing the routines to terminate early. Here is a better version, still very crude though. Anyone done better?

Double Precision: 0.415us / 49.852 cycles /multiply 0.378us / 45.403 cycles /add 2.414us / 289.702 cycles /divide Single Precision: 0.194us / 23.350 cycles /multiply 0.250us / 30.052 cycles /add 0.610us / 73.202 cycles / divide

--

John Devereux
Reply to
John Devereux

I use Codesourcery lite (free) and Eclipse CDT.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Reply to
Nico Coesel

some

open

yourself=20

well.

10x

FP

That is more reasonable. I was really curious about the divides being so fast.

?-)

Reply to
josephkk

Yeah that's what tipped me off too, but only after I read my post in the newsgroup of course. :)

So avoid double precision divides if really time critical. But it's still pretty impressive I thought. This is a ~3$ microcontroller.

I have been working on some prototype hardware that does some resistance and capacitance measurements. It is really nice to be able to just work directly in Ohms, Amps, Volts, Farads, seconds etc to keep everything straight. Instead of constant fiddling with various scaling factors so everthing fits within an int, then worrying about overflows and underflows all the time.

--

John Devereux
Reply to
John Devereux

=20

yourself=20

well.

fully

operations

10x

Not

FP

the

or

is

so

Absolutemente! I did a lot of data analysis software once upon a time = and it was all in base units until it was printout time, whence i converted = to engineering units.

?-)

Reply to
josephkk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.