mbedをofflineでコンパイルする
mbedは簡単便利ですが、ネット環境が無いと悲劇になり、また、一つのハードウェア(mbed)に一つのログイン名になるので、複数の人が用いる教育関係ではお金持ち以外使えません。
これをネット環境無しでgccを用いてコンパイル環境を作った人がいますので、そのインストーラーを紹介します。
- このzipファイルを解凍します。ここではC:¥MBED¥gccの中にコンパイラを入れることを仮定して説明します。
- win_install.cmdを実行する。この時コンパイラーなどをネットからダウンロードするので、パソコンはインターネットにつないでおく必要があります。
- BuildShell.cmdを実行するとコマンドプロンプトのコンパイル環境になります。
- cd samples\HelloWorld
makeを実行します。
- 問題が無ければHelloWorld.binが作られます。
- インストールできない場合、ちょっと古いバージョンですがall in one でこれをC:¥MBED¥gccとなるように解凍すれば使えるはずです。(C:¥MBED¥gcc¥bin)
さらに統合環境(IDE)Code::Blocksでコンパイルできるようにする
上記の場所にコンパイラがあることを仮定しています。
Code::Blocksバージョン10.05以上が必要です
Code::Blocksをインストールします。メニューなどの日本語化はこちら
- C:¥Program Files (x86)¥CodeBlocks¥share¥CodeBlocks¥templates¥wizard¥arm¥files
にmbedフォルダを作り、そこにmakefileを入れます。さらにそのフォルダの中にsrcフォルダを作り、初期ファイル、main.cppを入れます。32bit版windowsの場合は、(x86)は付きません(以下同様)。
-
C:¥Program Files (x86)¥CodeBlocks¥share¥CodeBlocks¥templates¥wizard¥arm
の中のwizard.scriptを上書きする。
上記1,2のデータファイル
- Code::Blocksを起動させ、新規プロジェクトの作成をクリックする。

- 左側で「プロジェクト」を選び、「ARM Project」を選択し、GOボタンを押す。

- プロジェクトはgccフォルダの中のprogフォルダに作ります。下図のようにprogを選択してください。無ければ新しいフォルダーの作成ボタンを押して作ってください。

- プロジェクト名を入れてください。ここではHelloにしました。プロジェクトを作成するフォルダが、間違っていたら訂正してください。

- ここは何もすることが無いので次へ。

- mbedを選択してください。

- メニューの「設定」、「コンパイラとデバッガを選択してください。

- コンパイラ設定タブが選ばれているはず。「コンパイラの選択」で「GNU GCC Compiler」と表示されているところを「GNU ARM GCC Compiler」に変更してください。

- 「Toolchain実行ファイル」タブで以下のように設定します。
いずれも、右側の...を押して、C:\MBED\gcc\binの中のものを指定します。

- メニューの「プロジェクト」→「プロパティ…」を選択します。
「プロジェクト設定」タブで、Makefileを自動生成しないにチェックを入れる。

- メニューの「プロジェクト」→「ビルドオプション…」を選択します。
左上のところで、defaultを選択します。
「"Make"コマンド」タブで、Silent build:のところの$targetを消す。
プロジェクト/ターゲットのクリーン:のところのclean$targetの$targetを消す。この二つで良いと思いますが、念のため全部の$targetを消しておくと良いかもしれません。

- 「ビルド前後のステップ」タブで、ビルド後のステップの部分に、
cp Program.bin e:
とします。ここで、Program.binは下のmakefileの項目で設定するもので、デフォールトがこれになっています。e:はMBEDのドライブです。これは、パソコンごとに異なりますので、各自のドライブにしてください。
「ターゲットがup-to-dateでも、常に実行」のチェックも入れておくと便利かもしれません。(ビルドせずにmbedに単純にコピーするだけの場合など)
ビルド時にこのcpというコマンドが無いとうエラーがでた場合には、この部分を
%comspec% /c copy Program.bin e:
と変更してみてください。

- Managementのところにある「その他」の中にmakefileがあります。

これをクリックすると、何を用いて開くか聞いてきますので、Code::Blocksのエディタで開くとしてください。このmakefile中のPROJECT=Programの部分のProgramのところが出来上がりのファイル名になります。このまま使用するとProgram.binが実行ファイルになります。変更する場合は適当に直してください。(プロジェクト名が良いでしょう。ここでは、Helloのことです。つまり、Hello.bin)
- 「ビルド」→「ビルド」でProgram.bin実行ファイルが出来、ファイルを転送します。
「ビルド」→「現在のファイルをコンパイル」ではProgram.bin実行ファイルを作るだけです。

あるいは左端のアイコンをクリックしてもコンパイル+転送をします。

- 複数のコンパイルされたファイルを消去するには「ビルド」→「クリーン」とします。

- 複数のコンパイルされたファイルを消去し、ビルドするには「ビルド」→「再ビルド」とします。

- Code::Blocksを終了して再度このプロジェクトを開く場合は、

をクリックするか、ファイル→最近使ったプロジェクト、で選択してください。
ライブラリへの追加
例えば、LCDをいつも使う場合、ソースファイルとヘッダファイルをいつも入れるのは面倒になります。その時は、TextLCDのコンパイル結果をライブラリに登録すると便利です。
C:\MBED\gcc\external\mbedにはヘッダーファイル。その下のLPC1768フォルダのmbed.arがリンクで用いられるライブラリです。これにTextLCDを加えてみます。
まず、C:\MBED\gcc\external\mbedにTextLCD.hを入れます。また、TextLCD.oはどこかでコンパイルした結果があるとします。これをmbed.arに追加します。
それには、そのフォルダの中で、
ar q mbed.ar TextLCD.o
とします。本当に追加されているか確かめてみます。それには、
ar t mbed.ar
とします。TextLCD.oが一番最後に追加されているはずです。
コンパイラーが指定できない場合
プロジェクトを作るときに次のように出てきて、不可能になってしまいます

これを回避するには、
- ファイル名を指定して実行の部分に、「%APPDATA%\codeblocks\UserTemplates」と入れるとフォルダが開きます。
- この中に、mbed.zipを解凍したmbedフォルダをフォルダごと入れます。
- Code::Blocksを走らせ、新規プロジェクトの作成をクリックします(今までと同じ)。
- ここで、プロジェクトを選ばずに左側の「ユーザーテンプレート」を選ぶと下のようにmbedが出てくるのでそれを選択し「Go」を押します。

- プロジェクトを作るフォルダを指定し、プロジェクト名を設定すれば出来上がりです。
もう一つのIDE