ARM Cortex-M Microcontroller startup files

Mike via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 27 17:34:41 PDT 2015


On Monday, 27 April 2015 at 05:19:52 UTC, Timo Sintonen wrote:

>
> I have also tried for years to build a working multilib without 
> success. Now I think I have been able to get all versions to 
> work. I welcome everyone to test and report if this works.
>
> 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
>
>
> This will build m0 and m3 with soft float and m4 with hard 
> float. I have used gdc head + gcc 6 head from about a week ago. 
> It may be possible this will work with gcc 5.1 release + gdc 5  
> and I hope somebody will test this.
>
> Please note: This is the first time ever I have suceeded. This 
> will not work with any gcc before april. An older gcc will not 
> build m4 or it may even not pass configuring.
>

Given the other replies in this thread, this looks promising.  
However, I went to give it a test today, and found out my host 
PC's distribution (Arch Linux) hasn't yet released GCC 5.1; it's 
still in testing.

So, I'm going to refrain from testing until the Arch Linux 
package gets officially released.  My current builds don't use 
startup files, libgcc, or any of the other toolchain libs, and I 
only using Cortex-M4F cores, so I'm not sure if my tests will 
prove much of anything, other than successful compilation.

Nevertheless, when GCC 5.1 is official released for my 
distribution, I'll give it a test (if it's not too late by then).

If you suspect it might work for GCC 4.9.2, I'll give it a try.

Mike


More information about the Digitalmars-d mailing list