I am looking for a free (as in freedom) tool chain for Linux (Ubuntu) that allows me to develop for an ARM cortex-m3 (lpc1343) microcontroller. Where do I find such a toolchain? Are there any tutorials?
CodeSourcery has a free gcc-based toolchain for the Cortex M3.
There are instructions on configuring the toolchain for the Luminary LM3s6965 for a Windows, Mac, and Linux host here: http://claymore.engineer.gvsu.edu/egr326/LM3S6965. It should also work with your LPC processor with minor tweaks.
See also this question: ARM Cortex-M3 development tools?
1\$\begingroup\$ I saw the question you referenced, but it was not clear to me which of the toolchains there where truly free in the sense of the freedom software foundation's definition. \$\endgroup\$ Sep 29, 2010 at 21:11
\$\begingroup\$ GCC based toolchains are guaranteed by the GPL to be free as per the GNU definition. However, toolchain vendors don't stay in business because of their giving nature: They sell support, IDEs, GUI debuggers, etc., and distribute working GCC implementations freely (except for Microchip-grr.) CodeSourcery G++ Lite is a free, unsupported command-line version of Sourcery G++ sponsored by CodeSourcery's hardware partners [that] .... contains command-line tools, including the GNU C and C++ compilers, the GNU assembler and linker, C and C++ runtime libraries, and the GNU debugger. \$\endgroup\$ Oct 1, 2010 at 17:16
\$\begingroup\$ code sourcery publishes their modifications to gcc, so you can take that route, build from their mods to gcc, or just build your own gnu based toolchain directly from the gcc sources, without getting into codesourcery stuff. \$\endgroup\$ Apr 11, 2011 at 17:00
1\$\begingroup\$ Makefile/Instructions for building CodeSourcery's sources on Mac OS X & Linux: github.com/jsnyder/arm-eabi-toolchain CodeSourcery is actually supported by ARM to maintain the GCC port for ARM. Their distribution has been tested as a unit (GCC,newlib,gdb,etc..) and often contains fixes that might take a version or two to make it into GCC mainline. \$\endgroup\$ Jul 26, 2011 at 23:52
There's a build script here: http://github.com/esden/summon-arm-toolchain to build a gcc based toolchain which targets ARM from Debian based computers.
It states that it is tested and confirmed working for:
STM32F10x (Olimex STM32-H103 eval board, Open-BLDC v0.1, v0.2, v0.3)
which appears to be Cortex-M3 based.
\$\begingroup\$ I will work for all Cortex-M3 (and M0) types but you may wish to comment out the building of some STM32 specific libraries. \$\endgroup\$– jpcApr 10, 2011 at 11:05
The Maple development board is an Arm Cortex M3 and although it has its own IDE and such you can certainly use the GCC ARM toolchain as described here:
This guide uses Code::Blocks as its IDE, which I use and find very useful.
How about the "STM32/ARM Cortex-M3 HOWTO: Development under Ubuntu."
The build scripts can also be found over at github
It should be working for the other Cortex M3 based MCU:s as well, even thou this is tested on the stm32.
A bit dated now, I can/have built the latest gcc (on linux) as a cross compiler, but just use code sourcery
I have little or no desire for a C library nor a gcc library so I am content with what the above produces. If you want a C library and/or gcc library you should look here, this is the most recent (meaning 4.x) gcc that I can find that builds with newlib and works.
Or you can take the llvm path, out of the box llvm can be used as a cross compiler, arm/thumb in particular. I mix llvm with gnu binutils as my assembler/linker. I prefer clang to llvm-gcc. Very easy to build llvm from sources (takes an eternity though) if you want to be cutting edge on fixes, etc.