ARM Cortex-M Microcontroller startup files

Mike via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 27 21:05:13 PDT 2015


On Tuesday, 28 April 2015 at 00:34:42 UTC, Mike wrote:

>> The build script:
>> ../gcc/configure --disable-bootstrap \
>> --enable-languages=c,d  --disable-nls --target=arm-eabi \
>> --without-headers  --with-newlib --without-isl --without-cloog 
>> \
>> --disable-libphobos --disable-libstdcxx --disable-libbacktrace\
>> --enable-multilib
>>
>> And I replace the whole gcc/config/arm/t-arm-elf with this:
>> MULTILIB_OPTIONS  += 
>> mcpu=cortex-m0/mcpu=cortex-m3/mcpu=cortex-m4
>> mfloat-abi=hard mfpu=fpv4-sp-d16
>> MULTILIB_DIRNAMES += cortex-m0 cortex-m3 cortex-m4
>> MULTILIB_REQUIRED += mcpu=cortex-m0
>> MULTILIB_REQUIRED += mcpu=cortex-m3
>> MULTILIB_REQUIRED += mcpu=cortex-m4 #/mfloat-abi=hard  
>> #/mfpu=fpv4-sp-d16
>> MULTILIB_EXTRA_OPTS += mthumb
>>
[...]
>
> If you suspect it might work for GCC 4.9.2, I'll give it a try.

I tested this script generating an arm-none-eabil 4.9.2 
cross-compiler with a 4.9.2 host.  My build script is here:  
https://github.com/JinShil/arm-none-eabi-gdc

The lib dir looks like this:
lib
└── gcc
     └── arm-none-eabi
         └── 4.9.2
             ├── cortex-m0
             ├── cortex-m3
             ├── cortex-m4
             ├── include
             ├── include-fixed
             ├── install-tools
             │   └── include
             └── plugin
                 └── include
                     ├── ada
                     │   └── gcc-interface
                     ├── c-family
                     ├── config
                     │   └── arm
                     ├── cp
                     ├── d
                     ├── java
                     └── objc

The "cortex-m{x}" folder have the following files:
crtbegin.o  crtend.o  crti.o  crtn.o  libgcc.a  libgcov.a

I haven't tried to compile anything yet though.  Again, none of 
my software uses these binaries.

Mike



More information about the Digitalmars-d mailing list