ARM Cortex-M Microcontroller startup files

Timo Sintonen via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 27 06:07:59 PDT 2015


On Monday, 27 April 2015 at 07:34:52 UTC, Mike wrote:
> On Monday, 27 April 2015 at 05:22:55 UTC, Timo Sintonen wrote:
>> On Monday, 27 April 2015 at 05:19:52 UTC, Timo Sintonen wrote:
>>
>> Oops, I forget to uncomment the m4 options. The correct 
>> version is
>>>
>>> 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
>
> The toolchain at https://launchpad.net/gcc-arm-embedded doesn't 
> require this modification, so I'm wondering if there's another 
> way.  My understanding is that this is unlreated to GDC itself, 
> so we should be able to follow essentially the same procedure 
> as the embedded C/C++ toolchains, right?
>
> They have their build scripts included in their source package, 
> so I spent a little time analyzing their build scripts today, 
> and I see they are using the following config option:
>
> "--with-multilib-list=armv6-m,armv7-m,armv7e-m,cortex-m7,armv7-r"
>
> I'm wondering if that alone will do it.  I guess I'll give it a 
> try later and let you all know what I find.
>
> Mike

There are two ways to make t-arm-elf: inclusive and exclusive. 
The exclusive way is to list all combinations and exclude 
unwanted with MULTILIB_EXCEPYIONS. This has been the usual way to 
do this. I have not seen the inclusive method I use.

How they tell that m4 should use hard float and the rest do not 
use?  If you can do the build, check with readelf that the 
libraries have correct architecture and compiler flags


More information about the Digitalmars-d mailing list