スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ARM用コンパイラの対応アーキテクチャ

ARMは多数のアーキテクチャがあります。Cortex-Mシリーズだけでも 3(+2)種類です。なので、これらをサポートするコンパイラもそれぞれに対応していたり(していなかったり)します。現在自分が使っているコンパイラは何に対応しているのでしょうか? GCC系はコンパイル時のオプションや構成によって変化するので、何気に気になったので少し調査しました(といってもオプションで表示しただけ)。

Cortex-Mシリーズの比較はARM社の何処かのページに資料があったのですが、忘れてしまいました。同様の事がwikiに上がっていました。

arm_cortex_mx.png


今使っているコンパイラはLauchpadの物です。

$ /cygdrive/d/tools/Lauchpad/4_7-2013q3-20130916/bin/arm-none-eabi-gcc.exe --version
arm-none-eabi-gcc.exe (GNU Tools for ARM Embedded Processors) 4.7.4 20130913 (release) [ARM/embedded-4_7-branch revision 202601]
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ /cygdrive/d/tools/Lauchpad/4_7-2013q3-20130916/bin/arm-none-eabi-gcc.exe -print-multi-lib
.;
thumb;@mthumb
fpu;@mfloat-abi=hard
armv6-m;@mthumb@march=armv6s-m
armv7-m;@mthumb@march=armv7-m
armv7e-m;@mthumb@march=armv7e-m
armv7-ar/thumb;@mthumb@march=armv7
armv7e-m/softfp;@mthumb@march=armv7e-m@mfloat-abi=softfp@mfpu=fpv4-sp-d16
armv7e-m/fpu;@mthumb@march=armv7e-m@mfloat-abi=hard@mfpu=fpv4-sp-d16
armv7-ar/thumb/softfp;@mthumb@march=armv7@mfloat-abi=softfp@mfpu=vfpv3-d16
armv7-ar/thumb/fpu;@mthumb@march=armv7@mfloat-abi=hard@mfpu=vfpv3-d16


CodeSourcery版は以下のようになっていました。
ARMv7E-Mはサポートされていないので、少ないですね。

$ /cygdrive/d/tools/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI_201203_56/bin/arm-none-eabi-gcc.exe --version
arm-none-eabi-gcc.exe (Sourcery CodeBench Lite 2012.03-56) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ /cygdrive/d/tools/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI_201203_56/bin/arm-none-eabi-gcc.exe -print-multi-lib
.;
thumb;@mthumb
armv6-m;@mthumb@march=armv6-m
thumb2;@mthumb@march=armv7@mfix-cortex-m3-ldrd


Lauchpadの物のGCCへの設定オプションがインストールしたフォルダのreadmeに書いてありました。GCCのオプション内容だけ見ていると複雑そうに見えますが、下表を参考にすると一目瞭然ですね。親切心が伝わるreadmeだと思います。

--------------------------------------------------------------------
| ARM Core | Command Line Options | multilib |
|----------|--------------------------------------------|----------|
|Cortex-M0+| -mthumb -mcpu=cortex-m0plus | armv6-m |
|Cortex-M0 | -mthumb -mcpu=cortex-m0 | |
|Cortex-M1 | -mthumb -mcpu=cortex-m1 | |
| |--------------------------------------------| |
| | -mthumb -march=armv6-m | |
|----------|--------------------------------------------|----------|
|Cortex-M3 | -mthumb -mcpu=cortex-m3 | armv7-m |
| |--------------------------------------------| |
| | -mthumb -march=armv7-m | |
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4 | armv7e-m |
|(No FP) |--------------------------------------------| |
| | -mthumb -march=armv7e-m | |
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=softfp | armv7e-m |
|(Soft FP) | -mfpu=fpv4-sp-d16 | /softfp |
| |--------------------------------------------| |
| | -mthumb -march=armv7e-m -mfloat-abi=softfp | |
| | -mfpu=fpv4-sp-d16 | |
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=hard | armv7e-m |
|(Hard FP) | -mfpu=fpv4-sp-d16 | /fpu |
| |--------------------------------------------| |
| | -mthumb -march=armv7e-m -mfloat-abi=hard | |
| | -mfpu=fpv4-sp-d16 | |
|----------|--------------------------------------------|----------|
|Cortex-R4 | [-mthumb] -march=armv7-r | armv7-ar |
|Cortex-R5 | | /thumb |
|Cortex-R7 | | |
|(No FP) | | |
|----------|--------------------------------------------|----------|
|Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=softfp| armv7-ar |
|Cortex-R5 | -mfpu=vfpv3-d16 | /thumb |
|Cortex-R7 | | /softfp |
|(Soft FP) | | |
|----------|--------------------------------------------|----------|
|Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=hard | armv7-ar |
|Cortex-R5 | -mfpu=vfpv3-d16 | /thumb |
|Cortex-R7 | | /fpu |
|(Hard FP) | | |
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a | armv7-ar |
|(No FP) | | /thumb |
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=softfp| armv7-ar |
|(Soft FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /softfp |
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=hard | armv7-ar |
|(Hard FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /fpu |
--------------------------------------------------------------------

スポンサーサイト
黒ねこ時計 くろック D02
プロフィール

jujurou

Author:jujurou
運営HP:チャコの部屋
Twitter:jujurou

カレンダー
10 | 2013/11 | 12
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
最新コメント
カテゴリ
ユーザタグ

ぺるけ RaspberryPi Linux トランジスタ式ミニワッター TRminiWatterPart4 MPD OpenOCD イーサネットコンバータ FON2405E DAC buildroot FM3ペリフェラル BeagleBoneBlack FM3評価ボード library OpenGL mingw ODROID-U2 TL-WR700N Edison bitbake KiCad 計測 VMware シングル FM4 ミニワッター 6N6P プリアンプ 

月別アーカイブ
ランキング

FC2 Blog Ranking

カウンター
検索フォーム
リンク
RSSリンクの表示
QRコード
QRコード
ライセンス
クリエイティブ・コモンズ・ライセンス
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。