EmbeddedRelated.com
Forums

Building GCC for ARM7 and Cortex-M0/M3

Started by ogautherot May 11, 2010
Greetings to the GCC experts :-)

I've done some research on how to compile GCC for the ARM cores and found a number of articles - including a link to CodeSourcery G++ to avoid all the trouble. It all sounds great but left me with a doubt: how can I build a compiler that supports all LPC2388 (ARM7), LPC1765 (Cortex-M3) and LPC1114 (Cortex-M0)? The articles state only 1 architecture at a time, refer to Newlib between 2 separate compilations of GCC... but I have not found an article on multiple targets.

I am downloading CodeSourcery G++ Lite, which will do for me in the short term but I may have to share some code with a friend who runs pure FreeBSD (which is not supported by CodeSourcery). So I would like to make sure that we are running the same compiler (hence compile it from scratch...)

Any hint welcome - thanks in advance
Cheers
Olivier

An Engineer's Guide to the LPC2100 Series

On Tue, May 11, 2010 at 7:54 AM, ogautherot wrote:

> Greetings to the GCC experts :-)
>
> I've done some research on how to compile GCC for the ARM cores and found a
> number of articles - including a link to CodeSourcery G++ to avoid all the
> trouble. It all sounds great but left me with a doubt: how can I build a
> compiler that supports all LPC2388 (ARM7), LPC1765 (Cortex-M3) and LPC1114
> (Cortex-M0)? The articles state only 1 architecture at a time, refer to
> Newlib between 2 separate compilations of GCC... but I have not found an
> article on multiple targets.
>
> I am downloading CodeSourcery G++ Lite, which will do for me in the short
> term but I may have to share some code with a friend who runs pure FreeBSD
> (which is not supported by CodeSourcery). So I would like to make sure that
> we are running the same compiler (hence compile it from scratch...)
>
> Any hint welcome - thanks in advance
> Cheers
> Olivier
>
> Check this http://www.m2uu.com/elektronika:blueboard-arm-lpc2148

--
Warm regards
Ashwin
NGX Technologies Pvt. Ltd.
http://code.google.com/p/blueboard-lpc214x/
On Tue, May 11, 2010 at 5:35 AM, Ashwin Athani wrote:

> On Tue, May 11, 2010 at 7:54 AM, ogautherot wrote:
>
>> I've done some research on how to compile GCC for the ARM cores and found
>> a number of articles - including a link to CodeSourcery G++ to avoid all the
>> trouble. It all sounds great but left me with a doubt: how can I build a
>> compiler that supports all LPC2388 (ARM7), LPC1765 (Cortex-M3) and LPC1114
>> (Cortex-M0)? The articles state only 1 architecture at a time, refer to
>> Newlib between 2 separate compilations of GCC... but I have not found an
>> article on multiple targets.
>>
> Check this http://www.m2uu.com/elektronika:blueboard-arm-lpc2148
Thank you for your reply. I came across a similar article that described the
compilation but seemed to target it explicitly at the Cortex while this one
is for the generic ARM architecture. Does it mean that all flavors (i.e.
Cortex-M0, Cortex-M3 and ARM7) are now included?

Thanks in advance for this clarification
Cheers
--
Olivier Gautherot
o...@gautherot.net
Cel:+56 98 730 9361
www.gautherot.net
http://www.linkedin.com/in/ogautherot
--- In l..., Olivier Gautherot wrote:

>
> Thank you for your reply. I came across a similar article that described the
> compilation but seemed to target it explicitly at the Cortex while this one
> is for the generic ARM architecture. Does it mean that all flavors (i.e.
> Cortex-M0, Cortex-M3 and ARM7) are now included?
>
> Thanks in advance for this clarification

Try page 156 of http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc.pdf (PDF page 168)

The very latest version of GCC does support M0 among MANY other variants.

Richard

I'm hardly a GCC expert, but you might find this useful as a starting point:

http://www.microbuilder.eu/Tutorials/SoftwareDevelopment/BuildingGCCToolchain.aspx

I just retested it in Windows with GCC 4.5.0 (for M0 support) and it works fine. I had some issues with Ubuntu 10.04, though, and need to update the build script for Linux.

As a warning, it takes 3-4 hours to build on Windows in MinGW (and probably 60-90 minutes in Linux). It sucks to get a build error and start the build process over again. :-)

Kevin.

--- In l..., "ogautherot" wrote:
>
> Greetings to the GCC experts :-)
>
> I've done some research on how to compile GCC for the ARM cores and found a number of articles - including a link to CodeSourcery G++ to avoid all the trouble. It all sounds great but left me with a doubt: how can I build a compiler that supports all LPC2388 (ARM7), LPC1765 (Cortex-M3) and LPC1114 (Cortex-M0)? The articles state only 1 architecture at a time, refer to Newlib between 2 separate compilations of GCC... but I have not found an article on multiple targets.
>
> I am downloading CodeSourcery G++ Lite, which will do for me in the short term but I may have to share some code with a friend who runs pure FreeBSD (which is not supported by CodeSourcery). So I would like to make sure that we are running the same compiler (hence compile it from scratch...)
>
> Any hint welcome - thanks in advance
> Cheers
> Olivier
>