New Cortex-M GCC release directly from ARM ?!

This forum is dedicated to feedback, discussions about ongoing or future developments, ideas and suggestions regarding the ChibiOS projects are welcome. This forum is NOT for support.
DrunkenDonkey
Posts: 124
Joined: Sun Aug 28, 2011 5:16 pm

Re: New Cortex-M GCC release directly from ARM ?!

Post by DrunkenDonkey »

It produces quite bigger (both chibi and codesourcery) binary for me, but since I don't have hardware (again) to test it, I'm all for official gcc
likewise
Posts: 18
Joined: Tue Jun 14, 2011 3:43 pm

Re: New Cortex-M GCC release directly from ARM ?!

Post by likewise »

JetForMe wrote:Is this a toolchain that can run on Mac OS X?


Yes, should work for OS X if you rebuild it. I have a prebuilt one here, including the build script, for OS X and Linux: http://www.sidebranch.nl/cortexm3/

It is not bleeding-edge, but it is proven.

Regards,

Leon.
User avatar
barthess
Posts: 861
Joined: Wed Dec 08, 2010 7:55 pm
Been thanked: 7 times

Re: New Cortex-M GCC release directly from ARM ?!

Post by barthess »

Hi guys,
Finally I reveal my Gentoo linux desktop and instal this prebuild compiler. It works fine, but if I call some functions from stdlib (asctime() for example) than I got compile errors:

Code: Select all

/opt/arm-none-eabi-gcc-4_6/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7e-m/libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xa): undefined reference to `_exit'
/opt/arm-none-eabi-gcc-4_6/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7e-m/libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0xe): undefined reference to `_kill'
/opt/arm-none-eabi-gcc-4_6/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7e-m/libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x28): undefined reference to `_getpid'

Priviously I used Yagarto toolchain on WinXP and there was no such errors. So my question, is there way to avoid this errors withot defining my own stub functions?
mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Been thanked: 1 time

Re: New Cortex-M GCC release directly from ARM ?!

Post by mabl »

Hello barthess,

I carry the following defines:

stubs.c:

Code: Select all

/*
 * stubs.c
 *
 *  Created on: Jul 10, 2011
 *      Author: mabl
 */

#include <stdio.h>

#include "ch.h"
#include "hal.h"

#include "stubs.h"

// FIXME: Stubs - HATE THEM
void _exit(int status){
   (void) status;
   chSysHalt();

   while(TRUE){}
}

pid_t _getpid(void){
   return 1;
}

void _kill(pid_t id){
   (void) id;
}

/* guard variables */
int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);};
void __cxa_guard_release (__guard *g) {*(char *)g = 1;};
void __cxa_guard_abort (__guard * g __attribute__((unused))) {};


and stubs.h

Code: Select all

/*
 * stubs.h
 *
 *  Created on: Aug 6, 2011
 *      Author: mabl
 */

#ifndef STUBS_H_
#define STUBS_H_

///* The ABI requires a 64-bit type.  */
__extension__ typedef int __guard __attribute__((mode (__DI__)));

int __cxa_guard_acquire(__guard *);
void __cxa_guard_release (__guard *);
void __cxa_guard_abort (__guard *);

void *__dso_handle = NULL;


#endif /* STUBS_H_ */


Haven't discovered any side effects ^^ (Greetings from Dubai Airport)
DrunkenDonkey
Posts: 124
Joined: Sun Aug 28, 2011 5:16 pm

Re: New Cortex-M GCC release directly from ARM ?!

Post by DrunkenDonkey »

They have released an updated version, that now generates way smaller code than yagarto and way faster, at least my RSA calcuation code went down 4k and encryption from 54 to 47 seconds, I'm officially in love with that toolchain now :)
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: New Cortex-M GCC release directly from ARM ?!

Post by Giovanni »

Interesting, I ran the test scripts on it:

YAGARTO 4.6.2:

Code: Select all

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 12136

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 11660

Platform : PowerPC
OS Setup : Minimal kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2
Kernel Size = 2196

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 10664

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 10124

Platform : PowerPC
OS Setup : Minimal kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os
Kernel Size = 2220

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 6312

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5892

Platform : ARM Cortex-M3
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb
Kernel Size = 1496

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5672

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5344

Platform : ARM Cortex-M3
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb
Kernel Size = 1332

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5628

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5408

Platform : ARM Cortex-M0
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb
Kernel Size = 1356

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5120

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 4968

Platform : ARM Cortex-M0
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb
Kernel Size = 1220

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 9424

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 8876

Platform : ARM7TDMI (ARM mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2
Kernel Size = 1932

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 8616

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 8240

Platform : ARM7TDMI (ARM mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os
Kernel Size = 1676

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 6184

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5948

Platform : ARM7TDMI (THUMB mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -O2 -mthumb -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 1384

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5700

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5512

Platform : ARM7TDMI (THUMB mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GCC) 4.6.2
Options  : -Os -mthumb -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 1256

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 6592

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 6164

Platform : MSP430
OS Setup : Minimal kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2
Kernel Size = 1164

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5888

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5584

Platform : MSP430
OS Setup : Minimal kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os
Kernel Size = 988


ARM GCC 4.6.2:

Code: Select all

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 12136

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 11660

Platform : PowerPC
OS Setup : Minimal kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -O2
Kernel Size = 2196

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 10664

Platform : PowerPC
OS Setup : Full kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 10124

Platform : PowerPC
OS Setup : Minimal kernel
Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1
Options  : -Os
Kernel Size = 2220

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 6504

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 6060

Platform : ARM Cortex-M3
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb
Kernel Size = 1480

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5624

Platform : ARM Cortex-M3
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5296

Platform : ARM Cortex-M3
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb
Kernel Size = 1316

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5832

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5600

Platform : ARM Cortex-M0
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb
Kernel Size = 1356

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5120

Platform : ARM Cortex-M0
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 4968

Platform : ARM Cortex-M0
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb
Kernel Size = 1220

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 9424

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 8876

Platform : ARM7TDMI (ARM mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2
Kernel Size = 1932

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 8616

Platform : ARM7TDMI (ARM mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 8240

Platform : ARM7TDMI (ARM mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os
Kernel Size = 1676

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 6184

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5948

Platform : ARM7TDMI (THUMB mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -O2 -mthumb -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 1384

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5700

Platform : ARM7TDMI (THUMB mode)
OS Setup : Full kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 5512

Platform : ARM7TDMI (THUMB mode)
OS Setup : Minimal kernel
Compiler : arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 20120316 (release) [ARM/embedded-4_6-branch revision 185452]
Options  : -Os -mthumb -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING
Kernel Size = 1256

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2 -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 6592

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2 -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 6164

Platform : MSP430
OS Setup : Minimal kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -O2
Kernel Size = 1164

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os -DCH_OPTIMIZE_SPEED=TRUE
Kernel Size = 5888

Platform : MSP430
OS Setup : Full kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os -DCH_OPTIMIZE_SPEED=FALSE
Kernel Size = 5584

Platform : MSP430
OS Setup : Minimal kernel
Compiler : msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
Options  : -Os
Kernel Size = 988


Performance is not much different, some TC a bit faster others a bit slower.

Giovanni
DrunkenDonkey
Posts: 124
Joined: Sun Aug 28, 2011 5:16 pm

Re: New Cortex-M GCC release directly from ARM ?!

Post by DrunkenDonkey »

Great test suite you got there :D
I'm using only Os, quite flash size limited and went from 24 to 20 on the crypto code, maybe just hit something that ARM toolchain likes to optimize, mainly math in there. Btw you used the Update 1 they have posted right? Because with the original ARM 4.6.2 they posted yagarto was the winner
Post Reply