フリーの ARM 開発環境 (3) ― 2012年07月05日 22時53分43秒
時間をもてあましていたので各コンパイラのコード効率を見てみることにした。
使う環境は
以前使ったときは何の問題もなかった気がする。
今のところ原因不明。
というわけで、結果は
ここで気がついたことがひとつある。
今まで GNU-Tool-Prefix と GNU-Tool-Folder の設定だけすればよいと思っていたが、実は環境変数 PATH も設定しなければならない。もちろん PATH は GNU-Tool-Folder に \bin を付加したもの。(Sourcery CodeBench Lite 等はインストール時に環境変数 PATH に追加する。)何が動かないかというと arm-none-eabi-ar だ。こんなメッセージが出てきてはじめて気がついた。
'arm-none-eabi-ar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
それにしても yagarto が動かないのが悔しい。エラーメッセージは何も出てこないので厄介かもしれない。時間のあるときに調べてみよう。
追記:2012/07/07
何回か Windows のリブートを繰り返しているうちにコンパイルできるようになった。
原因不明。というわけで yagarto のデータも追加した。
追記:2012/07/08
原因がわかった。 yagarto は、環境変数 PATH に bin ディレクトリの指定が必要だった。指定後リブートしなければ有効にならないので混乱していたのだ。ただし、arm-none-eabi-ar は bat ファイルで動くので全ての gcc コンパイラに PATH の指定が必要だ。
というわけで、bin ディレクトリの指定をしておけばどのコンパイラも問題なく動くということだ。
使う環境は
IDE Keil µVision4 Source ARM DSP_Lib V1.1.0 Optimize Level3テストするコンパイラは
arm Keil MDKARM MDK-ARM 4.53 devkitarm devkitPro devkitARM_r41-win32 G++ Sourcery CodeBench Lite arm-2012.03-56-arm-none-eabi GCC GNU Tools for ARM Embedded Processors gcc-arm-none-eabi-4_6-2012q2-20120614 yagarto Yet another GNU ARM toolchain yagarto-bu-2.22_gcc-4.7.1-c-c++_nl-1.20.0_gdb-7.4.1_eabi_20120616順調にテストは進んでいったが、yagarto でだけコンパイルできない。
以前使ったときは何の問題もなかった気がする。
今のところ原因不明。
というわけで、結果は
Library Name ARM devkitarm G++ GCC yagarto arm_cortexM0l_math 10,611,910 2,259,692 2,056,388 2,034,376 2,237,856 arm_cortexM3l_math 10,911,354 2,737,124 2,622,680 2,603,324 2,715,036 arm_cortexM4l_math 11,080,918 2,696,036 2,634,504 2,595,522 2,674,284 arm_cortexM4lf_math 11,165,886 2,642,920 2,580,528 2,541,592 2,621,156しかし、ARM はなぜこんなに大きいのだろう?それ以外はすべてGCCなのだが微妙にサイズが異なっている。一番コンパクトに収まっているのは GNU Tools for ARM Embedded Processors 。結果から GCC バージョンの古いほうがサイズが小さい。たいした差ではないので好みで選べばよいだろう。
ここで気がついたことがひとつある。
今まで GNU-Tool-Prefix と GNU-Tool-Folder の設定だけすればよいと思っていたが、実は環境変数 PATH も設定しなければならない。もちろん PATH は GNU-Tool-Folder に \bin を付加したもの。(Sourcery CodeBench Lite 等はインストール時に環境変数 PATH に追加する。)何が動かないかというと arm-none-eabi-ar だ。こんなメッセージが出てきてはじめて気がついた。
'arm-none-eabi-ar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
それにしても yagarto が動かないのが悔しい。エラーメッセージは何も出てこないので厄介かもしれない。時間のあるときに調べてみよう。
追記:2012/07/07
何回か Windows のリブートを繰り返しているうちにコンパイルできるようになった。
原因不明。というわけで yagarto のデータも追加した。
追記:2012/07/08
原因がわかった。 yagarto は、環境変数 PATH に bin ディレクトリの指定が必要だった。指定後リブートしなければ有効にならないので混乱していたのだ。ただし、arm-none-eabi-ar は bat ファイルで動くので全ての gcc コンパイラに PATH の指定が必要だ。
というわけで、bin ディレクトリの指定をしておけばどのコンパイラも問題なく動くということだ。
最近のコメント